Come eseguire query LDAP in PowerShell
- Installazione del modulo Active Directory in PowerShell
-
Usa il parametro
Filter
per i filtri PowerShell -
Usa il parametro
-LDAPFilter
per i filtri LDAP in PowerShell

Una delle sfide più comuni quando si interroga Active Directory con PowerShell è come costruire correttamente la sintassi del filtro.
Sfortunatamente, i parametri Filter e LDAP Filter su tutti i cmdlet del modulo Active Directory di PowerShell sono un mistero per molti.
Questo articolo esplorerà a fondo come utilizzare i filtri Active Directory e i filtri LDAP.
Installazione del modulo Active Directory in PowerShell
Ci sono alcuni prerequisiti necessari prima di procedere.
- Modulo Active Directory di PowerShell installato.
- Computer collegato al dominio.
- Connessione e autenticazione con successo a un controller di dominio Active Directory.
Di solito, eseguire il comando Install-Module
dovrebbe recuperare il pacchetto da un CDN remoto e installarlo sul computer. Tuttavia, con il modulo Active Directory
, dobbiamo stabilire un pacchetto prerequisito per avere successo.
Dobbiamo installare il pacchetto prerequisito che è il RSAT
o Remote Server Administration Tools
.
Puoi eseguire gli script PowerShell qui sotto per installare il RSAT
sul tuo computer o sul server.
Installazione di RSAT per Windows 10:
Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online
Installazione di Remote Server Administration Tools per Windows Server (Multiple Versions from 2008 to 2016):
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
L’installazione della funzione Remote Server Administration Tools sulla tua macchina installerà anche il modulo Active Directory per Windows PowerShell.
Usa il parametro Filter
per i filtri PowerShell
I filtri PowerShell utilizzano la sintassi di espressione standard di Windows PowerShell. Questo metodo è comunemente definito sintassi del filtro di ricerca di Active Directory.
Questi filtri sono utilizzati con il parametro Filter
.
All’interno del filtro, confronterai varie proprietà degli oggetti AD utilizzando operatori. Ad esempio, il comando Get-ADUser
restituisce una proprietà Name
.
Quindi, se desideriamo trovare tutti gli utenti che corrispondono a un nome specifico, utilizzerai:
Get-ADUser -Filter "Name -eq 'John'"
I nomi delle proprietà possono essere il nome LDAP o il nome canonico della proprietà restituita dal cmdlet di Active Directory.
I valori delle proprietà sono solitamente racchiusi tra virgolette singole o doppie. L’unico carattere jolly accettato è l’asterisco *
.
Possiamo vedere sopra che le virgolette doppie circondano il filtro, mentre John
è coperto da virgolette singole.
Usa il parametro -LDAPFilter
per i filtri LDAP in PowerShell
Lightweight Directory Access Protocol, o LDAP, è un protocollo neutrale rispetto ai fornitori per accedere e modificare i dati della directory.
Possiamo pensare a una rubrica quando sentiamo la parola directory, ma questo significa molto di più nel contesto di Active Directory.
Così tanti tipi di oggetti diversi sono memorizzati e resi accessibili da AD, con il protocollo LDAP che funge da sicurezza per quei dati. Poiché AD può mantenere molti diversi tipi di dati, le applicazioni e gli utenti devono interrogare facilmente quella directory.
Active Directory implementa LDAP, il Lightweight Directory Access Protocol. Utilizzare il parametro -LDAPFilter
con i cmdlet consente di utilizzare filtri LDAP, come quelli creati in Active Directory Users and Computers.
La sintassi per i filtri di ricerca LDAP è definita nel numero RFC 4515. Ogni regola di filtro è racchiusa da parentesi ()
.
Ecco alcuni esempi di utilizzo dei filtri di gruppo di Active Directory come base per iniziare a creare i propri.
- Tutti i gruppi con un nome (CN) di
Department
.
`'(cn=Department)'
- Tutti i gruppi con un nome di
Department
e una descrizione diProd
.
'(&(cn=Department)(description=Prod))'
- Tutti i gruppi con un nome di
Department
oShare Access
.
'(|(cn=Professional Services Department)(cn=Share Access))'
- Tutti i gruppi che non hanno una descrizione di
Prod
. Include quelli senza campo di descrizione.
'(!(description=Prod))'
- Tutti i gruppi con una descrizione di
Prod
ma non con un nome diDepartment
.
'(&(description=Prod)(!(cn=Department)))'
- Tutti i gruppi la cui descrizione è
\\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