Os usuários na sua organização esquecem suas senhas? Com certeza não! Um usuário do Active Directory bloqueou sua conta? De jeito nenhum! Vamos ver o que podemos fazer para encontrar usuários bloqueados no Active Directory com o PowerShell!
Pare de lidar com chamadas de redefinição de senha e bloqueios de conta no Active Directory. Obtenha um teste GRATUITO do Specops uReset.
Sua rede já foi infectada por malware que tenta autenticar com o máximo de contas de usuário de domínio possível? Espero que não, mas já vi isso acontecer algumas vezes. Usuários e worms são apenas duas das razões pelas quais uma ou mais contas do AD podem ser bloqueadas. Dependendo da sua política de senhas, os bloqueios podem ser uma ocorrência diária ou acontecer apenas ocasionalmente.
Independentemente do motivo ou situação, os bloqueios de conta afetam seus usuários. Como eles dependem de sua conta de domínio do Active Directory para quase tudo, eles perceberão imediatamente quando ela estiver bloqueada. A conta pode ser reativada pelo seu helpdesk, mas e se acontecer de novo? …e de novo. …e de novo. Descobrir a causa raiz desse problema é importante.
Uma maneira de fazer isso é usar o PowerShell e o módulo ActiveDirectory. Ao utilizar o cmdlet Search-AdAccount
dentro do módulo Active Directory, você pode rastrear facilmente todas as contas que estão atualmente bloqueadas em seu domínio.
Relacionado: Como Instalar o módulo PowerShell do Active Directory
Encontre Usuários Bloqueados no Active Directory com o PowerShell
Para procurar por contas bloqueadas, você pode executar o comando Search-AdAccount
usando o parâmetro LockedOut
. Isso retornará todos os usuários atualmente bloqueados, desde que você tenha a permissão para visualizar isso.
Este comando é ótimo, mas e se você tiver uma conta que está continuamente sendo bloqueada e precisa descobrir de qual sistema isso está ocorrendo? Esta é uma tarefa comum sempre que há uma infecção por malware em algum lugar da sua rede ou talvez quando há um administrador esquecido que esqueceu de fazer logout de uma sessão de desktop remoto. Isso nunca aconteceu, certo?
Para encontrar a origem de um bloqueio no Active Directory, primeiro, você precisará garantir que está consultando o controlador de domínio correto. Neste caso, será o controlador de domínio com a função de emulador de PDC.
Encontre o Detentor da Função PDCe
Toda autenticação de senha virá para este controlador de domínio que possui a função PDCe, então este é sempre o melhor local para verificar. Para encontrar o controlador de domínio com a função PDCe, você pode verificar a propriedade “PDCEmulator” retornada pelo cmdlet “Get-ADDomain”.
Varrer o log de eventos em busca de bloqueios de conta
Depois de identificar o controlador de domínio com a função PDCe, você precisará consultar o log de eventos de segurança (logs de segurança) deste controlador de domínio em busca do evento ID 4740. O evento ID 4740 é registrado sempre que uma conta é bloqueada. Para fazer isso, utilize o cmdlet “Get-WinEvent”.
Você está muito próximo de encontrar os usuários bloqueados no Active Directory com o PowerShell!
Analisando o nome de usuário e o local
Isso retornará todos os eventos de bloqueio, mas não mostra imediatamente os nomes de usuário e computadores nos quais o bloqueio foi realizado. Para encontrar o nome de usuário, você precisará explorar um pouco mais uma propriedade retornada pelo “Get-WinEvent” chamada “Properties”.
Observe que movi o filtro do hashtable para evitar a quebra de código e, mais importante, usei as propriedades calculadas do “Select-Object” para extrair o nome de usuário e o nome do computador da propriedade “Properties”. Em cada um desses eventos, o nome de usuário que foi bloqueado é sempre o primeiro elemento no array “Properties”, enquanto o segundo elemento é sempre o nome do computador onde o bloqueio foi realizado.
Aproveitando o PowerShell para desbloquear contas do AD.
Agora que você encontrou seus usuários do AD bloqueados, como você desbloqueia as contas? O módulo ActiveDirectory
no PowerShell oferece o comando Unlock-ADAccount
, que facilita o trabalho de colocar um cliente de volta ao trabalho. Como mostrado abaixo, use o PowerShell para desbloquear contas do AD. Esse comando funciona tanto no Windows PowerShell quanto no PowerShell 7, uma vez carregado pelo módulo ActiveDirectory
.
Talvez você esteja procurando desbloquear todos os usuários bloqueados de uma vez, use o comando Search-ADAccount
com o parâmetro -LockedOut
e encaminhe os resultados para o comando Unlock-ADAccount
, como mostrado abaixo.
Reduza as chamadas ao service desk e atualize as credenciais em cache para usuários remotos, mesmo sem VPN, com uma solução de redefinição de senha de autoatendimento. Obtenha uma demonstração do Specops uReset!
Resumo

Até agora, você deveria ser capaz de identificar rapidamente todas as contas que estão atualmente bloqueadas em seu domínio, bem como ver um histórico de todos os bloqueios de conta. Agora é hora de ter uma conversa séria com o Joe sobre deixar essas sessões RDP abertas…
Source:
https://adamtheautomator.com/find-locked-out-users-in-active-directory-powershell/