Поиск «Мертвых душ» в домене Windows 2008.
В конце года обычно актуальна проблема «Мертвых душ» (мы например, сразу не удаляем пользователей, а просто отключаем учетки, так как порой они становятся время от времени снова нужны, порой даже через очень продолжительное время).
Сделать это можно несколькими способами:
— Написать запрос LDAP (это проверенный способ, ранее повсеместно использовал его на Windows 2003)
Открываем «Active Directory — пользователи и компьютеры», выбираем «Сохраненные запросы». Создаем запрос, задаем Имя и Описание, нажимаем «Запрос», выбираем «Пользовательский поиск», переходим в «Дополнительно» и вставляем текст запроса.
-Включенные (не заблокированные) учетные записи в домене
(userAccountControl:1.2.840.113556.1.4.803:=512)(!(userAccountControl:1.2.840.113556.1.4.803:=2))
— Отключенные (заблокированные) учетные записи в домене
(&(objectCategory=person)(objectClass=user)(name=*)(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2)) получаем следующий результат запроса (на мой взгляд самый нормально читаемый) -Воспользоваться утилитой командной строки dsquery (но активных пользователей она не показывает, только отключенных)
> dsquery user -inactive 12 -limit 10000 - Воспользоваться скриптами PowerShellPS D:\>
Search-ADAccount
-AccountDisabled
# Найти все отключенные учетные записи Active Directory
еще немного полезных команд:PS D:\>
Search-ADAccount
-LockedOut
# Найти все заблокированные учетные записи Active Directory
PS D:\>
Search-ADAccount
-PasswordExpired
# Найти все учетные записи Active Directory, срок действия паролей которых истек
PS D:\>
Search-ADAccount
-PasswordNeverExpires
# Найти все учетные записи Active Directory, пароли которых не нужно менять периодически
PS D:\>
Search-ADAccount
-AccountExpired
# Найти все учетные записи Active Directory, срок действия которых истек
PS D:\>
Search-ADAccount
-AccountExpiring
-TimeSpan
10
# Найти все учетные записи Active Directory, срок действия которых истечет течении 10 дней
PS D:\>
Search-ADAccount
-AccountInactive
-TimeSpan
10
# Найти все учетные записи Active Directory, которые не логинились на протяжении 10 дней
PS D:\>
Search-ADAccount
-ComputersOnly
# Искать среди компьютеров Active Directory
Здесь вот человек рекомендовал еще вариант с помощью альтернативных скриптов: https://smearg.wordpress.com/2012/01/11/%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8-active-directory-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-powershell/ Я не большой специалист в скриптах PowerShell, поэтому пока не понимаю, как решить следующую задачу (пока думаю над ней...): Как удалить почтовые ящики Exchange всех найденных в домене заблокированных пользователей, исключив из этого списка ящики некоторых (на данный момент необходимых) пользователей? Если применить вот такую команду: [PS] C:\Windows\system32>Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason} то она нам покажет, только отключенные почтовые ящики, но ящики у заблокированных пользователей не отключены, поэтому результат будет равен нулю. На вскидку в голову приходит следующий вариант, но он воплотим чрез графический интерфейс (а мне хотелось бы понять, как правильно написать скрипт PowerShell) , так как по моему текущий вариант (не помню точно) потребует перемонтирования баз Exchange - Открываем оснастку "Чанги" выставляем параметры удаления в нули *-вот тут не помню надо ли перемонтировать базу (само-собой в продакшине это не есть ГУД), для применения параметров или они применяются сразу? -Выделяем необходимых нам для удаления пользователей в оснастке AD, уделяем их -После удаления пользователей получаем отключенные почтовые ящики, а далее посмотреть их можно или выше приведенным скриптом или в оснастке "Чанги" Не уверен, что алгоритм действий правильный... Если есть иные варианты решения задачи, просьба или поправить текущий вариант действий или рекомендовать скрипт PowerShell решающий эту задачу более простым путем? Всем хорошей работы !!!
Sorry, the comment form is closed at this time.