Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Поиск «Мертвых душ» в домене 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))
snap1

получаем следующий результат запроса (на мой взгляд самый нормально читаемый)
snap2
-Воспользоваться утилитой командной строки dsquery (но активных пользователей она не показывает, только отключенных)
> dsquery user -inactive 12 -limit 10000
snap3
- Воспользоваться скриптами PowerShell
PS D:\> Search-ADAccount -AccountDisabled # Найти все отключенные учетные записи Active Directory
snap4
еще немного полезных команд:
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
- Открываем оснастку "Чанги" выставляем параметры удаления в нули
snap6*-вот тут не помню надо ли перемонтировать базу (само-собой в продакшине это не есть ГУД), для применения параметров или они применяются сразу?
-Выделяем необходимых нам для удаления пользователей в оснастке AD, уделяем их
snap5-После удаления пользователей получаем отключенные почтовые ящики, а далее посмотреть их можно или выше приведенным скриптом или в оснастке "Чанги"
snap7Не уверен, что алгоритм действий правильный... 
Если есть  иные варианты решения задачи, просьба или поправить текущий вариант действий или рекомендовать скрипт PowerShell решающий эту задачу более простым путем?
Всем хорошей работы !!!

03.12.2014 - Posted by | ms windows server 2008

Sorry, the comment form is closed at this time.