Powershell'in ping eşdeğeri Test-Connection ile bir hedefe olan bağlantımı deniyorum.
Test-Connection -Computername 192.168.1.72 -Count 100
Bu şekilde, varsayılan gecikme/bekleme süresi olarak 1 saniye arayla 100 ICMP paketi gönderecek. Yani komutun tamamlanması ~ 100 sn sürecek. Bu cepte.
Bir de bunu arka planda çalıştırmak için kullanılan -AsJob parameteresi var. Bunu kullanarak bu işlemi arka planda gerçekleştirmek istedim.
Test-Connection -Computername 192.168.1.72 -Count 100 -AsJob
Ekrana arka planda çalışacak görevin kimliğini ve adını yazdı.
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 Job5 WmiJob Running True . Test-Connection
Daha birkaç saniye geçtikten sonra Get-Job ile duruma baktım ve görev tamamlanmış:
Get-Job -Id 5
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 Job5 WmiJob Completed True . Test-Connection
Emin olamadım, 100 tane ICMP paketi gerçekten gönderilmiş midir?
Wireshark'ı açıp ICMP filtresi ile tekrar başlattım ve evet, 100 ICMP echo request, 100 tane de echo reply ile 200 paket yakaladı. İlk paketin gönderilmesinden son paketin alınmasına kadar geçen süre de 1 saniyeden çok daha kısaydı. Bu gerçeği belgeleyen bir kaynak bulamadım ama konu çevrim içi ortamlarda konuşulmuş (1, 2).
Ne kadar sürdüğünü bulmak için Measure-Command kullanılabilir.
Measure-Command { Test-Connection -ComputerName bosbdc10 -Count 10 -Delay 1 -AsJob | wait-Job } | select -ExpandProperty totalmilliseconds

