Как найти заблокированные учетные записи в Microsoft Windows

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Как найти заблокированные учетные записи в Microsoft Windows

Как найти заблокированные учетные записи в Microsoft Windows

UncleFather » 26 апр 2012 15:01, Чт

Задача:

Необходимо найти все заблокированные учетные записи в Microsoft Windows.
Проблема актуальна для доменов с большим количеством пользователей, где нереально просмотреть все учетные записи вручную.

Решение 1:

Можно воспользоваться готовым скриптом PowerShell, запустив его на контроллере домена:

Спойлер

Код: Выделить всё

add-pssnapin "Quest.ActiveRoles.ADManagement"
$WshShell = New-Object -ComObject wscript.shell

$Body1 = Get-QADUser -locked  
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”`n” 
$Body1 = $Body1 | Select name,DN, canonicalName,userPrincipalName, title, displayName,sAMAccountName,givenName,sn, ";"
$Body1 = $Body1 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"****************************`n" -replace “;”,”`n”
$PopUp = $WshShell.popup("$Body1",0,"Заблокированные учетные записи",1)

$Body1 = Get-QADUser -disabled  
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body1 = $Body1 | Select name,userPrincipalName, sAMAccountName, ";"
$Body1 = $Body1 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$PopUp = $WshShell.popup("$Body1",0,"Отключенные учетные записи",1)

$Body1 = Get-QADUser -inactivefor 30 -disabled:$false 
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body1 = $Body1 | Select name,userPrincipalName, sAMAccountName, ";"
$Body1 = $Body1 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$PopUp = $WshShell.popup("$Body1",0,"Неактивные в течение 30 дней учетные записи",1)

$Body1 = Get-QADUser -inactive -disabled:$false 
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body1 = $Body1 | Select name,userPrincipalName, sAMAccountName, ";"
$Body1 = $Body1 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$PopUp = $WshShell.popup("$Body1",0,"Неактивные учетные записи",1)

$Body1 = Get-QADUser -deleted 
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body1 = $Body1 | Select name,userPrincipalName, sAMAccountName, ";"
$Body1 = $Body1 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$PopUp = $WshShell.popup("$Body1",0,"Удаленные учетные записи",1)

Этот скрипт отобразит последовательно пять окон, в которых будут отображены:

  1. Заблокированные учетные записи

  2. Отключенные учетные записи

  3. Неактивные в течение 30 дней, но НЕ отключенные учетные записи

  4. Учетные записи, которые никогда не были активными и при этом НЕ отключены

  5. Удаленные учетные записи

Вариант скрипта, который посылает те же данные на электронную почту:

Спойлер

Код: Выделить всё

$Subject = “Информация об аккаунтах:" 
$Server = “smtp.domain.ua” 
$From = “noreplay@domain.ua” 
$To = “it@domain.ua” 
$encoding = [System.Text.Encoding]::UTF8

add-pssnapin "Quest.ActiveRoles.ADManagement"

$Body1 = Get-QADUser -locked  
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”`n” 
$Body1 = $Body1 | Select name,DN, canonicalName,userPrincipalName, title, displayName,sAMAccountName,givenName,sn, ";"
$Body1 = $Body1 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"****************************`n" -replace “;”,”`n”
$Theme1 = "Заблокированные учетные записи:`n"

$Body2 = Get-QADUser -disabled  
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body2 = $Body2 | Select name,userPrincipalName, sAMAccountName, ";"
$Body2 = $Body2 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$Theme2 = "Отключенные учетные записи:`n"

$Body3 = Get-QADUser -inactivefor 30 -disabled:$false 
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body3 = $Body3 | Select name,userPrincipalName, sAMAccountName, ";"
$Body3 = $Body3 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$Theme3 = "Неактивные в течение 30 дней учетные записи:`n"

$Body4 = Get-QADUser -inactive -disabled:$false 
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body4 = $Body4 | Select name,userPrincipalName, sAMAccountName, ";"
$Body4 = $Body4 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$Theme4 = "Неактивные учетные записи:`n"

$Body5 = Get-QADUser -deleted 
#$Body1 = $Body1 -replace “;”,”`n” -replace “^”,”,” 
$Body5 = $Body5 | Select name,userPrincipalName, sAMAccountName, ";"
$Body5 = $Body5 -replace “@{” -replace “}” -replace “=”, “: ” -replace “;:”,"`n" 
$Theme5 = "Удаленные учетные записи:`n"

Send-MailMessage -From $From -To $To -SmtpServer $server -Body “$Theme1 $Body1 `n $Theme2 $Body2 `n $Theme3 $Body3 `n $Theme4 $Body4 `n $Theme5 $Body5” -Subject $Subject -Encoding $encoding

Скрипты можно скачать отсюда:

LockedAccounts.rar
(2.15 КБ) 595 скачиваний

Для выполнения этих скриптов дополнительно необходимо установить на контроллере домена ActiveRoles Management Shell for Active Directory
Это дополнение для 32-х битных систем так же можно скачать здесь.

Решение 2:

Можно просмотреть в журналах MS Windows записи о блокировке учетной записи.

В журнале безопасности, для отслеживания подобных событий, существует запись с кодом 680, от источника Security, категории Account Logon.

Запись с кодом 680
Запись с кодом 680
Pic1.png (71.35 КБ) 7549 просмотров

В этой записи показана информация о том в какое время и с какого компьютера была предпринята попытка ввода неверного пароля. Конечно есть способ реагировать на событие немедленно. Если вы отслеживаете появления подобных записей и своевременно реагируете на них, то определить источник проблемы будет просто.

Но, может так случиться, что таких записей ОГРОМНОЕ множество. И никто не реагирует на них немедленно, а расследует инциденты потом. Пользователи часто ошибаются с вводом пароля. И не существует простого способа определить точное время того, когда аккаунт был заблокирован. Как правило мы узнаем об этом через некоторое время, от самого пользователя.

А иногда просто необходимо получить информацию о заблокированных учетных записях, не роясь долго в журналах безопасности все контроллеров доменов.

В решении проблемы нам может помочь утилита Microsoft Account Lockout Status

ALaMT.rar
Account Lockout and Management Tools
(949.12 КБ) 768 скачиваний

которая входит в пакет утилит Account Lockout and Management Tools. Утилита была выпущена еще в 2003 году. Удивительно, что спустя много лет она все еще востребована.

Подробное описание пакета есть здесь.

Принцип работы утилиты заключается в том, что она анализирует журналы событий на всех контроллерах домена в сети и определяет на каком контроллере произошла блокировка, в какое время, а так же предоставляет дополнительную информацию, которая может помочь нам в расследовании. Так же утилита может помочь снять блокировку с учетной записи и многое другое.

Оригинал статьи

Пример работы с утилитой Account Lockout and Management Tools:

Чтобы получить список заблокированных пользователей, необходимо:

  1. Получить список всех контроллеров домена (Gets All DCs)

  2. Выделить все КД для поиска(Selects all DCs for searching)

  3. Отметить "Журнал безопасности" (Selects the Security Log)

  4. Отметить "Аудит успехов" и "Аудит отказов" (Selects Success and Failure Audits)

  5. Указать специфические коды событий "529", "539" и "644" (Sets the Specific IDs to 529 539 644)

Accs1.JPG

В результате выполнения откроется папка с обработанными журналами. Каждому серверу соответствует свой журнал: SRV02-Security_LOG.txt - для сервера "SRV02".

Открываем обработанный журнал, и видим:

Accs.JPG

В этой выборке просматривать информацию о необходимом нам событии блокировки учетной записи.


Вернуться к началу