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

Быстрый и легкий способ удалить устаревших пользователей Active Directory?

У нас около 70 сотрудников, но в ActiveDirectory 178 учетных записей. Предыдущие администраторы никогда не удаляли старые учетные записи, а иногда даже не отключались.

В настоящее время я рассматриваю возможность вручную просмотреть каждую учетную запись, чтобы определить, можно ли ее удалить. Есть ли более простой способ удалить учетные записи на основе условия? Например, удалить (или, по крайней мере, отключить или пометить каким-либо образом) пользователей, которые не входили в систему в течение последнего месяца или около того?

Ты можешь использовать dsquery чтобы найти неактивных пользователей:

dsquery user -inactive 10 -limit 0

Должен вернуть всех пользователей в неактивное состояние в течение 10 или более недель.

Из dsquery user /?

...
-inactive <NumWeeks>    Finds users that have been inactive
                        (not logged on) for at least <NumWeeks>
                        number of weeks.
...

Вы можете передать вывод в dsrm, если хотите удалить списки из домена. Обратите внимание, это не побеспокоит вас, поэтому будьте осторожны.

dsquery user -inactive 10 -limit 0 | dsrm -noprompt

См. Этот несколько связанный вопрос: Удаление старых компьютеров в домене

Если вы просто запустите dsquery в контексте вызываемого командного файла с более чем одним объектом, выбранным из вашего dsquery, вы получите сообщение «dsmove failed (user) is an unknown parameter».

У меня есть два пакета (один для учетных записей компьютеров и один для учетных записей пользователей), которые запускаются ежемесячно из задач Windows Sch. У них такой код:

Для компьютеров:

    for /f "Tokens=*" %%s in ('dsquery computer -inactive 5 -limit 0') do ( 
DSMOVE %%s -newparent "OU=Computers,OU=Quarantine,OU=MyOu,DC=MyDomain,DC=local" 
) 

Для пользователей:

        for /f "Tokens=*" %%s in ('dsquery user -inactive 5 -limit 0') do ( 
DSMOVE %%s -newparent "OU=Users,OU=Quarantine,OU=MyOu,DC=MyDomain,DC=local" 
) 

У меня есть объекты групповой политики, примененные к тем «карантинным» подразделениям, которые имеют запросы на вход, чтобы уведомить пользователя о том, что учетная запись пользователя или учетная запись компьютера будет удалена, и связаться со службой поддержки, если они считают, что это ошибка. Объекты групповой политики также выполняют некоторые действия по блокировке. Затем я просматриваю перемещенные объекты для ручного удаления, если не вижу никаких исключений (например, пользователь в длительном отпуске или оффлайн, но важный сервер).

Вы можете изменить "do" dsmove на dsrm, если хотите пропустить перемещение и просмотр OU.

Посмотреть здесь: Сценарий Active Directory: сбой DSMOVE

Если вы поклонник Powershell, я бы зашел на сайт www.quest.com и использовал их набор инструментов для Active Directory. Они бесплатные.

Команды PowerShell для Active Directory

Командная консоль ActiveRoles для Active Directory - это набор команд PowerShell, которые можно использовать для выполнения и автоматизации административных задач, таких как обнаружение среды AD, изменение свойств пользователя, изменение членства в группах, подготовка новых учетных записей пользователей и выполнение множества других задач в Active Directory. .