Powershell:Windows服务器之间的响应时间

时间:2017-02-10 05:12:56

标签: windows powershell server

这可能只是我的google-fu无法正常工作的情况,但我正在尝试在一组Windows服务器之间获得准确的响应时间。我可以在Powershell中使用以下类型:

Test-Connection -ComputerName google.com -count 1

但是这只会给你响应时间,以毫秒为单位:

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms) 
------        -----------     -----------      -----------                              -----    -------- 
ComputerName  google.com      172.217.26.14                                             32       26       

我们使用的应用程序需要非常快的响应时间(低于1毫秒),所以如果我作为一个简单的外行人可以在几微秒内测量它,那将会很棒。我试过以下的东西:

$startTime = Get-Date
$testConnection = Test-Connection -ComputerName google.com -count 1
$stopTime = Get-Date
$responseTime = $stopTime - $startTime

但这可以从20-30毫秒到120毫秒,大概是因为我的机器必须读取日期并计算差异,这需要花费几毫秒。

我假设某种形式的应用程序(可能是WireShark?)可以在几微秒内测量,但我无法找到它。我知道,例如Active Directory登录时间戳记录甚至低至纳秒,因此应该在Powershell脚本框架中可行。

感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

您可以像这样获得响应时间

Test-Connection www.google.com -Count 4 | Measure-Object -Property ResponseTime -Average

您可以使用 TimeSpan 类来处理不同的时间跨度

[timespan]::fromseconds((Test-Connection www.google.com -Count 4 | Measure-Object -Property ResponseTime -Average).average)

希望它有所帮助。

答案 1 :(得分:0)

为此找到的可行解决方案是将Get-Date的-Format参数与以下内容配合使用:

Get-Date -Format "yyyy-MM-dd HH.mm.ss:fffffff"

这使您可以节省每个滴答声的时间,即一百万分之一秒。有关更多信息:https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings