Я создаю сценарий для поиска пользователей AD, которые не выполнили вход в систему в течение X дней и не относятся к определенной c группе безопасности. У меня есть 2 пользователя в OU, один из которых находится в группе безопасности DoNotDisable (pileum), а другой - нет (bubba).
$DC = Get-ADDomainController
$OUs = Get-ADOrganizationalUnit -Filter 'Name -eq "test"'
$accounts = $null
$canNotDisable = Get-ADGroupMember -Identity DoNotDisable -Recursive | Select -ExpandProperty Name
$TimeStamp = get-date -format D
$description = "Disabled on " + $TimeStamp
foreach ($OU in $OUs) {
# Search for User Accounts inactive for XX Days and Disable if not in DoNotDisable Security Group
$accounts = Search-ADAccount -SearchBase $OU -AccountInactive -TimeSpan ([timespan]90d) -UsersOnly
foreach($account in $accounts){
If ($canNotDisable -contains $account){
Write-Host "$account can not be disabled"
} Else {
Write-Host "$account can be disabled"
}
}
}
Если я посмотрю на переменную $ canNotDisable, она вытягивает правильный пользователь в группе DoNotDisable.
![enter image description here](https://i.stack.imgur.com/30n4j.png)
Однако, когда я запускаю полный скрипт, он возвращает как пользователя в группе, так и пользователя, которого нет в группе .
![enter image description here](https://i.stack.imgur.com/cjfo9.png)
Буду очень признателен, если кто-нибудь поможет мне разобраться, что мне не хватает. ТИА.