
Командлет Search-ADAccount
имеет переключатели -AccountDisabled
, -AccountExpired
и -AccountInactive
; результаты которых не могут быть ни взаимоисключающими, ни взаимоисключающими.
т. е. аккаунт, который был отключен вчера, но был неактивен только 1 неделю, может не отображаться как отключенный, если наш временной интервал составляет -90 дней. И наоборот, аккаунт, который еще не был отключен, но не использовался некоторое время, будет отображаться как неактивный, но не отключенный.
Можно ли использовать эти переключатели для составления списка всех отключенных, OR
неактивных учетных записей с истекшим сроком действия или мне придется выполнить три запроса, а затем выполнить команду , | select * -unique
чтобы удалить дубликаты?
решение1
Вот как бы я это сделал.
Get-ADUser -Filter * -Properties Enabled, AccountExpirationDate, LastLogonDate | ? { `
($_.Enabled -EQ $False) -OR `
($_.AccountExpirationDate -NE $NULL -AND $_.AccountExpirationDate -LT (Get-Date)) -OR `
($_.LastLogonDate -NE $NULL -AND $_.LastLogonDate -LT (Get-Date).AddDays(-90)) }
Один вызов AD, получает только те свойства, которые нам нужны. Включает всех пользователей, которые либо отключены, либо просрочены (необычная настройка), либо «неактивны».
Обратите внимание, что LastLogonDate будет иметь значение null, если учетная запись пользователя была создана, но пользователь ни разу не входил в систему.
AccountExpirationDate также будет иметь значение null большую часть времени, поскольку администраторы нечасто используют эту настройку. Вам нужно проверить, что они не равны null, прежде чем можно будет проводить осмысленные сравнения с датами.
Если вы хотите включить учетные записи пользователей, которые никогда не входили в систему, просто удалите проверку $Null для LastLogonDate... но это означает, что вы увидите учетные записи, которые могли быть созданы вчера и просто еще не имели возможности войти в систему... в этом случае, чтобы компенсировать это, добавьте проверку , чтобы WhenCreated -LT (Get-Date).AddDays(-90)
быть уверенным, что будут включены только учетные записи, которые были созданы более 90 дней назад, но никогда не входили в систему.
И чтобы ответить на ваш вопрос относительно Search-ADAccount
командлета... нет, используйте другой командлет, эти переключатели являются взаимоисключающими.