Перейти к содержимому
www.mytechnote.ru
Меню
  • Администрирование
    • Скрипты
  • Оборудование
    • Обзоры
    • Инструкции
  • Прочее
  • Русский
    • English
    • Русский
Меню

Как найти компьютер, из-за которого постоянно лочится аккаунт в AD

Наверняка, практически каждый администратор, если в его подчинении много серверов, сталкивался с ситуацией, что после изменения пароля аккаунт начинает часто оказываться заблокированным. Практически 100%, если такое начало происходить после смены пароля – это из-за того, что на каком-то из серверов осталась висеть старая сессия, вход в которую был осуществлен со старым паролем. Соответственно компьютер пытается обновить данные о сессии, несколько раз происходит передача неверного пароля контроллеру домена, и учетная запись блокируется.

Чтобы подобного избежать, необходимо взять за правило – завершать сессии после окончания работы, но не всегда есть такая возможность, и бывает, что забываешь куда там когда-то заходил. Чтобы найти проблемные компьютеры, на которых висит сессия можно воспользоваться командой powershell которая просмотрит логи безопасности на контроллерх домена, на предмет блокировки аккаунта пользователя и выдаст список компьютеров, из-за которых произошла блокировка.

Команда:

Get-WinEvent -ComputerName dc01 -FilterHashtable `
@{logname='security';id=4740;data='johndoe'} |`
Select-Object -Property timecreated,`
@{label='username';expression={$_.properties[0].value}},`
@{label='computername';expression={$_.properties[1].value}}

Список компьютеров из-за которых аккаунт залочился

Соответственно computername – должен быть ваш контроллер домена (команду нужно будет выполнить для каждого из контроллера домена в вашей сети), data=’johndoe’ – нужно заменить на имя пользователя, для которого требуется найти причину проблемы.

UPD: Чтобы не заморачиваться с ручным вводом каждого  контроллера домена можно воспользоваться микроскриптом:

$username="johndoe"
$DomainName = (Get-ADDomain).DNSRoot
$AllDCs = Get-ADDomainController -Filter * -Server $DomainName | Select-Object name
foreach ($dc in $alldcs) {
    $dc.name
    Get-WinEvent -ComputerName $dc.name -FilterHashtable `
        @{logname='security';id=4740;data=$username} | `
        Select-Object -Property timecreated, `
        @{label='username';expression={$_.properties[0].value}}, `
        @{label='computername';expression={$_.properties[1].value}}
}
Опубликовано в 19.08.201930.05.2024 от sanglyb

Навигация по записям

← FlyDigi X8 Pro — геймппад на все случаи жизни
Redmi Airdots – дёшево и сердито [обзор] →

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подписывайтесь

Youtube
vk
telegram
github
twitter
rss
  • Форум
  • Об авторе
  • Поддержать автора

Популярные записи

Новые записи

  • Как расширить LVM раздел в Linux
  • Исправление ошибки SrsResources.dll после обновления SSRS для SCCM
  • Проблема при использовании библиотеки PassFiltEx на старых процессорах
  • Как удалить вложения из старых событий календаря в Exchange с помощью скрипта
  • Как скачать и установить Office 2024 LTSC

Архивы

  • 2026 (3)
  • 2025 (5)
  • 2024 (7)
  • 2023 (6)
  • 2022 (5)
  • 2021 (25)
  • 2020 (34)
  • 2019 (39)
  • 2018 (78)
  • 2017 (56)
  • 2016 (77)
  • 2015 (9)
© 2015-2026 www.mytechnote.ru
Использование материалов сайта возможно только с разрешения владельца или обязательна индексируемая, прямая, передающая вес ссылка на материал.