Марк Минаси (www.minasi.com/gethelp) – старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft

В последних нескольких статьях рубрики я рассказывал о search-adaccount – команде Windows Server 2008 R2, предназначенной для выполнения небольшого подмножества запросов, в которых часто возникает необходимость. По существу, большинство команд search-adaccount выглядит следующим образом:

search-adaccount -usersonly параметр [-searchbase...]

Очевидно, что такой синтаксис – верный путь к развитию болевого синдрома запястья, но выход есть. -usersonly – единственный параметр, начинающийся с «u», поэтому его можно сократить до этой буквы. Опережая вопросы, сразу замечу, что для search-adaccount не существует сокращения («псевдонима» на языке PowerShell). Для search-adaccount также предусмотрен параметр -computersonly (сокращаемый до -co), позволяющий выводить данные только о проблемных учетных записях компьютеров Active Directory (AD), и параметр -credential.

Перечислим возможности search-adaccount.

*Поиск отключенных учетных записей. Параметр -accountdisabled (сокращаемый до -accountd) позволяет вывести список отключенных учетных записей в данном домене:

search-adaccount -u -accountd

Мы уже знакомы с параметром -searchbase (или -searchb), сужающим диапазон поиска по запросу команды get-adusers, ограничивая его лишь определенной частью AD. Этот параметр применим и к search-adaccount. Для поиска отключенных учетных записей в подразделении Pungo можно применить такой запрос:

search-adaccount -u -accountd –searchb «ou=pungo,dc=bigfirm,dc=com»

*Поиск заблокированных учетных записей. Параметр -lockedout команды search-adaccount (сокращаемый до -l) по сути идентичен параметру -accountdisabled. Для создания таблицы заблокированных учетных записей с указанием времени их последней регистрации можно воспользоваться следующей командой:

search-adaccount -u -l | ft name,lastlogondate -auto

Вспомним, что ‘ft’ – это псевдоним команды format-table, форматирующей выходные данные в виде таблицы. Можно указать сортировку заблокированных пользователей по времени их последней успешной регистрации и передачу результата команде format-table:

search-adaccount -u -l | sort -pr lastlogondate | ft name,lastlogondate

*Поиск неактивных учетных записей. Параметр -accountinactive позволяет найти тех, кто не регистрировался в системе с определенного времени (с помощью параметра -DateTime) или на протяжении некоторого числа дней (с помощью параметра -TimeSpan). Параметр -accountinactive можно сократить до -accounti. Для выявления пользователей, которые не регистрировались на протяжении последних 50 дней, построим следующий запрос:

search-adaccount -u -accounti -timespan «50"

или в максимально сокращенном варианте:

search-adaccount -u -accounti -t "50»

Заметим, что число 50 обязательно следует заключать в кавычки; в противном случае будет выдан список пользователей, которые не регистрировались последние 15 дней. Числа, не заключенные в кавычки, игнорируются, сообщение об ошибке не выдается, а отсутствие параметров понимается как «за последние 15 дней». Можно с помощью параметра -DateTime (сокращаемого до -da) запросить список пользователей, не регистрировавшихся в системе с определенного момента времени. Однако в предыдущих статьях говорилось о том, что в search-adaccount заложен 15-дневный период отсрочки, отражающий индивидуальную особенность AD в части хранения информации о времени последней регистрации с данной учетной записью. Поэтому результатом выполнения запроса

search-adaccount -u -accounti -da «29 oct 2011»

будет список пользователей, последний раз регистрировавшихся в системе до 29 октября 2011 г., а также тех, кто вообще никогда не регистрировался. По причине 15-дневного «люфта», в реальности мы получим учетные записи с датой последнего входа, попадающей примерно на середину октября. Как и в случае -TimeSpan, синтаксис -DateTime требует, чтобы дата была заключена в кавычки.

*Поиск учетных записей с истекшим сроком действия пароля. Это еще одна удобная возможность, реализуемая с помощью параметра -passwordexpired, сокращаемого лишь до -passworde. Хотелось бы вас порадовать известием о том, что к поиску таких учетных записей применимы параметры -datetime или –timespan, но, к сожалению, данная команда этого не предусматривает.

*Поиск учетных записей с истекшим или почти истекшим сроком действия. Для поиска таких учетных записей применяются параметры -accountexpired и -accountexpiring. Аналогичный случай: -searchbase работает за обоих; -datetime и -timespan работают за -accountexpiring. Это отличный инструмент для удаления давно не использовавшихся учетных записей.

Search-adaccount – это превосходное средство для поиска проблемных или подозрительных учетных записей. В тандеме с get-aduser эта команда может стать отличным подспорьем при очистке AD. Однако она делает далеко не всю работу, поэтому в следующий раз мы познакомимся и с другими командами.