В Search-ADAccount
командлет имеет переключатели -AccountDisabled
, -AccountExpired
и -AccountInactive
; результаты которых не могут быть взаимоисключающими или включающими.
то есть учетная запись, которая была отключена вчера, но была неактивна только в течение 1 недели, может не отображаться как отключенная, если наш временной интервал составляет -90 дней. И наоборот, учетная запись, которая еще не была отключена, но не использовалась какое-то время, будет отображаться как неактивная, но не отключенная.
Есть ли способ использовать эти переключатели для отображения всех отключенных, просроченных OR
неактивные аккаунты; или мне нужно выполнить три запроса, а затем выполнить | select * -unique
удалить дубликаты?
Вот как бы я это сделал.
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 на LastLogonDate ... но это означает, что вы увидите учетные записи, которые, возможно, были созданы вчера и просто не имели возможности войти в систему. .. в этом случае для компенсации добавьте чек на WhenCreated -LT (Get-Date).AddDays(-90)
убедитесь, что вы получаете только те учетные записи, которые были созданы более 90 дней назад, но никогда не входили в систему.
И чтобы собственно ответить на ваш вопрос о Search-ADAccount
командлет ... нет, используйте другой командлет, эти переключатели являются взаимоисключающими.