在Powershell中检查远程服务器的UPTIME

kay*_*ay5 1 powershell

我试图在我的脚本中使用下面的代码片段检索远程服务器的UPTIME.

$lastboottime = (Get-WMIObject -Class Win32_OperatingSystem -ComputerName     $server -Credential $altcreds -ErrorAction SilentlyContinue).LastBootUpTime
$sysuptime = (Get-Date) - [System.Management.ManagementDateTimeconverter]::ToDateTime($lastboottime)
$uptime = "   UPTIME           :    $($sysuptime.days) Days, $($sysuptime.hours) Hours, $($sysuptime.minutes) Minutes, $($sysuptime.seconds) Seconds"
Run Code Online (Sandbox Code Playgroud)

执行脚本时出现以下错误:

Exception calling "ToDateTime" with "1" argument(s): "Specified argument was out of the range of valid values.
Parameter name: dmtfDate"
Run Code Online (Sandbox Code Playgroud)

我无法确定错误消息是什么参数是必需的?

谢谢!

小智 5

将WMI-Objects上的时间值转换为datetime-objects可以通过在对象本身上调用ConvertToDateTime方法来完成.

简单的例子:

$wmi = Get-WMIObject -Class Win32_OperatingSystem
$lastboottime = $wmi.ConvertToDateTime($wmi.LastBootUpTime)
$sysuptime = (Get-Date) - $lastboottime
$uptime = "   UPTIME           :    $($sysuptime.days) Days, $($sysuptime.hours) Hours, $($sysuptime.minutes) Minutes, $($sysuptime.seconds) Seconds"
write-host $uptime
Run Code Online (Sandbox Code Playgroud)