Tôi đang sử dụng Powershell phiên bản 2, vì vậy tôi không thể sử dụng Ping-Host như đã giải thích ở đây Is there a way to treat Ping-Host as a boolean in PowerShell?Chuyển đổi Test-Kết nối thành Boolean
tôi có thể sử dụng kết nối thử nghiệm, tức là
Test-Connection *ip_address* -count 1
Tôi cố gắng biến nó thành một boolean, nhưng nó không hoạt động
if ($(test-connection server -count 1).received -eq 1) { write-host "blah" } else {write-host "blah blah"}
Máy chủ tôi có thể ping kết quả đầu ra "blah blah", như thể tôi không thể ping nó.
Mặt khác, nếu tôi ping một máy chủ không thể truy cập, tôi nhận được thông báo lỗi
Test-Kết nối: Kiểm tra kết nối đến máy tính máy chủ thất bại: Lỗi do thiếu nguồn lực Tại dòng: 1 char: 22 + if ($ (thử nghiệm kết nối < < < < máy chủ -count 1) .received -eq 1) {write-host "blah"} else {write-host "blah blah"} + CategoryInfo : ResourceUnavailable: (máy chủ: String) [Test-Kết nối], PingException + FullyQualifiedErrorId: TestConnectionException, Microsoft.PowerShell.Commands.TestConnectionCommand
Và vào cuối nó vẫn kết quả đầu ra "blah blah".
Cách khắc phục?
Tôi đã xem qua câu hỏi này tìm kiếm một cách nhanh chóng để ping/kiểm tra kết nối/thử NetConnection. Tôi đã giải quyết trên tập lệnh này: https://gallery.technet.microsoft.com/scriptcenter/Fast-asynchronous-ping-IP-d0a5cf0e/ – YetAnotherRandomUser