Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Como bloquear, desbloquear, habilitar e desabilitar contas AD com PowerShell

Como bloquear, desbloquear, habilitar e desabilitar contas AD com PowerShell

Jul 30, 2018

As ferramentas de gerenciamento GUI do Active Directory, como o Active Directory Users and Computers (ADUC), são adequadas para realizar operações em contas individuais. Mas quando você precisa lidar com várias contas AD, PowerShell é uma ferramenta mais flexível. Neste post, vou mostrar como usar o PowerShell para bloquear, desbloquear, habilitar e desabilitar contas de usuários e computadores AD individualmente e em massa usando arquivos delimitados por vírgulas.

Antes de poder executar os cmdlets do PowerShell do Active Directory, você precisa ter o módulo do Active Directory para o PowerShell instalado no seu computador. Se estiver usando o Windows 10, baixe as Ferramentas de Administração de Servidor Remoto (RSAT) para Windows 10 do site da Microsoft aqui e depois instale-o. Em seguida, habilite o recurso do módulo AD PowerShell abrindo um prompt do PowerShell com privilégios de administrador local e executando o cmdlet Enable-WindowsOptionalFeature conforme mostrado aqui:

      Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
      

Opcionalmente, você também pode atualizar os arquivos de ajuda usando o cmdlet Update-Help:

      Update-Help -Module ActiveDirectory -Verbose -Force
      

Certifique-se de fechar o prompt do PowerShell, pois você não precisará de privilégios elevados para mais nada. As instruções a seguir podem ser executadas no contexto de segurança de qualquer usuário que tenha permissões para realizar operações de conta de usuário no Active Directory, como desbloquear contas de usuário e ativar e desativar contas de usuário, computador e serviço.

Como encontrar contas bloqueadas no Active Directory

Você não pode bloquear contas do Active Directory usando PowerShell ou a GUI; de fato, não há razão para querer fazer isso. Mas você pode procurar por contas de usuário bloqueadas com a ajuda do cmdlet Search-ADAccount. Aqui eu encadeio os resultados do cmdlet Search-ADAccount ao cmdlet Select-Object para exibir apenas os atributos Name e SamAccountName de cada conta bloqueada:

      Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName
      

Como desbloquear contas do Active Directory

Você pode desbloquear facilmente contas de usuário usando o cmdlet Unlock-ADAccount. Use o parâmetro -Identity para especificar qual conta desbloquear; você pode fornecer seu nome distinto, identificador de segurança (SID), identificador único global (GUID) ou nome de conta do Gerenciador de Conta de Segurança (SAM). Aqui estou desbloqueando a conta de RussellS:

      Unlock-ADAccount -Identity RussellS
      

Como habilitar contas do Active Directory

Se um objeto de conta foi desativado por qualquer motivo, você pode ativá-lo usando o cmdlet Enable-ADAccount:

      Enable-ADAccount -Identity RussellS
      


Como desativar contas do Active Directory

Da mesma forma, o cmdlet Disable-ADAccount é usado para desativar contas AD:

Disable-ADAccount -Identity RussellS

Desativando usuários a partir de um arquivo CSV

Você também pode desativar todas as contas de usuário do Active Directory listadas em um arquivo de texto delimitado por vírgulas (.csv). O arquivo deve conter um cabeçalho e, em seguida, uma lista de nomes de usuário, um em cada linha. Meu arquivo CSV tem apenas uma coluna (com o cabeçalho “Name”), então meu arquivo delimitado por vírgulas não tem vírgulas! Se o seu arquivo CSV tiver mais de uma coluna, essas colunas adicionais serão simplesmente ignoradas pelo script.

Image

Começo importando o conteúdo do arquivo CSV como um objeto ($users) e, em seguida, uso um loop ForEach para desativar o usuário em cada linha do arquivo de texto. Aqui está o script do PowerShell:

      $users=Import-CSV c:tempusers.csv
ForEach ($user in $users)
{
     Disable-ADAccount -Identity $($user.name)
}
      

Gerencie contas AD com Netwrix Directory Manager

Desativando contas de computador a partir de um arquivo CSV

O script do PowerShell para desativar contas de computador listadas em um arquivo CSV é quase idêntico. A principal diferença é que eu tenho que adicionar um cifrão ($) ao final do valor do parâmetro -Identity para designar que quero desativar um objeto de computador e não um objeto de conta de usuário. Eu também altero os nomes das variáveis e dos arquivos para serem mais apropriados para contas de computador.

Aqui está o script:

      $computers=Import-CSV c:tempcomputers.csv
ForEach ($computer in $computers)
{
     Disable-ADAccount -Identity "$($computer.name)$"
}
      

Para verificar os resultados, utilize o cmdlet Search-ADAccount:

      Search-ADAccount –AccountDisabled –ComputersOnly | Select-Object Name, SamAccountName
      

Desativando usuários inativos

Os cmdlets Search-ADAccount e Disable-ADAccount podem ser usados juntos para desativar contas de usuários inativas. Vou dar dois exemplos. Primeiro, criarei um novo objeto de intervalo de tempo ($timespan) e definirei para noventa dias, e então usarei como valor do parâmetro -TimeSpan para desativar contas que não estiveram ativas nos últimos três meses. O parâmetro -AccountInactive exige que o nível funcional do domínio seja Windows Server 2003 ou superior.

      $timespan = New-Timespan -Days 90
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $timespan | Disable-ADAccount
      

Outra opção é usar o parâmetro -DateTime para retornar contas que estão inativas desde uma data específica. Este script desativa todas as contas não ativas desde 3 de junho de 2018:

      Search-ADAccount -UsersOnly -AccountInactive -DateTime ‘6/3/2018’ | Disable-ADAccount
      

É importante notar que devido à forma como o Active Directory sincroniza o atributo LastLogOnDate, os resultados obtidos ao especificar o parâmetro –AccountInactive com o cmdlet Search-ADAccount podem ser imprecisos por até 9–14 dias.

Como você pode ver, gerenciar o status das contas do Active Directory com o PowerShell é simples. Como o PowerShell é orientado a objetos, é fácil criar objetos que contenham os dados que você deseja processar e, em seguida, passá-los para outros cmdlets que realizam as ações necessárias.

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

Russell Smith

Consultor de TI

Consultor de TI e autor especializado em tecnologias de gestão e segurança. Russell tem mais de 15 anos de experiência em TI, escreveu um livro sobre segurança do Windows e coautorou um texto para a série Microsoft’s Official Academic Course (MOAC).