Como Realizar Consultas LDAP no PowerShell

  1. Instalando o Módulo do Active Directory no PowerShell
  2. Use o Parâmetro Filter para Filtros do PowerShell
  3. Use o Parâmetro -LDAPFilter para Filtros LDAP no PowerShell
Como Realizar Consultas LDAP no PowerShell

Um dos desafios mais comuns ao consultar o Active Directory com PowerShell é como construir a sintaxe de filtro adequadamente.

Infelizmente, os parâmetros Filter e LDAP Filter em todos os cmdlets do módulo Active Directory do PowerShell são uma caixa preta para muitos.

Este artigo aprofundará a compreensão de como usar filtros do Active Directory e filtros LDAP.

Instalando o Módulo do Active Directory no PowerShell

Existem alguns pré-requisitos necessários antes de prosseguir.

  • Módulo Active Directory do PowerShell instalado.
  • Computador aderido ao domínio.
  • Conectar-se e autenticar com sucesso em um controlador de domínio do Active Directory.

Normalmente, executar o comando Install-Module deve buscar o pacote de um CDN remoto e instalá-lo em seu computador. No entanto, com o Módulo do Active Directory, devemos estabelecer um pacote pré-requisito para ter sucesso.

Precisamos instalar o pacote pré-requisito que é o RSAT ou Remote Server Administration Tools.

Você pode executar os scripts do PowerShell abaixo para instalar o RSAT em seu computador ou servidor.

Instalando RSAT para Windows 10:

Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online

Instalando as Ferramentas de Administração de Servidor Remoto para Windows Server (Várias Versões de 2008 a 2016):

Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature

Instalar o recurso Ferramentas de Administração de Servidor Remoto em sua máquina também instalará o Módulo do Active Directory para Windows PowerShell.

Use o Parâmetro Filter para Filtros do PowerShell

Os filtros do PowerShell usam a sintaxe padrão de expressão do Windows PowerShell. Este método é comumente referido como sintaxe de filtro de busca do Active Directory.

Esses filtros são usados com o parâmetro Filter.

Dentro do filtro, você comparará várias propriedades de objetos AD usando operadores. Por exemplo, o comando Get-ADUser retorna uma propriedade Name.

Portanto, se quisermos encontrar todos os usuários correspondendo a um nome específico, você usaria:

Get-ADUser -Filter "Name -eq 'John'"

Os nomes das propriedades podem ser o nome LDAP ou o nome canônico da propriedade retornada com o cmdlet do Active Directory.

Os valores das propriedades geralmente estão envoltos em aspas simples ou duplas. O único caractere curinga aceito é o asterisco *.

Podemos ver acima que aspas duplas cercam o filtro, enquanto John está envolto por aspas simples.

Use o Parâmetro -LDAPFilter para Filtros LDAP no PowerShell

O Protocolo Leve de Acesso a Diretórios, ou LDAP, é um protocolo neutro de fornecedor para acessar e modificar dados de diretório.

Podemos pensar em uma lista telefônica ao ouvir a palavra diretório, mas isso significa muito mais no contexto do Active Directory.

Tantos tipos diferentes de objetos são armazenados e tornados acessíveis pelo AD, com o protocolo LDAP funcionando para proteger esses dados. Como o AD pode manter muitos tipos diferentes de dados, aplicativos e usuários precisam consultar esse diretório facilmente.

O Active Directory implementa o LDAP, o Protocolo Leve de Acesso a Diretórios. Usar o parâmetro -LDAPFilter com os cmdlets permite que você use filtros LDAP, como aqueles criados no Active Directory Users and Computers.

A sintaxe para filtros de busca LDAP é definida no RFC número 4515. Cada regra de filtro é cercada por parênteses ().

Aqui estão alguns exemplos de uso de filtros de grupo do Active Directory como base para começar a criar os seus próprios.

  • Todos os grupos com um nome (CN) de Department.
`'(cn=Department)'
  • Todos os grupos com um nome de Department e uma descrição de Prod.
'(&(cn=Department)(description=Prod))'
  • Todos os grupos com um nome de Department ou Share Access.
'(|(cn=Professional Services Department)(cn=Share Access))'
  • Todos os grupos que não têm uma descrição de Prod. Inclui aqueles sem campo de descrição.
'(!(description=Prod))'
  • Todos os grupos com uma descrição de Prod, mas não com um nome de Department.
'(&(description=Prod)(!(cn=Department)))'
  • Todos os grupos cuja descrição é \\fileserver1\share.
'(description=\5c\5cfileserver1\5cshare)'
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn