到目前为止,我已经计算了180天前的日期和用户上次登录的日期。但是如何让它们相互比较呢?
$180_days_ago = (get-date) - (new-timespan - days 180)
GWmi Win32_NetworkLoginProfile | select @{label='LastLogon';expression={$_.ConvertToDateTime($_.LastLogon )}}
答案 0 :(得分:2)
日期比较可以这样做:
$180_days_ago = (Get-Date).AddDays(-180)
Get-WmiObject Win32_NetworkLoginProfile | Where-Object {
$_.LastLogon -and
$_.ConvertToDateTime($_.LastLogon) -gt $180_days_ago
}
这将为您提供不到180天前登录的用户。如果您需要所有用户指明他们上次登录是在截止日期之前还是之后,您可以执行以下操作:
Get-WmiObject Win32_NetworkLoginProfile | Where-Object {
$_.LastLogon
} | ForEach-Object {
if ($_.ConvertToDateTime($_.LastLogon) -gt $180_days_ago) {
"{0}:`tOK" -f $_.Caption
} else {
"{0}:`tNot OK" -f $_.Caption
}
}