PowerShell Ping'i | PowerShell Ping Örneklerle Nasıl Çalışır?


PowerShell Ping'e Giriş

PowerShell ping komutu, PowerShell cmdlet'inde Test Bağlantısı olarak da bilinir, İnternet Kontrol Protokolü Mesajı (ICMP) yankı paketlerini veya ping'i bir veya daha fazla uzak düğüme gönderir ve karşılığında yankı paketlerini alır. uzak sunucuların bağlantısı ve ayrıca komutu arka plan işi olarak çalıştırmak, isteğin gönderilme sayısını ayarlamak, zaman aşımını ayarlamak ve bağlantı ve kimlik doğrulamayı yapılandırmak için çeşitli parametreleri kullanarak ve hatta bu komut bile sunucunun yolunu izleyebilir. hedef düğüm.

PowerShell Ping'in söz dizimi

Aşağıda belirtilen sözdizimi verilmiştir:

Test Bağlantısını Kullanma:

Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]

Yukarıdaki sözdiziminde -TCPPort ve -TraceRoute parametresini birlikte kullanamayacağınız gibi aynı anda bir set kullanabilirsiniz.

Ping Komutunu Kullanma:

ping [/t] [/a] [/n <count>] [/l <size>] [/f] [/I <TTL>] [/v <TOS>] [/r <count>] [/s <count>] [{/j <hostlist> | /k <hostlist>}] [/w <timeout>] [/R] [/S <Srcaddr>] [/4] [/6] <targetname>

PowerShell Ping'i Nasıl Çalışır?

Ping komutu komut isteminde tanıtıldı ve PowerShell ile de kullanılabilir. Ping komutu, uzak düğümler üzerinden göndermek için ICMP (İnternet Kontrol Protokolü Mesajı) paketlerini kullanır ve karşılık olarak uzak düğümlerden yankı paketlerini geri alarak bağlantıyı kontrol eder. Ping komutu ayrıca DNS kaydının doğru yapılandırılması durumunda etki alanı sistemlerindeki ana bilgisayarın adını da belirler. PowerShell, Test Bağlantısı adı verilen ping'den daha güçlü bir komut sunmuştur. TestConnection + PingStatus'un birleşimidir.

Uzaktaki bilgisayara ping atmak için şunu kullanabiliriz:

Kod:

ping google.com

Çıktı:

Test Bağlantısı Komutunu Kullanma.

Kod:

Test-Connection Google.com

Çıktı:

PowerShell Ping Örnekleri

Aşağıda PowerShell Ping örnekleri verilmiştir:

Örnek 1 - Ana Bilgisayar Adını belirlemek için ping komutunun kullanılması.

Uzak sunucunun ana bilgisayar adını almak istiyorsanız, bunu belirlemek için ping komutunu -a parametresiyle birlikte kullanabilirsiniz.

Kod:

ping -a 192.168.0.200

Çıktı:

-a parametresi bilgisayar adını IP adresi (PTR) kaydından alır.

Örnek 2 - Ping'in sürekli olarak alınması.

Bazen uzak sunucunun durumunu sürekli olarak kontrol etmemiz gerekir ve bu durumda -t parametresini kullanabilirsiniz, böylece Ctrl+C düğmesine basılana kadar yankı sonucunu döndürür.

Kod:

ping -a 192.168.0.206 -t

Çıktı:

Örnek 3 - Bağlantı Testi komutuyla -Sessiz modunun kullanılması.

-Sessiz parametresi, Test Bağlantısı komutunun ürettiği çıktıyı bastırır ve çıktıyı Boolean formunda döndürür. Uzaktan bağlantı başarılı bir şekilde kurulursa true, aksi takdirde false değerini döndürür.

Kod:

Test-Connection -ComputerName 192.168.0.200 -Quiet

Çıktı:

Yanlış çıktı örneği,

Çıktı:

Örnek 4 - Sayımı -count parametresiyle kısıtlamak.

