PowerShell 技能连载 - 创建快速的 Ping(第四部分)
在前一个技能中我们演示了如何用 WMI 快速 ping 多台计算机。那么今天我们将它封装为一个可复用的 PowerShell 函数。它可以快速地 ping 一台或多台计算机。
以下是函数代码:
1 | function Test-OnlineFast |
现在要以指定的超时值 ping 多台计算机变得非常简单:
1 | PS> Test-OnlineFast -ComputerName microsoft.com, google.de |
状态码 “0” 代表响应结果:主机在线。其他状态码代表失败。
默认情况下,Test-OnlineFast
的超时时间为 1000 毫秒,所以当一台计算机没有响应时,最多等待 1 秒。您可以通过 -TimeoutMillseconds
参数改变超时值。设置越长的超时值意味着命令的执行时间越长。所以您应该在系统足够响应的范围内使用尽可能短的超时时间。
另一个影响时间的变量是 DNS 解析:如果 DNS 解析速度慢,或者无法解析到名称,将增加总体时间。如果指定 IP 地址,就不会发生这种变慢现象。
以下是在几秒内 ping 200 个 IP 地址的例子:
1 | PS> $ComputerName = 1..255 | ForEach-Object { "10.62.13.$_" } |
PowerShell 技能连载 - 创建快速的 Ping(第四部分)
http://blog.vichamp.com/2018/02/20/creating-highspeed-ping-part-4/