ルート内のすべてのユーザーを返し、アカウントが15日または30日以上非アクティブである場合にフラグを立てるPowerShellスクリプトを作成しようとしています。私は近いと思いますが、私のIf/Elseifステートメントは機能していないようです。誰かがこれを改善する方法を知っていますか?
$objSearcher.Filter = "(&(objectCategory=person)(objectClass=user))"
$objSearcher.PropertiesToLoad.Add("displayName")
$objSearcher.PropertiesToLoad.Add("sAMAccountName")
$objSearcher.PropertiesToLoad.Add("lastLogonTimeStamp")
$userObjects = $objSearcher.FindAll()
foreach ($user in $userObjects)
{
$dn = $user.Properties.Item("displayName")
$sam = $user.Properties.Item("sAMAccountName")
$logon = $user.Properties.Item("lastLogonTimeStamp")
if($logon.Count -eq 0)
{
$lastLogon = "Never"
}
#Inactive for 15 days
elseif($logon.Value -ge (get-date).AddDays(-15))
{
$lastLogon = "Pending"
}
#Inactive for 30 days
elseif($logon.Value -ge (get-date).AddDays(-30))
{
$lastLogon = "Retired"
}
else
{
$lastLogon = [DateTime]$logon[0]
$lastLogon = $lastLogon.AddYears(1600)
}
"""$dn"",$sam,$lastLogon"
}
ありがとう