提取日期并计算差异

时间:2016-01-23 17:17:21

标签: powershell datetime

我有两个不同的对象。 一个是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}

1 个答案:

答案 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