![](/img/trans.png)
[英]How to create a secure automated transfer of binary files between windows servers through a firewall, using powershell?
[英]Powershell: response times between Windows Servers
这可能只是我的 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 脚本框架内可行。
您可以获得这样的响应时间:
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)
希望能帮助到你。
我找到的有效解决方案是将 Get-Date 的 -Format 参数与以下内容一起使用:
Get-Date -Format "yyyy-MM-dd HH.mm.ss:fffffff"
这使您可以将时间精确到每个滴答声,或百万分之一秒。 有关更多信息: https ://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.