我有两个不同的对象。 一个是WMI事件日志,另一个是WMI管理对象。
如何从这些变量中提取日期并找出时差?
编辑:
df.drop(df.index[['2012-02-29']])
两个样本输出:
$start = Get-WmiObject Win32_Process -Filter "commandline like '%something%'" -ComputerName $server | %{ $_.ConvertToDateTime($_.CreationDate) }
$end = Get-WMIObject -ComputerName $server -Query "SELECT TimeGenerated FROM Win32_NTLogEvent WHERE LogFile='Application' AND CategoryString = 'Server Startup'" | Select TimeGenerated -First 1
有必要在结束时使用-Query,因为事件由类别区分。 我试图减去这两个错误时,我当前收到以下错误。
1/20/2016 3:55:48 PM
@{TimeGenerated=20160120210057.000000-000}
答案 0 :(得分:2)
您可以使用减法运算符(-
):
$diff = $end.'Eventlog Time: ' - $start.'ABCD Start Time'
或者将值作为参数传递给New-TimeSpan
:
$diff = New-TimeSpan -Start $start.'ABCD Start Time' -End $end.'Eventlog Time: '
您似乎试图“优化”属性名称以便稍后显示它 - 我建议不要这样做,只需将DateTime
对象单独存储在变量中:
$start = Get-WmiObject Win32_Process -Filter "commandline like '%something%'" -ComputerName $server | Select -First 1 |%{ $_.ConvertToDateTime($_.CreationDate) }
$end = Get-EventLog System -Newest 1 -ComputerName $server -Source Microsoft-Windows-Winlogon |Select -ExpandProperty TimeGenerated
$diff = $end - $start