Como Realizar Consultas LDAP no PowerShell
- Instalando o Módulo do Active Directory no PowerShell
-
Use o Parâmetro
Filter
para Filtros do PowerShell -
Use o Parâmetro
-LDAPFilter
para Filtros 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 deProd
.
'(&(cn=Department)(description=Prod))'
- Todos os grupos com um nome de
Department
ouShare 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 deDepartment
.
'(&(description=Prod)(!(cn=Department)))'
- Todos os grupos cuja descrição é
\\fileserver1\share
.
'(description=\5c\5cfileserver1\5cshare)'
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn