随笔 - 24, 文章 - 0, 评论 - 1, 引用 - 0
数据加载中……

Win32_PingStatus vs [System.Net.NetworkInformation.Ping] vs Ping.exe

 

$g = @("127.0.0.1")*50

 

Function Ping-Wmi {

PROCESS { 

$wmi 
= get-wmiobject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$_'"

if ($wmi.StatusCode -eq 0) { $_ }

}

}

 

Function Ping-Net {

Begin { $ping 
= new-object System.Net.NetworkInformation.Ping }

Process {

if ($ping.Send($_)) {

$_

}

}

}

 

Function Ping-Exe {

Process {

        
if ((Ping -1 $_|out-string) –match “Reply”) {

            $_

        }

    }

}

 

PS C:
\> measure-command { $g | Ping-Wmi } 

Days              : 
0
Hours             : 
0
Minutes           : 
0
Seconds           : 
0
Milliseconds      : 
802
Ticks             : 
8023905
TotalDays         : 
9.28692708333333E-06
TotalHours        : 
0.00022288625
TotalMinutes      : 
0.013373175
TotalSeconds      : 
0.8023905
TotalMilliseconds : 
802.3905 

  

PS C:
\> measure-command { $g | Ping-Net } 

Days              : 
0
Hours             : 
0
Minutes           : 
0
Seconds           : 
0
Milliseconds      : 
25
Ticks             : 
255965
TotalDays         : 
2.96255787037037E-07
TotalHours        : 
7.11013888888889E-06
TotalMinutes      : 
0.000426608333333333
TotalSeconds      : 
0.0255965
TotalMilliseconds : 
25.5965 

  

PS C:
\> measure-command { $g | Ping-Exe } 

Days              : 
0
Hours             : 
0
Minutes           : 
0
Seconds           : 
2
Milliseconds      : 
375
Ticks             : 
23757357
TotalDays         : 
2.74969409722222E-05
TotalHours        : 
0.000659926583333333
TotalMinutes      : 
0.039595595
TotalSeconds      : 
2.3757357
TotalMilliseconds : 
2375.7357 

 

从这个结果来看,Ping-Exe=2375.7357 > Ping-Wmi=802.3905 > Ping-Net=25.5965,该选择哪个就不用说了:)

posted on 2009-04-10 22:38 nicktang 阅读(280) 评论(0)  编辑 收藏 引用 所属分类: Powershell

只有注册用户登录后才能发表评论。