Como adicionar e remover grupos AD e objetos nos grupos com PowerShell
Jun 19, 2018
A Microsoft Active Directory serve como um ponto centralizado para administração, autorização e autenticação. No AD, o acesso aos recursos da rede é concedido a principais de segurança, como contas de usuário e contas de computador, e essas permissões podem mudar ao longo do tempo. Para simplificar a gestão de acesso e melhorar a segurança, empresas de médio e grande porte frequentemente utilizam Active Directory security groups, que podem conter contas de usuário, contas de computador e outros grupos. Eles também costumam usar grupos de distribuição para gerenciar listas de distribuição de e-mail. Tanto os grupos de segurança quanto os de distribuição possuem identificadores de segurança únicos (SIDs) e identificadores globais únicos (GUIDs).
Conteúdo relacionado selecionado:
O snap-in ADUC do MMC é ótimo para gerenciar ambos os tipos de grupos, mas PowerShell é uma maneira muito mais eficiente de gerenciá-los em massa.
Se você ainda não está familiarizado com grupos AD e gerenciamento de grupos, por favor leia o guia Active Directory Group Management Best Practice antes de prosseguir.
Além disso, tenha em mente que, para usar esses scripts PowerShell, você deve importar o módulo para interagir com o AD — o Active Directory Module for Microsoft Windows PowerShell. Este módulo foi introduzido no Windows Server 2008 R2 e está habilitado por padrão no Windows Server 2012 e posteriores. Você pode obter a lista completa de cmdlets do módulo AD executando o seguinte comando:
Get-Command -Module ActiveDirectory
A lista completa contém 147 cmdlets; no entanto, apenas estes onze estão relacionados a grupos do Active Directory:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
Criando um Grupo do Active Directory com PowerShell
Para criar um grupo AD, utilize o cmdlet New-ADGroup. Você pode obter a sintaxe dele executando o seguinte comando:
Get-Command New-ADGroup –Syntax
A maneira mais fácil de criar um grupo é executar este pequeno script:
New-ADGroup "Group Name"
O sistema solicitará que você especifique o parâmetro “GroupScope” e, em seguida, criará um novo grupo. No entanto, este grupo terá valores padrão, como:
- Será criado no contêiner LDAP padrão chamado “Users”.
- Terá o tipo de grupo “Security”.
- Os campos de membros, membro de, descrição, e-mail e notas estarão todos em branco.
Vamos imaginar que queremos criar um grupo de segurança chamado “Quality” no nosso AD DC. Vamos usar os seguintes parâmetros: Ele deve estar na OU “Production” (-Path), deve ser um grupo de segurança (-GroupCategory), e deve ser global (-GroupScope).
New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose
Se você deseja criar um grupo de distribuição universal, basta alterar o parâmetro –GroupCategory para “Distribution” e o parâmetro –GroupScope para “Universal”. Você também pode alterar o caminho LDAP modificando o parâmetro –Path.
Excluindo um Grupo do Active Directory com PowerShell
Para deletar um grupo AD, use o cmdlet Remove-ADGroup. O script mais simples para isso será assim:
Remove-ADGroup -Identity Quality
Será solicitado que confirme a exclusão do grupo.
Adicionando Usuários e Computadores a um Grupo com PowerShell
Você pode adicionar usuários a um grupo AD com o cmdlet Add-AdGroupMember. Por exemplo, se você precisasse adicionar dois usuários, B.Jackson e E.Franklin, ao grupo “Quality”, aqui está como o script ficaria:
Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin
Depois de adicionar usuários a um grupo de segurança, você pode executar o script abaixo para verificar se eles estão listados como membros:
Get-ADGroupMember -Identity Quality
Se você precisa adicionar usuários a outro grupo de segurança ou distribuição, como “Domain Admins”, especifique “Domain Admins” como o valor para o parâmetro –Identity. Se você precisa que um grupo seja membro de outro, especifique um nome de grupo como o valor para o parâmetro –Members. O mesmo princípio se aplica a contas de computador, mas você precisará adicionar um cifrão ($) ao final do nome da conta do computador. Por exemplo, para adicionar o computador “WKS043” a um grupo, especifique “WKS043$” como o valor para o parâmetro –Member:
Add-AdGroupMember -Identity Quality -Members WKS043$
Conteúdo relacionado selecionado:
Adicionando um Usuário a Vários Grupos
Para adicionar um usuário a vários grupos de uma só vez, execute o seguinte script.
"Managers","Quality" | Add-ADGroupMember -Members `
(Read-Host -Prompt "Enter User Name")
Adicionando usuários a um grupo a partir de um arquivo CSV
Se você deseja adicionar um grande número de usuários a um grupo, pode especificá-los em um arquivo CSV e depois importar esse arquivo. Observe que a lista de nomes de usuário no arquivo CSV deve conter os SamAccountNames na coluna “usuários”.
Para adicionar usuários a um grupo a partir de um arquivo CSV, execute o seguinte script PowerShell:
Import-CSV C:scriptsusers.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}
Copiando usuários de um grupo para outro
Se você deseja copiar todos os membros de um grupo para outro grupo, execute o seguinte script:
Get-ADGroupMember “Quality” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “QualityControl” -Members $_}
Removendo usuários ou computadores de um grupo
Para remover um usuário de um grupo, utilize o cmdlet Remove-ADGroupMember:
Remove-ADGroupMember -Identity Quality -Members J.Robinson
Para remover uma conta de computador de um grupo, especifique o nome do computador com um cifrão ($) no final para o valor do parâmetro -Members.
Removendo múltiplas contas de usuário de um grupo
Uma maneira fácil de remover vários usuários de um grupo AD é criar um arquivo CSV com a lista de nomes de usuário e depois remover esses usuários do objeto do grupo usando este script:
Import-CSV C:scriptsusers.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}
Removendo um usuário de todos os grupos
Para remover um usuário de todos os grupos, execute este script:
Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object {
$_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false
}
Observe que o usuário perderá a associação a todos os grupos, exceto “Domain Users”, que pode ser removido manualmente se necessário.
Relatórios sobre Grupos do Active Directory
Agora que sabemos como realizar muitas tarefas comuns de gerenciamento do Active Directory relacionadas a grupos usando PowerShell, vamos ver como relatar quais grupos existem no AD:
Para listar todos os grupos no AD, utilize o script abaixo:
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory
Claro, você também vai querer revisar os membros de grupos AD e as mudanças de membros de grupos AD. Aqui estão os links para instruções de como realizar essas tarefas mais complexas:
- Como monitorar alterações na associação de grupos do Active Directory
- Como obter relatórios de pertença a grupos de usuários do AD
- Como exportar membros de um grupo AD específico
- Gerenciando OUs e Movendo Seus Objetos com PowerShell
Conclusão
Agora que você aprendeu a gerenciar grupos e a associação de grupos no Active Directory usando scripts do PowerShell, tente realizar algumas das tarefas de gerenciamento de grupo por conta própria. No entanto, tenha cuidado e não se esqueça de ativar o recurso Lixeira do Active Directory para que você possa facilmente reverter suas alterações se algo der errado. Lembre-se, o snap-in ADUC MMC é ótimo para gerenciar grupos e associação de grupos, mas o PowerShell é muito melhor para gerenciar grupos em massa.
Compartilhar 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
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?
Análise de Risco Quantitativa: Expectativa de Perda Anual