Следующая команда вернет объекты ADUser для user1 и user2 в PowerShell v3, но null в powershell v2.
(@("user1", "user2") | Get-ADUser).Name
Если вы используете powershell v2, я бы посоветовал попробовать изменить команду на:
Get-ADUser -filter * -Properties accountExpires | Select -ExpandProperty AccountExpires
Это вернет массив атрибутов AccountExpires.
Другая проблема заключается в том, что вы, по сути, подключаете возможный массив к
[System.DateTime]::FromFileTime($expireDate)
При этом $expireDate является возможным массивом. Я считаю, что это вернет время только для первого элемента массива.
Другая возможная проблема может заключаться в том, что вы проверяете, превышает ли whenCreated дату истечения срока действия. Обычно эта дата будет меньше, чем . Все вместе, если вы ищете учетные записи с истекшим сроком действия, я бы сделал что-то вроде:
$users = Get-ADUser -filter * -Properties AccountExpires, WhenCreated
foreach ( $user in $users ) {
$span = [DateTime]::FromFileTime($user.AccountExpires) - $user.WhenCreated
if ( $span.Days -eq 90 ) {
# Do Something with user that was set to expire 90 days
}
}
person
skukx
schedule
24.04.2015