Remover Todas as Versões do Java: Um Guia de Script do PowerShell

Se você precisa encontrar usuários do Active Directory (AD) em seu domínio, o comando Get-Aduser do Powershell está aqui. Contas de usuário são atribuídas a funcionários, contas de serviço e outros recursos. Antes que você perceba, as contas de usuário do AD estão se tornando difíceis de gerenciar.

Usando o cmdlet Get-AdUser do PowerShell, você pode obter usuários do AD de várias maneiras diferentes. Neste artigo, você vai aprender algumas dessas maneiras e como usar este útil cmdlet.

Gerencie e Relate o Active Directory, Exchange e Microsoft 365 com o ADManager Plus da ManageEngine. Baixe uma versão de avaliação gratuita!

Pré-requisitos

Para usar os exemplos do cmdlet Get-AdUser abordados neste artigo, certifique-se de ter o seguinte:

  • Em um PC com Windows integrado a um domínio AD
  • Conectado como uma conta de usuário do AD
  • Tenha o módulo PowerShell Active Directory instalado

Encontrando uma Conta de Usuário com Identidade

O cmdlet Get-AdUser tem um único propósito. Ele existe para fornecer o maior número possível de opções para encontrar usuários de domínio. Se você já conhece o nome de usuário a ser procurado, pode usar o parâmetro Identity.

O parâmetro Identity permite que você forneça um dos quatro identificadores diferentes.

  • distinguishedName (DN)
  • samAccountName
  • GUID
  • SID

Abaixo, você pode ver alguns exemplos de como encontrar uma conta de usuário usando vários identificadores. Observe que ele retorna um conjunto de atributos do AD para cada conta de usuário.

PS> Get-ADUser -Identity abertram


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'S-1-5-21-4117810001-3432493942-696130396-3142'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local

O atributo mais comum a ser usado para o parâmetro Identity será o atributo samAccountName.

O Filtro do Get-ADUser

Se você precisa encontrar mais de um usuário de domínio ou não conhece um identificador, use um filtro. Para fazer isso, você tem alguns parâmetros à disposição chamados Filter e LDAPFilter.

Cada parâmetro de filtro permite que o usuário forneça uma declaração condicional. Quando essa condição é atendida, o Get-AdUser retornará contas de usuário que correspondem a essa condição.

O parâmetro mais comum para filtrar usuários é o Filter. O parâmetro Filter permite que você crie condições que são semelhantes à sintaxe de filtro do comando PowerShell Where-Object.

O parâmetro Filter utiliza uma linguagem chamada sintaxe da linguagem de expressão do PowerShell. Essa linguagem é um pouco parecida com o que você usaria com Where-Object, mas não exatamente igual. Para uma análise de como usar esse filtro, confira este artigo sobre filtros Active Directory e LDAP.

Abaixo está um exemplo de uso do parâmetro Filter. Este exemplo fornece um atributo do AD (givenName neste exemplo) e define uma condição. O filtro só permite que os usuários sejam retornados se tiverem um givenName igual a Adam.

PS> Get-AdUser -Filter "givenName -eq 'Adam'"


DistinguishedName : CN=ADBertram,OU=Accounting,DC=mylab,DC=local
Enabled           : False
GivenName         : Adam
Name              : ADBertram
ObjectClass       : user
ObjectGUID        : 8ec5e2a8-1fda-42cb-9406-b1e6356dd457
SamAccountName    : ADBertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3163
Surname           : Bertram
UserPrincipalName : ADBertram

DistinguishedName : CN=Hughes\, Adam,CN=Users,DC=mylab,DC=local
Enabled           : True
GivenName         : Adam
Name              : Hughes, Adam
ObjectClass       : user
ObjectGUID        : 96778db3-3dbd-4b83-9183-db111caa2791
SamAccountName    : ahughes
SID               : S-1-5-21-4117810001-3432493942-696130396-38201
Surname           : Hughes
UserPrincipalName :

A outra opção de filtragem é LDAPFilter, que não será abordada neste artigo. Para obter mais informações sobre LDAPFilter e sua sintaxe, confira este artigo sobre Active Directory e filtros LDAP.

Usando Get-AdUser por OU

Ao fornecer uma identidade ou filtro, o PowerShell retorna todos os usuários no domínio que correspondem aos critérios. Isso não limita por OU. Você precisará configurar um “filtro” para Get-AdUser para filtrar por OU usando Get-Aduser -SearchBase <OU>.

O uso do parâmetro SearchBase permite que você comece a procurar uma conta de usuário em uma OU específica. O parâmetro SearchBase aceita o nome distintivo (DN) de uma OU.

Por exemplo, você poderia encontrar todos os usuários na OU MyUsers conforme mostrado abaixo. O uso do Filter de * significa corresponder a todas as contas de usuário.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local'

Provavelmente você deseja encontrar contas de usuário em uma única Unidade Organizacional (OU) e excluir quaisquer OUs filhas. Nesse caso, você pode usar os parâmetros SearchBase e SearchScope. O parâmetro SearchScope define quão profundo na hierarquia da OU você deseja pesquisar.

Por exemplo, se desejar encontrar todas as contas de usuário em uma OU e todas as OUs filhas, use 1 para o valor de SearchScope. Se desejar pesquisar através de todas as OUs filhas e netos, use 2.

Abaixo está um exemplo de pesquisa de contas de usuário na OU MyUsers e todas as OUs filhas abaixo dela.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local' -SearchScope 2

Usando Credenciais Alternativas

Por padrão, Get-AdUser será executado no contexto do usuário conectado. Mas você também pode fornecer credenciais alternativas usando o parâmetro Credential.

Para autenticar com credenciais alternativas, crie um objeto PSCredential usando Get-Credential como abaixo:

PS> $cred = Get-Credential
PS> Get-AdUser -Filter * -Credential $cred

Para obter mais informações sobre credenciais, confira Usando o cmdlet PowerShell Get-Credential e tudo sobre credenciais.

O Parâmetro de Propriedades do Get-AdUser do PowerShell

Ao executar Get-AdUser, você verá imediatamente que apenas algumas atribuições são retornadas. Você também verá que mesmo quando a saída é redirecionada para Select-Object -Property *, nem todas as atribuições são retornadas.

Para usar o PowerShell para obter atributos de usuário do AD, use o parâmetro Property. Este parâmetro aceita um ou mais atributos delimitados por vírgulas para mostrar na saída.

Abaixo você verá um exemplo de uso do Get-AdUser para encontrar todas as propriedades de todas as contas de usuário com um givenName de Adam. A saída está truncada, mas você verá outros atributos familiares como endereço de e-mail, propriedades de senha e mais aqui.

PS> Get-AdUser -Filter "givenName -eq 'Adam'" -Properties *


AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : mylab.local/Accounting/ADBertram
........

Gerencie e Relate o Active Directory, Exchange e o Microsoft 365 com o ManageEngine ADManager Plus. Baixe o teste gratuito!

Resumo

O cmdlet Get-ADUser é um comando útil para encontrar contas de usuário do AD, construir relatórios e muito mais. É uma ótima maneira de extrair usuários do AD de um domínio. Para uma explicação detalhada do Get-AdUser e todos os parâmetros, leia o conteúdo de ajuda executando Get-Help Get-AdUser.

Para muitos outros exemplos de como usar o Get-AdUser, confira o post do blog Active Directory Scripts Galore: Venha e Pegue!.

Source:
https://adamtheautomator.com/get-aduser/