Varsayılan olarak Bağlantı Testi komutu 4 sayım oluşturur. Ancak istediğiniz sayıyı sınırlandırabilirsiniz.

Kod:

Test-Connection -ComputerName 192.168.0.200 -Count 2

Çıktı:

Bu özellikle bir senaryo yazarken faydalıdır. Örneğin -Count ve -Quiet parametrelerini birleştirip çıktıyı hızlı bir şekilde alabiliriz.

Kod:

Test-Connection -ComputerName 192.168.0.200 -Count 1 -Quiet

Çıktı:

Betikte If else koşulunu kullanabiliriz.

Kod:

if(Test-Connection -ComputerName 192.168.0.200 -Count 1 -Quiet){
Write-Output "Server Connectivity Successful"
}
else{
Write-Output "Server Connectivity failed"
}

Çıktı:

Örnek 5 - Birden fazla sunucu için Test Bağlantısını kullanma.

Test-Connection komutundaki -ComputerName parametresi bir dize dizisi olduğundan birden çok bilgisayar adını kabul eder.

Kod:

Test-Connection -ComputerName 192.168.0.200, 192.168.0.206, 192.168.0.230 -Count 1 | ft -AutoSize

Çıktı:

Hatayı yakalamak için try/catch bloğunun içinde kullanabiliriz.

Kod:

Try {
Test-Connection -ComputerName 192.168.0.200, 192.168.0.206, 192.168.0.230 -Count 1 -EA Stop | ft -AutoSize
}
Catch {
$_.Exception.Message
}

Çıktı:

Örnek 6 - Hedef düğümün umutlarını belirlemek için -TraceRoute'un kullanılması.

Hedef düğüme olan rotayı belirlemek için -TraceRoute parametresini ekleyebiliriz.

Kod:

Test-Connection -TargetName www.google.com -Traceroute

Çıktı:

Örnek 7 - Özel arabellek boyutunun ve gecikme sayısının ayarlanması.

Aşağıda gösterildiği gibi, özel arabellek boyutunu ekleyebilir ve birbirini takip eden istekler arasındaki gecikmeyi saniye cinsinden ayarlayabiliriz.

Kod:

Test-Connection -ComputerName 192.168.0.200 -Delay 3 -BufferSize 256

Çıktı:

Örnek 8 - Test Bağlantısını arka plan işi olarak çalıştırmak.

-AsJob parametresini kullanarak Test-Connection komutunu arka plan işi olarak çalıştırabiliriz.

Kod:

Test-Connection -ComputerName 192.168.0.200, 192.168.0.206 -Count 2 -AsJob

Çıktı:

İş Adını aldıktan sonra işin durumunu almak için İş Alma komutunu kullanabilirsiniz.

Kod:

Receive-Job -Name Job5

Çıktı:

Örnek 9 - Uzak bilgisayara bir istek göndermek için birden fazla kaynağın kullanılması.

Uzaktaki bilgisayara istek göndermek için birden fazla kaynak kullanabilirsiniz.

Kod:

Test-Connection -Source 192.168.0.202, 192.168.0.206 -ComputerName 192.168.0.200 -Count 2

Çıktı:

Örnek 10 - Farklı kimlik bilgilerinin kullanılması.

Kaynak ve uzak bilgisayarlar farklı etki alanlarındaysa farklı kimlik bilgilerini kullanabilirsiniz.

Kod:

Test-Connection -Source 192.168.0.206 -ComputerName 192.168.0.200 -Count 2 -Credential Automationlab\Administrator

Çıktı:

Çözüm

PowerShell ping komutu script yazarken kullanışlı komutlardan biridir. Uzak sunucunun çevrimiçi olup olmadığını belirlemek ilk adımdır. Çoğu zaman sunucunun güvenlik duvarında ICMP isteğini engelleme olasılığı vardır; bu durumda WINRM bağlantısının çalışıp çalışmadığını kontrol etmek için Test-WSMan gibi komutları kullanabilirsiniz.

İlgili makaleler