Назад | Перейти на главную страницу

Search-ADAccount :: Поиск неактивных, отключенных или просроченных учетных записей

В 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 командлет ... нет, используйте другой командлет, эти переключатели являются взаимоисключающими.