我正在尝试计算PID开始和当前时间之间的小时数,作为select的一部分,作为表达式。我正在尝试这样的事情,但它又回来了。我一直盯着这看了2个小时,无法到达任何地方。
非常感谢。
$Now = Get-date
$StartTime= @{n='StartTime';e={$_.ConvertToDateTime($_.CreationDate)}}
$serverlist = invoke-sqlcmd -serverinstance sqlservername -database myrepodb `
-query "SELECT server FROM dbo.ServerList"
$serverlist|%{
$computer = $_.server
gwmi win32_process -cn $_.server -filter "Name='notepad.exe' `
AND CreationDate IS NOT NULL" |
select @{Name = 'Servername'; Expression = {"$computer"}},$StartTime, processid, `
@{Name = 'HoursDiff'; Expression = {([datetime]$Now - [datetime]$_.CreationDate)}}
}
答案 0 :(得分:2)
假设它是HoursDiff
空回来,问题似乎是将WMI DMTF日期转换为PowerShell(.NET)日期时间。通过调用System.Management.ManagementDateTimeConverter替换$_.ConvertToDateTime
和[datetime]$_.CreationDate
。例如:
[System.Management.ManagementDateTimeConverter]::ToDateTime($_.CreationDate)