Come eseguire query LDAP in PowerShell

  1. Installazione del modulo Active Directory in PowerShell
  2. Usa il parametro Filter per i filtri PowerShell
  3. Usa il parametro -LDAPFilter per i filtri LDAP in PowerShell
Come eseguire query 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 di Prod.
'(&(cn=Department)(description=Prod))'
  • Tutti i gruppi con un nome di Department o Share 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 di Department.
'(&(description=Prod)(!(cn=Department)))'
  • Tutti i gruppi la cui descrizione è \\fileserver1\share.
'(description=\5c\5cfileserver1\5cshare)'
Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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