Comment exécuter des requêtes LDAP dans PowerShell
- Installation du module Active Directory dans PowerShell
-
Utiliser le paramètre
Filter
pour les filtres PowerShell -
Utiliser le paramètre
-LDAPFilter
pour les filtres LDAP dans PowerShell

L’un des défis les plus courants lors de la requête d’Active Directory avec PowerShell est de savoir comment construire correctement la syntaxe des filtres.
Malheureusement, les paramètres Filter et LDAP Filter sur tous les cmdlets du module Active Directory PowerShell sont une boîte noire pour beaucoup.
Cet article plongera profondément dans la compréhension de l’utilisation des filtres Active Directory et des filtres LDAP.
Installation du module Active Directory dans PowerShell
Il y a quelques prérequis nécessaires avant de procéder.
- Module Active Directory de PowerShell installé.
- Ordinateur joint à un domaine.
- Connexion et authentification réussies auprès d’un contrôleur de domaine Active Directory.
En général, l’exécution de la commande Install-Module
devrait récupérer le package d’un CDN distant et l’installer sur votre ordinateur. Cependant, avec le module Active Directory
, nous devons établir un package prérequis pour réussir.
Nous devons installer le package prérequis qui est le RSAT
ou Outils d'administration de serveur à distance
.
Vous pouvez exécuter les scripts PowerShell ci-dessous pour installer le RSAT
sur votre ordinateur ou votre serveur.
Installation de RSAT pour Windows 10 :
Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online
Installation des Outils d’administration de serveur à distance pour Windows Server (Multiples versions de 2008 à 2016) :
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
L’installation de la fonctionnalité Outils d’administration de serveur à distance sur votre machine installera également le module Active Directory pour Windows PowerShell.
Utiliser le paramètre Filter
pour les filtres PowerShell
Les filtres PowerShell utilisent la syntaxe d’expression standard de Windows PowerShell. Cette méthode est couramment appelée syntaxe du filtre de recherche Active Directory.
Ces filtres sont utilisés avec le paramètre Filter
.
À l’intérieur du filtre, vous comparerez diverses propriétés des objets AD en utilisant des opérateurs. Par exemple, la commande Get-ADUser
renvoie une propriété Name
.
Ainsi, si nous souhaitons trouver tous les utilisateurs correspondant à un nom spécifique, vous utiliseriez :
Get-ADUser -Filter "Name -eq 'John'"
Les noms de propriétés peuvent être le nom LDAP ou le nom canonique de la propriété renvoyée avec le cmdlet Active Directory.
Les valeurs de propriété sont généralement entourées de guillemets simples ou doubles. Le seul caractère générique accepté est l’astérisque *
.
Nous pouvons voir ci-dessus que des guillemets doubles entourent le filtre, mais que John
est couvert de guillemets simples.
Utiliser le paramètre -LDAPFilter
pour les filtres LDAP dans PowerShell
Le protocole d’accès au répertoire léger, ou LDAP, est un protocole neutre vis-à-vis des fournisseurs pour accéder et modifier des données de répertoire.
Nous pouvons penser à un annuaire téléphonique en entendant le mot répertoire, mais cela signifie bien plus dans le contexte d’Active Directory.
De nombreux types d’objets différents sont stockés et rendus accessibles par AD, le protocole LDAP fonctionnant pour sécuriser ces données. Comme AD peut conserver de nombreux types de données différents, les applications et les utilisateurs doivent pouvoir interroger facilement ce répertoire.
Active Directory implémente LDAP, le protocole d’accès au répertoire léger. L’utilisation du paramètre -LDAPFilter
avec les cmdlets vous permet d’utiliser des filtres LDAP, tels que ceux créés dans Active Directory Users and Computers.
La syntaxe des filtres de recherche LDAP est définie dans le RFC numéro 4515. Chaque règle de filtre est entourée de parenthèses ()
.
Voici quelques exemples d’utilisation de filtres de groupe Active Directory comme base pour commencer à créer les vôtres.
- Tous les groupes avec un nom (CN) de
Department
.
`'(cn=Department)'
- Tous les groupes avec un nom de
Department
et une description deProd
.
'(&(cn=Department)(description=Prod))'
- Tous les groupes avec un nom de
Department
ouShare Access
.
'(|(cn=Professional Services Department)(cn=Share Access))'
- Tous les groupes n’ont pas de description de
Prod
. Inclut ceux sans champ de description.
'(!(description=Prod))'
- Tous les groupes avec une description de
Prod
mais pas avec un nom deDepartment
.
'(&(description=Prod)(!(cn=Department)))'
- Tous les groupes dont la description est
\\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