Powershell 在一次选择中两次之间的小时数?
我试图计算PID开始和当前时间之间的小时数,作为select的一部分,作为表达式。我正在尝试这样的东西,但结果却是空的。我盯着这个看了两个小时,哪儿也去不了 非常感谢你的帮助Powershell 在一次选择中两次之间的小时数?,powershell,Powershell,我试图计算PID开始和当前时间之间的小时数,作为select的一部分,作为表达式。我正在尝试这样的东西,但结果却是空的。我盯着这个看了两个小时,哪儿也去不了 非常感谢你的帮助 $Now = Get-date $StartTime= @{n='StartTime';e={$_.ConvertToDateTime($_.CreationDate)}} $serverlist = invoke-sqlcmd -serverinstance sqlservername -database myrepo
$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)}}
}
假设返回为空的是
HoursDiff
,问题似乎是WMI DMTF日期转换为PowerShell(.NET)日期时间。用对的调用替换$\.ConvertToDateTime
和[datetime]$\\.CreationDate
。例如:
[System.Management.ManagementDateTimeConverter]::ToDateTime($_.CreationDate)
您确定
$serverlist
中有计算机吗?gwmi调用在本地主机上对我有效。您是否尝试过通过localhost
查看问题是在Win32_进程查询中还是在调用sqlcmd调用中?啊哈!好的,这让我明白了,所以我回来了(如果起床13小时15分钟,然后换衣服)13:15:22.8509847。使用它并以“.TotalHours”结束减法就可以了!非常感谢,先生!