我正在編寫一個腳本,用於過濾AD中的計算機帳戶。我想要禁用/刪除至少90天內至少停用的所有帳戶。如果他們不活躍,他們應該被禁用,至少90天,如果不活動超過180天,他們應該被刪除同一變量中的不同時間格式
所以,我得到的日期禁用和刪除
$disbale= (Get-Date).AddDays(-90)
$delete = (Get-Date).AddDays(-180)
現在我遍歷一個給定的OU並獲得至少90天無效的所有帳戶,因此我也可以獲得那些在180天內無效的帳戶。
$acc = Get-ADcomputer -Filter {LastLogonTimeSTamp -lt $disable)} -Properties LastLogonTimeStamp,Description -SearchBase "OU=Computer,DC=dom,DC=de" -Server dom
然後我把它們變成一個foreach來確定停用或刪除它們
foreach ($pc in $acc) {if($pc.LastLogonTimeSTamp -lt $delete){write-host 'delete'} else {write-host 'disable'}}
但在這裏我遇到了錯誤$pc.LastLogonTimeSTamp
是類型[Int64的],是一個數量的18位, $delete
是格式化時間。但爲什麼以上LastLogonTimeSTamp -lt $disable
上面的相同比較工作,現在它可以嗎?我該如何在這個簡單的工作環境中工作?
'$ DeleteFileTime = $ delete.ToFileTime()'然後'如果($ pc.LastLogonTimeStamp -lt $ DeleteFileTime)' –