想要使用powershell查询远程PC的正常运行时间

想要使用powershell查询远程PC的正常运行时间,powershell,wmic,Powershell,Wmic,我想查询机器的正常运行时间,并决定通过powershell进行尝试,但我正在努力使其正常运行。以下是我迄今为止所做的工作: function Get-PCUptime { param ( [Parameter(ValueFromPipeline=$true)] [String]$computer = (Read-Host "Enter a computer name") ) $lastb

我想查询机器的正常运行时间,并决定通过powershell进行尝试,但我正在努力使其正常运行。以下是我迄今为止所做的工作:

   function Get-PCUptime {

        param (
            [Parameter(ValueFromPipeline=$true)]
            [String]$computer  = (Read-Host "Enter a computer name")
        )


        $lastboottime = (Get-WmiObject -Class Win32_OperatingSystem -Credential Administrator -comp $computer)
        $sysuptime = (Get-Date) – [System.Management.ManagementDateTimeconverter]::ToDateTime($lastboottime.LastBootUpTime)

        if ($lastboottime -ne $NULL){
            Write-Host “System($computer) is Uptime since : ” $sysuptime.days “days” $sysuptime.hours `
            “hours” $sysuptime.minutes “minutes” $sysuptime.seconds “seconds” -Foregroundcolor Gray;
        } 
    }
我似乎无法让它工作,因为我想把它转换成天、小时、分钟等

这是我收到的错误:

使用“1”参数调用“ToDateTime”时发生异常:“指定的参数超出有效值的范围。 参数名称:dmtfDate“


您可以在
Win32\u操作系统上使用
ConvertToDateTime
方法

function Get-PCUptime {
    param (
        [Parameter(ValueFromPipeline=$true,
                   HelpMessage="Enter a Computer Name"
        )]
        [String]$computer
    )

    $OS = (Get-WmiObject -Class Win32_OperatingSystem -Credential Administrator -comp $computer)
    $sysuptime = (Get-Date) – ($OS.ConvertToDateTime($OS.LastBootUpTime))

    if ($OS -ne $NULL){
        Write-Host “System($computer) is Uptime since : ” $sysuptime.days “days” $sysuptime.hours `
        “hours” $sysuptime.minutes “minutes” $sysuptime.seconds “seconds” -Foregroundcolor Gray;
    } 
}