Como criar, excluir, renomear, desativar e ingressar computadores no AD usando PowerShell
Jul 10, 2018
Antes de um usuário poder fazer login em um computador e acessar recursos da rede e baseados em domínio, esse computador deve ser membro do ambiente Active Directory. Neste guia, você descobrirá como automatizar tarefas diárias relacionadas a contas de computador, como criar, renomear e remover contas facilmente.
No total, você aprenderá a usar PowerShell para realizar as seguintes tarefas de gerenciamento de contas de computador:
- Junte um Computador a um Domínio
- Junte vários computadores a um domínio
- Remover um Computador de um Domínio com PowerShell
- Criar um Objeto de Computador no AD
- Criar Contas de Computador a partir de um Arquivo CSV
- Excluir um Computador do AD
- Excluir Contas de Computador Usando uma Lista
- Remova contas de computador obsoletas no Active Directory com PowerShell
- Renomear um Computador
- Renomeie um Computador e Junte-o a um Domínio
- Desativar uma conta de computador no AD
- Desativar Contas de Computador usando uma Lista
- Redefinir uma conta de computador AD
O PowerShell ISE é a melhor ferramenta para trabalhar com scripts PowerShell. Inicie a ferramenta PowerShell ISE com privilégios de administrador pressionando “Windows+R” e digitando “runas /profile /user:Administrator PowerShell_ISE” na janela Executar. (Alternativamente, você pode clicar com o botão direito no ícone do PowerShell ISE e escolher a opção “Executar como administrador”.) Digite a senha do administrador quando solicitado.
Antes de poder trabalhar com o AD e seus objetos, você precisa importar o módulo Active Directory para o Windows PowerShell. No Microsoft Windows Server 2008 R2, você precisa habilitar este módulo executando o seguinte comando:
Import-Module ActiveDirectory
No Microsoft Windows Server 2012 e versões posteriores, este módulo é ativado por padrão.
Junte um Computador a um Domínio
A tarefa mais comum é adicionar um computador a um controlador de domínio. Para adicionar um PC a um domínio Active Directory, execute o seguinte script PowerShell localmente:
$dc = "ENTERPRISE" # Specify the domain to join.
$pw = "Password123" | ConvertTo-SecureString -asPlainText –Force # Specify the password for the domain admin.
$usr = "$dcT.Simpson" # Specify the domain admin account.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -DomainName $dc -Credential $creds -restart -force -verbose # Note that the computer will be restarted automatically.
O computador será reiniciado e, em seguida, ingressará no domínio; ele será adicionado ao contêiner padrão.
Para adicionar um computador a um DC remotamente, você precisa aprimorar este script desta forma:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF" # Specify the computer that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Verbose -Restart -Force
A variável $pc e o parâmetro –LocalCredential são utilizados para autenticar o computador no domínio. Observe que, para usar este método, você deve desativar o firewall no computador local.
Junte Vários Computadores a um Domínio
Você pode adicionar mais de um computador ao domínio especificando-os na linha de comando como uma lista delimitada por vírgulas ou importando seus nomes a partir de um arquivo de texto.
Eis como especificar os computadores em uma lista delimitada por vírgulas:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "WKS034, WKS052, WKS057" # Specify the computers that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
E aqui está como usar um arquivo de texto com a lista de computadores que devem ser integrados:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = Get-Content -Path C:Computers.txt # Specify the path to the computers list.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Remover um Computador de um Domínio com PowerShell
Para remover um computador de um domínio remotamente, use o cmdlet Remove-Computer. Aqui, estamos removendo um computador de um domínio, então não são necessárias credenciais locais e podemos ignorar o parâmetro ?LocalCredential:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF"
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Remove-Computer -ComputerName $pc -Credential $creds –Verbose –Restart –Force
Para remover múltiplos computadores utilizando uma lista em um arquivo TXT, use o script acima para adicionar computadores a um DC, substituindo o cmdlet Add-Computer pelo Remove-Computer. Observe que você ainda precisará das credenciais de administrador do domínio para completar essa operação de desassociação.
Criar um Objeto de Computador no AD
Para criar um objeto de computador, utilize o cmdlet New-ADComputer. Por exemplo, execute os seguintes parâmetros do cmdlet para criar um objeto de computador com “WKS932” como seu nome e o valor padrão do caminho LDAP:
New-ADComputer –Name “WKS932” –SamAccountName “WKS932”
Criar contas de computador a partir de um arquivo CSV
Se você tem uma lista de computadores que devem ser importados para o Active Directory, salve a lista em um arquivo CSV com o cabeçalho “computer” e a lista de nomes de computadores na coluna abaixo dele. Execute o seguinte script PowerShell no seu controlador de domínio para adicionar computadores a partir do arquivo CSV, certificando-se de que as variáveis “Path” e “File” estejam configuradas corretamente:
$File="C:scriptsComputers.csv" # Specify the import CSV position.
$Path="OU=Devices,DC=enterprise,DC=com" # Specify the path to the OU.
Import-Csv -Path $File | ForEach-Object { New-ADComputer -Name $_.Computer -Path $Path -Enabled $True}
Excluir um Computador do AD
Para excluir uma conta de computador do AD, use o cmdlet Remove-ADObject. O parâmetro -Identity especifica qual computador do Active Directory remover. Você pode especificar um computador pelo seu nome distinto, GUID, identificador de segurança (SID) ou nome de conta do Gerenciador de Contas de Segurança (SAM).
Remove-ADObject -Identity "WKS932"
Será solicitado que confirme a exclusão.
Excluir Contas de Computador Usando uma Lista
Se você tem um arquivo de texto com uma lista de computadores antigos, pode simplificar a tarefa de removê-los usando o PowerShell. O seguinte script lerá os nomes dos computadores de um arquivo TXT e excluirá as contas correspondentes por meio de uma sequência de comandos, ou pipeline:
Get-Content C:scriptscomputersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive
Solicite um Teste Gratuito do Netwrix Directory Manager para um Melhor Gerenciamento de Grupos
Remova contas de computador obsoletas do Active Directory com PowerShell
Contas inativas no Active Directory podem ser comprometidas, levando a incidentes de segurança, por isso é crítico ficar atento a elas. Este script PowerShell irá consultar o Active Directory e retornar todos os computadores que não tiveram login nos últimos 30 dias; você pode facilmente alterar esse valor padrão no script. Ele também removerá essas contas para manter seu AD limpo.
$stale = (Get-Date).AddDays(-30) # means 30 days since last logon, can be changed to any number.
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | FT Name,lastLogonDate
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | Remove-ADComputer
Existe um computador, FS1, que não foi acessado por mais de 30 dias. O sistema solicitará confirmação antes de excluí-lo do domínio:
Se você deseja desativar, em vez de excluir, as contas de computador inativas, substitua o cmdlet Remove-ADComputer por Set-ADComputer e o parâmetro e valor -Enabled $false.
Renomear um Computador
Para alterar o nome de um computador, utilize o cmdlet Rename-Computer. Observe que o computador deve estar online e conectado ao Active Directory.
Rename-Computer –ComputerName "FS1" -NewName "FS2"
Se você quiser executar este script localmente, ele será assim:
Rename-Computer -NewName "newname" -DomainCredential "DomainAdministrator"
Renomeie um Computador e Junte-o a um Domínio
Você pode melhorar o script de renomeação ao juntar o computador ao domínio e colocá-lo na OU especificada simultaneamente. O script deve ser executado na máquina alvo, não no controlador de domínio.
$NewComputerName = "Server3" # Specify the new computer name.
$DC = "contoso.com" # Specify the domain to join.
$Path = "OU=TestOU,DC=contoso,DC=com" # Specify the path to the OU where to put the computer account in the domain.
Add-Computer -DomainName $DC -OUPath $Path -NewName $NewComputerName –Restart –Force
O script solicitará as credenciais de uma conta que tenha permissões para adicionar computadores ao domínio, e então o computador será renomeado, reiniciado e adicionado ao domínio.
Desativar uma conta de computador no AD
Utilize o cmdlet Disable-ADAccount para desativar contas de usuário, computador e serviço do Active Directory. Se você especificar um nome de conta de computador, lembre-se de acrescentar um cifrão ($) ao final do nome; caso contrário, você receberá um erro após a execução do script.
Disable-ADAccount -Identity fs1$
Desativar Contas de Computador usando uma Lista
Você também pode desativar contas de computador em massa usando uma lista em um arquivo de texto:
$Pclist = Get-Content C:scriptsComputer.txt # Specify the path to the computers list.
Foreach($pc in $Pclist)
{
Disable-ADAccount -Identity "$pc"
Get-ADComputer -Identity "$pc" | Move-ADObject -TargetPath “OU=Disabled Computers,DC=enterprise,DC=com”
}
Redefinir uma conta de computador AD
Como uma conta de usuário, uma conta de computador interage com o Active Directory usando uma senha. Mas para contas de computador, uma mudança de senha é iniciada a cada 30 dias por padrão e a senha é isenta da password policy do domínio. As mudanças de senha são iniciadas pelo cliente (computador), não pelo AD.
As credenciais do computador geralmente são desconhecidas pelo usuário porque são definidas aleatoriamente pelo computador. Mas você pode definir sua própria senha; aqui está um script PowerShell para fazer isso:
$pc = read-host –Prompt “Input computer name to reset“ # Specify the computer name.
$pw = read-host –Prompt “Input random characters for temp password“ –AsSecureString # Specify the password.
Get-ADComputer $pc | Set-ADAccountPassword –NewPassword:$pw -Reset:$true
Conclusão
Agora você aprendeu como gerenciar contas de computador do Active Directory com PowerShell. Você pode aprimorar todos esses scripts por conta própria para adaptá-los aos seus propósitos.
Lembre-se de que é crucial acompanhar de perto todas as alterações nas contas de computador, para que você possa identificar rapidamente quaisquer modificações indesejadas e responder adequadamente.
Melhores práticas de gerenciamento de grupos do Active Directory
Melhores práticas de gerenciamento de grupos do Active DirectoryCompartilhar em
Saiba Mais
Sobre o autor
Jeff Melnick
Diretor de Engenharia de Sistemas
Jeff é um ex-Diretor de Engenharia de Soluções Globais na Netwrix. Ele é um blogueiro, palestrante e apresentador da Netwrix há muito tempo. No blog da Netwrix, Jeff compartilha lifehacks, dicas e truques que podem melhorar drasticamente sua experiência em administração de sistemas.
Saiba mais sobre este assunto
Gerenciamento de configuração para controle seguro de endpoint
Leis de Privacidade de Dados por Estado: Abordagens Diferentes para a Proteção da Privacidade
Exemplo de Análise de Risco: Como Avaliar Riscos
O Triângulo da CIA e Sua Aplicação no Mundo Real
O que é Gerenciamento de Registros Eletrônicos?