0% ont trouvé ce document utile (0 vote)
9 vues20 pages

C53 - Introduction PowerShell - Active Directory

Ce document fournit des informations essentielles sur l'utilisation du module Active Directory dans PowerShell, incluant des cmdlets pour interagir avec les objets d'un domaine. Il décrit également les opérateurs du paramètre -Filter pour filtrer les objets Active Directory et fournit des exemples de commandes pour obtenir des informations sur les forêts, domaines, unités d'organisation, ordinateurs et utilisateurs. Enfin, il aborde des solutions pour des problèmes courants rencontrés lors de l'utilisation de ces cmdlets.

Transféré par

cepeter44
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues20 pages

C53 - Introduction PowerShell - Active Directory

Ce document fournit des informations essentielles sur l'utilisation du module Active Directory dans PowerShell, incluant des cmdlets pour interagir avec les objets d'un domaine. Il décrit également les opérateurs du paramètre -Filter pour filtrer les objets Active Directory et fournit des exemples de commandes pour obtenir des informations sur les forêts, domaines, unités d'organisation, ordinateurs et utilisateurs. Enfin, il aborde des solutions pour des problèmes courants rencontrés lors de l'utilisation de ces cmdlets.

Transféré par

cepeter44
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

1033108188.

docx
Automne 2025

Pour le cours, il n'est pas nécessaire de comprendre le contenu des annexes 1 et 2.

Le contenu de ce document est important pour les prochains cours.

Informations sur le module ActiveDirectory


Active Directory
[Link]

Le module ActiveDirectory contient 147 cmdlets.


(Get-Command -Module ActiveDirectory).Count

Utilisation de plusieurs GET-AD* et SET-AD*


Utiliser plusieurs cmdlets de PowerShell afin de se familiariser avec les objets d’un domaine Active Directory

 Utiliser plusieurs cmdlets GET du module ActiveDirectory


Get-ADForest, Get-ADDomain,
Get-ADOrganizationalUnit, Get-ADComputer, Get-ADUser, Get-ADGroup, Get-ADObject

 Utiliser plusieurs cmdlets SET du module ActiveDirectory


Set-ADDomain, Set-ADObject

 Utiliser le cmdlet Move-ADObject pour déplacer un objet de l'Active Directory

1 de 20
[Link]
Automne 2025

Les opérateurs du paramètre -Filter avec des objets de l'Active Directory


Commande pour afficher des informations sur le paramètre "-Filter" avec des objets de l'Active Directory.
Get-Help about_ActiveDirectory_Filter

Mahleureusement, depuis plusieurs années la commande ne fonctionne pas.

Le contenu de la commande about_ActiveDirectory_Filter est disponible sur le site


[Link]
about/about_activedirectory_filter?view=windowsserver2025-ps

Voici la liste des opérateurs du paramètre -Filter pour les objets de l'Active Directory.
Les opérateurs du paramètre -Filter
Description
pour les objets de l'Active Directory
-eq Égal à
-ne Pas égal à
-approx Approximativement égal à
-le Plus petit que ou égal à
-lt Plus petit que
-ge Plus grand que ou égal à
-gt Plus grand que
-and ET logique
-or OU logique
-not NON logique
-bor OU binaire
-band ET binaire
-recursivematch Le filtre est appliqué récursivement
Similaire à
-like
 supporte le caractère *
Pas similaire à
-notlike
 supporte le caractère *

2 de 20
[Link]
Automne 2025

Les opérateurs du paramètre -Filter pour les objets de l'Active Directory.

3 de 20
[Link]
Automne 2025

Obternir des informations sur la forêt


avec Get-ADForest
Get-ADForest
Trouvez la valeur des propriétés suivantes:
Nom de la propriété Valeur de la propriété
ForestMode Windows2016Forest
DomainNamingMaster [Link]
GlobalCatalogs {[Link]}
SchemaMaster [Link]

Obtenir des informations sur le domaine


avec Get-ADDomain
Get-ADDomain
Trouvez la valeur des propriétés suivantes:
Nom de la propriété Valeur de la propriété
DistinguishedName DC=FORMATION,DC=LOCAL
DNSRoot [Link]
DomainMode Windows2016Domain
Name FORMATION
Forest [Link]

La commande qui retourne SEULEMENT la valeur de la propriété DistinguishedName de votre domaine:


(Get-ADDomain).DistinguishedName

La commande qui retourne SEULEMENT la valeur de la propriété DNSRoot de votre domaine:


(Get-ADDomain).DNSRoot

La commande qui retourne SEULEMENT la valeur du SID (Security Identifier) d'un domaine Active Directory.
(Get-ADDomain).[Link]

Get-ADDefaultDomainPasswordPolicy
La commande affiche les propriétés sur la configuration des mots de passe au niveau du domaine.
Get-ADDefaultDomainPasswordPolicy

4 de 20
[Link]
Automne 2025

Empêcher un utilisateur de joindre un ordinateur au domaine


avec Set-ADDomain
Par défaut, un utilisateur authentifié qui n'est pas membre du groupe Administrateurs peut joindre 10 ordinateurs
au domaine.

Dans la console UOAD


 Afficher les attributs du domaine [Link] et sélectionner l'onglet "Éditeur d'attributs"
 Sélectionner l'attribut ms-DS-MachineAccountQuota
 La valeur par défaut de l'attribut ms-DS-MachineAccountQuota est 10

Pour empêcher un utilisateur authentifié de joindre des ordinateurs au domaine on doit modifier la valeur de
l'attribut ms-DS-MachineAccountQuota pour 0.

Par programmation PowerShell


Set-ADDomain -Identity ((Get-ADDomain).DistinguishedName) `
-Replace @{'ms-DS-MachineAccountQuota'=0}

5 de 20
[Link]
Automne 2025

Obtenir des informations sur les unités d'organisation d’un domaine


avec Get-ADOrganizationalUnit
La commande qui affiche les principales propriétés de l’unité d'organisation FORMATION
Get-ADOrganizationalUnit -Identity "OU=formation,DC=formation,DC=local"

La commande qui affiche toutes les propriétés de l’unité d'organisation FORMATION


Get-ADOrganizationalUnit -Identity "OU=formation,DC=formation,DC=local" `
-Properties *

La commande qui affiche les principales propriétés de toutes les unités d'organisation de votre domaine
Get-ADOrganizationalUnit -Filter *

La commande qui affiche toutes les propriétés de toutes les unités d'organisation de votre domaine
Get-ADOrganizationalUnit -Filter * `
-Properties *

La commande qui affiche les principales propriétés des unités d'organisation dont le nom contient "gestion"
Get-ADOrganizationalUnit -Filter {Name -like "*gestion*"}

La commande qui affiche les principales propriétés des unités d'organisation dont le nom commence par "inf"
Get-ADOrganizationalUnit -Filter {Name -like "inf*"}

La commande qui affiche les principales propriétés des unités d'organisation dont le nom
est similaire à "gestionnaire?"
Le paramètre -Filter ne fonctionne pas avec le caractère ? qui remplace un seul caractère.
et-ADOrganizationalUnit -Filter {Name -like "gestionnaire?"}

SOLUTION À CE PROBLÈME
On doit obligatoirement utiliser Where-Object qui s'exécute sur le résultat de la commande.
Get-ADOrganizationalUnit -Filter * | Where-Object { $[Link] -like "gestionnaire?" }

La commande qui affiche les propriétés "Name" et "DistinguishedName" de toutes les unités d'organisation de
votre domaine
Get-ADOrganizationalUnit -Filter * | Format-Table Name,DistinguishedName -Autosize

La commande qui affiche les propriétés "Name" et "Created" de toutes les unités d'organisation de votre domaine
Get-ADOrganizationalUnit -Filter * `
-Properties created | Format-Table Name,Created -Autosize

La commande qui affiche en ordre alphabétique la propriété CanonicalName de toutes les unités d'organisation
de votre domaine
Get-ADOrganizationalUnit -Filter * `
-Properties CanonicalName `
| Select-Object -Property CanonicalName `
| Sort-Object CanonicalName

6 de 20
[Link]
Automne 2025

Le paramètre -Filter et l’attribut DistinguishedName

Exemple 1
Trouver l’unité d’organisation dont le DistinguishedName est ou=formation,dc=formation,dc=local
# Commande PowerShell avec le paramètre -Identity
$OU = "ou=formation,dc=formation,dc=local"
Get-ADOrganizationalUnit -Identity $OU

Trouver l’unité d’organisation dont le DistinguishedName est ou=formation,dc=formation,dc=local


# Commande PowerShell avec le paramètre -Filter
$OU = "ou=formation,dc=formation,dc=local"
Get-ADOrganizationalUnit -Filter {DistinguishedName -eq $OU}

La commande avec le paramètre -Filter fonctionne parce qu’on vérifie avec -eq et que $OU ne contient
pas le caractère générique *

Exemple 2
Trouver la liste des unités d’organisation dont le DistinguishedName se termine par
ou=formation,dc=formation,dc=local
$OU = "*ou=formation,dc=formation,dc=local"
Get-ADOrganizationalUnit -Filter {DistinguishedName -like $OU}

La commande avec le paramètre -Filter ne fonctionne pas parce qu’on vérifie avec -like et que $OU
contient le caractère générique *

Vous ne pouvez pas utiliser de caractères génériques lors du filtrage basé sur le DistinguishedName.

SOLUTION À CE PROBLÈME
On doit obligatoirement utiliser Where-Object qui s'exécute sur le résultat de la commande.
$OU = "*ou=formation,dc=formation,dc=local"
Get-ADOrganizationalUnit -Filter * | `
Where-Object {$[Link] -like $OU}

7 de 20
[Link]
Automne 2025

Obtenir des informations sur les ordinateurs d’un domaine


avec Get-ADComputer
La commande qui affiche les principales propriétés de l'ordinateur SEVEUR2.
Get-ADComputer -Identity "SERVEUR2"

La commande qui affiche toutes les propriétés de l'ordinateur SERVEUR2.


Get-ADComputer -Identity "SERVEUR2" `
-Properties *

Chaque ordinateur a un mot de passe qui est géré par le contrôleur de domaine.
Le mot de passe est automatiquement modifié tous les 30 jours.
PasswordLastSet affiche la date à laquelle le mot de passe de l'ordinateur a été modifié.
Get-ADComputer -Identity SERVEUR2 `
-Properties PasswordLastSet

La commande qui affiche les principales propriétés des ordinateurs dont le nom commence par "SERVEUR"
Get-ADcomputer -Filter {Name -like "SERVEUR*"}

La commande qui affiche SEULEMENT le nom de tous les ordinateurs de votre domaine
(Get-ADComputer -Filter *).Name

La commande qui affiche les principales propriétés des ordinateurs dont le nom est similaire à "SERVEUR?"
Le paramètre -Filter ne fonctionne pas avec le caractère ? qui remplace un seul caractère.
Get-ADcomputer -Filter {Name -like "SERVEUR?"}

SOLUTION À CE PROBLÈME
On doit obligatoirement utiliser Where-Object qui s'exécute sur le résultat de la commande.
(Get-ADComputer -Filter * | Where-Object { $[Link] -like "SERVEUR?" }).Name

La commande qui affiche seulement six propriétés de l’ordinateur SERVEUR2


Get-ADComputer -Identity SERVEUR2 `
-Properties IPv4Address,OperatingSystem,OperatingSystemVersion | `
Format-List Name,DNSHostName,SamAccountName,
IPv4Address,OperatingSystem,OperatingSystemVersion

Name : SERVEUR2
DNSHostName : [Link]
SamAccountName : SERVEUR2$
IPv4Address : [Link]
OperatingSystem : Windows Server 2019 Datacenter
OperatingSystemVersion : 10.0 (17763)

Le SamAccountName d’un ordinateur de l’Active Directory se termine toujours par un $.

8 de 20
[Link]
Automne 2025

Voici une commande qui affiche plusieurs propriétés de tous les ordinateurs de votre domaine en triant deux
paramètres en ordre croissant et en triant un paramètre en ordre décroissant.
Get-ADComputer -Filter * `
-Properties * | `
Sort-Object -Property @{Expression = "Description"; Ascending = $true},
@{Expression = "OperatingSystem"; Ascending = $true},
@{Expression = "OperatingSystemVersion"; Descending = $true} | `
Format-Table Description,Name,OperatingSystem,OperatingSystemVersion,WhenChanged -AutoSize

Voici le code qui permet d'afficher le nom de l'utilisateur qui a joint un ordinateur à l'Active Directory.
Si l’utilisateur a une délégation pour créer des objets dans l'Active Directory ou est un membre du groupe
"Admins du domaine" alors mS-DS-CreatorSID est vide.

$nom = Get-ADComputer -Identity SERVEUR2 `


-Properties mS-DS-CreatorSID | `
Select-Object -Expandproperty mS-DS-CreatorSID | `
Select-Object -ExpandProperty Value | `
Foreach-Object {Get-ADUser -Filter {SID -eq $PSItem}}

if ([string]::IsNullOrEmpty($nom))
{
Write-Host "mS-DS-CreatorSID est vide" -ForegroundColor Yellow
}
else
{
Write-Host "mS-DS-CreatorSID correspond à $nom" -ForegroundColor Cyan
}

9 de 20
[Link]
Automne 2025

Obtenir des informations sur les utilisateurs d’un domaine


avec Get-ADUser
La commande qui affiche les principales propriétés de l’utilisateur dont le nom d’ouverture de session est EMP01
Get-ADuser -Identity "EMP01"

La commande qui affiche toutes les propriétés de l’utilisateur dont le nom d’ouverture de session est EMP01
Get-ADuser -Identity "EMP01" `
-Properties *

Le nom de l'utilisateur dont le SID se termine par 500 varie selon la langue.
 En français, le nom de l'utilisateur est "Administrateur".
 En anglais, le nom de l'utilisateur est "Administrator".
 En espagnol, le nom de l'utilisateur est "Administrador".
 …
$rep = Get-ADUser -Filter * | Where-Object { $[Link] -like "S-1-5-21-*-500" }
$[Link]

La commande qui affiche les principales propriétés des utilisateurs dont le nom de famille est Coutu.
Get-ADuser -Filter 'Surname -eq "Coutu"'

La commande qui affiche les principales propriétés des utilisateurs dont le nom d’ouverture de session débute par
"EMP".
Get-ADUser -Filter {SamAccountName -like "EMP*"}

La commande qui affiche les principales propriétés des utilisateurs dont le nom d’ouverture de session débute par
"Admin" ou par "T".
(Get-ADuser -Filter {SamAccountName -like "Admin*" -or SamAccountName -like "T*"}).Name

La commande qui affiche les principales propriétés des utilisateurs dont le nom d'ouverture de session est
similaire à "EMP3?"
Le paramètre -Filter ne fonctionne pas avec le caractère ? qui remplace un seul caractère.
Get-ADUser -Filter {SamAccountName -like "EMP3?"}

SOLUTION À CE PROBLÈME
On doit obligatoirement utiliser Where-Object qui s'exécute sur le résultat de la commande.
Get-ADUser -Filter * | Where-Object { $[Link] -like "EMP3?" }

La commande qui affiche les principales propriétés des utilisateurs qui sont dans l’unité d’organisation
"FORMATION" qui est directement sous le domaine "[Link]".
$sb= "OU=formation,DC=formation,DC=local"

Get-ADUser -Filter * -SearchBase $sb -SearchScope Subtree


ou
Get-ADUser -Filter * -SearchBase $sb
# Subtree est la valeur par défaut de SearchScope

10 de 20
[Link]
Automne 2025

Voici le code qui permet d’afficher les utilisateurs dont le nom débute par 0,1,2,3,4,5,6,7,8,9.
for ($i = 0; $i -le 9; $i++)
{
$nom = -join ($i,"*")
Get-ADUser -Filter {Name -like $nom}
}

Trouver les utilisateurs dans l'Active Directory qui ont une "adresse de messagerie" en utilisant -Filter.

$sb = (Get-ADDomain).DistinguishedName

Get-ADUser -SearchBase $sb -Filter {mail -like "*"} -Properties *


ou
Get-ADUser -SearchBase $sb -Filter * -Properties * | `
Where-Object {$[Link] -like "*"}

Trouver les utilisateurs dans l'Active Directory qui ont un "gestionnaire" en utilisant -Filter.

L'attribut "manager" contient le "DistinguishedName" du gestionnaire.


Vous ne pouvez pas utiliser de caractères génériques lors du filtrage basé sur le DistinguishedName.

SOLUTION À CE PROBLÈME
On doit obligatoirement utiliser Where-Object qui s'exécute sur le résultat de la commande.

$sb = (Get-ADDomain).DistinguishedName

Get-ADUser -SearchBase $sb -Filter * -Properties * | `


Where-Object {$[Link] -ne $null}

11 de 20
[Link]
Automne 2025

Obtenir des informations sur les groupes d’un domaine


avec Get-ADGroup
La commande qui affiche les principales propriétés du groupe Administrateurs
Get-ADGroup -Identity "Administrateurs"

La commande qui affiche toutes les propriétés du groupe Administrateurs


Get-ADGroup -Identity "Administrateurs" `
-Properties *

Le nom du groupe dont le SID se termine par 513 varie selon la langue
 En français le nom du groupe est "Utilisateurs du domaine"
 En anglais le nom du groupe est "Domain Users"
 …
$rep = Get-ADGroup -Filter * | Where-Object { $[Link] -like "S-1-5-21-*-513" }
$[Link]

La commande qui affiche les principales propriétés des groupes dont le nom commence par "Adm"
Get-ADGroup -Filter {Name -like "Adm*"}

La commande qui affiche SEULEMENT le nom des groupes dont le nom commence par "Adm".
(Get-ADGroup -Filter {Name -like "Adm*"}).Name

La commande qui affiche les principales propriétés des groupes dont le nom est similaire à "gr??"
Le paramètre -Filter ne fonctionne pas avec le caractère ? qui remplace un seul caractère.
Get-ADGroup -Filter {Name -like "gr??"}

SOLUTION À CE PROBLÈME
On doit obligatoirement utiliser Where-Object qui s'exécute sur le résultat de la commande.
Get-ADGroup -Filter * | Where-Object { $[Link] -like "gr??" }

12 de 20
[Link]
Automne 2025

Obtenir des informations sur des objets de l'Active Directory


avec Get-ADObject
Il est souvent plus avantageux d'utiliser Get-ADForest, Get-ADDomain, Get-ADOrganizationalUnit,
Get-ADComputer, Get-ADUser et Get-ADGroup.

Dans certaines situations, nous devons utiliser Get-ADObject.

Il n'est pas possible d'afficher le contenu de l'attribut ms-DS-MachineAccountQuota du domaine en


utilisant Get-ADDomain parce que les paramètres -Filter et -Properties n'existent pas.

Requête qui permet d'afficher le contenu de l'attribut ms-DS-MachineAccountQuota du domaine


Get-ADObject -Identity ((Get-ADDomain).DistinguishedName) `
-Properties ms-DS-MachineAccountQuota

Modifier des informations sur des objets de l'Active Directory


avec Set-ADObject
Il est souvent plus avantageux d'utiliser Set-ADForest, Set-ADDomain, Set-ADOrganizationalUnit,
Set-ADComputer, Set-ADUser et Set-ADGroup.

Dans certaines situations, nous devons utiliser Set-ADObject.

Il n'est pas possible de protéger les utilisateurs, les groupes et les ordinateurs contre une suppression
accidentelle en utilisant Get-ADComputer, Get-ADUser, Get-ADGroup.

Requête qui permet de protéger l'ordinateur SERVEUR2 d'une suppression accidentelle.


Get-ADComputer -Identity SERVEUR2 | Set-ADObject -ProtectedFromAccidentalDeletion:$true

Requête qui permet de protéger l'utilisateur TECH d'une suppression accidentelle.


Get-ADUser -Identity TECH | Set-ADObject -ProtectedFromAccidentalDeletion:$true

Requête qui permet de protéger le groupe grFormation d'une suppression accidentelle.


Get-ADGroup -Identity grFormation | Set-ADObject -ProtectedFromAccidentalDeletion:$true

Requête qui permet de trouver tous les objets du domaine dont le nom débute par "Adm"
$sb = "DC=formation,DC=local"

(Get-ADObject -SearchBase $sb -Filter {Name -like "Adm*"}) | `


Sort-Object ObjectClass | `
Format-Table ObjectClass,DistinguishedName -AutoSize

13 de 20
[Link]
Automne 2025

Déplacer des objets de l'Active Directory


avec Move-ADObject
Pour déplacer un objet de l'Active Directory, il faut utiliser Move-ADObject.

# Nous avons besoin du DistinguishedName de l'objet et


# du DistinguishedName du nouvel emplacement.
$ordi = "CN=S9,OU=WEB,OU=SERVEURS,OU=FORMATION,DC=FORMATION,DC=LOCAL"
$emplacement = "OU=SQL,OU=SERVEURS,OU=FORMATION,DC=FORMATION,DC=LOCAL"

Move-ADObject -Identity $ordi -TargetPath $emplacement

Le nom d'un utilisateur est unique dans l'Active Directory.


Le nom d'un groupe est unique dans l'Active Directory.
Le nom d'un ordinateur est unique dans l'Active Directory.

# Nous avons besoin du DistinguishedName du nouvel emplacement.


$emplacement = "OU=SQL,OU=SERVEURS,OU=FORMATION,DC=FORMATION,DC=LOCAL"

Get-ADComputer -Identity S9 | Move-ADObject -TargetPath $emplacement

Pour le déplacement d'une unité d'organisation, nous devons utiliser le DistinguishedName.


Le nom d'une unité d'organisation n'est pas unique dans l'Active Directory.

Le déplacement d'une unité d'organisation implique le déplacement de tous les objets qui sont dans l'unité
d'organisation qui sera déplacée.

# Nous avons besoin du DistinguishedName de l'unité d'organisation et


# du DistinguishedName du nouvel emplacement.
$OU = "OU=SRVTEST,DC=FORMATION,DC=LOCAL"
$emplacement = "OU=SERVEURS,OU=FORMATION,DC=FORMATION,DC=LOCAL"

Move-ADObject -Identity $OU -TargetPath $emplacement

14 de 20
[Link]
Automne 2025

Plusieurs cmdlets pour "ADAccount"


Set-ADAccountPassword

# Commande pour remplacer le mot de passe d'un utilisateur.


$mdp = ConvertTo-SecureString -String "AAAaaa111" -AsPlainText -Force
Set-ADAccountPassword -Identity ETU -NewPassword $mdp -Reset

# Commande pour forcer l'utilisateur à modifier son mot de passe à la prochaine ouverture de session.
Set-ADUser -Identity ETU -ChangePasswordAtLogon $true

Disable-ADAccount

Enable-ADAccount

Unlock-ADAccount

Clear-ADAccountExpiration

Set-ADAccountExpiration

Set-ADAccountControl
Pour modifier plusieurs propriétés des comptes utilisateurs ou ordinateurs.

Search-ADAccount

15 de 20
[Link]
Automne 2025

Exemples avec Search-ADAccount


# Trouver les comptes qui sont verrouillés
Search-ADAccount -LockedOut

# Trouver les comptes dont le mot de passe n'expire jamais


Search-ADAccount -PasswordNeverExpires

# Trouver les comptes utilisateurs qui sont inactifs depuis 90 jours 0 heure 0 minute et 0 seconde
Search-ADAccount -UserOnly -AccountInactive -TimeSpan 90.00:00:00

# Trouver les comptes utilisateurs qui sont inactifs depuis 90 jours


Search-ADAccount -UserOnly -AccountInactive -TimeSpan "90"

# Trouver les comptes utilisateurs qui sont inactifs depuis 12 heures


Search-ADAccount -UserOnly -AccountInactive -TimeSpan "12:00"

# Trouver les comptes utilisateurs qui sont désactivés et affiche plusieurs propriétés
Search-ADAccount -UsersOnly -AccountDisabled | `
Format-List -Property Name,LastLogonDate,UserPrinciplalName

# Affiche seulement le nom des utilisateurs qui sont désactivés


(Search-ADAccount -UsersOnly -AccountDisabled).Name
ou
(Search-ADAccount -UsersOnly -AccountDisabled:$true).Name

# Affiche seulement le nom des utilisateurs qui ne sont pas désactivés


(Search-ADAccount -UsersOnly -AccountDisabled:$false).Name

# Affiche seulement le nom des ordinateurs qui sont désactivés


(Search-ADAccount -ComputersOnly -AccountDisabled).Name
ou
(Search-ADAccount -ComputersOnly -AccountDisabled:$true).Name

# Affiche seulement le nom des ordinateurs qui ne sont pas désactivés


(Search-ADAccount -ComputersOnly -AccountDisabled:$false).Name

16 de 20
[Link]
Automne 2025

ANNEXE 1
Utilisation du paramètre -LDAPFilter avec Get-ADUser
Il est possible d'effectuer des requêtes en utilisant la syntaxe LDAP (Lightweight Directory Access Protocol).
 LDAP est un protocole ouvert et multiplateforme utilisé pour l’authentification des services d’annuaire.
 LDAP est un moyen de communiquer avec Active Directory.

Get-ADUser permet d'utiliser le paramètre -LDAPFilter.

Les opérateurs sont différents selon l'utilisation du paramètre -Filter ou l'utilisation du paramètre -LDAPFilter.
Les opérateurs du paramètre -Filter Les opérateurs du paramètre -LDAPFilter
-eq =
-ne !x=y
-le <=
-lt !x >= y
-ge >=
-gt !x <= y
-like =
-notlike !x = y
-and &
-or |
-not !

Utilisation de "Requêtes enregistrées" pour générer le code LDAP

Dans la console UOAD, "Requêtes enregistrées" permet de générer le code LDAP d’une requête.

Utilisateur dont le nom d’ouverture de session débute par EMP.

17 de 20
[Link]
Automne 2025

(&(objectCategory=user)(objectClass=user)(userPrincipalName=EMP*))

18 de 20
[Link]
Automne 2025

Voici plusieurs exemples qui utilisent le paramètre -LDAPFilter avec Get-ADUser

$sb = (Get-ADDomain).DistinguishedName
$user_LDAP = "&(objectCategory=user)(objectClass=user)"

# le nom d’ouverture de session débute par EMP


$q1 = "(" + $user_LDAP +
"(userPrincipalName=EMP*)" +
")"

Get-ADUser -SearchBase $sb -LDAPFilter $q1 -Properties *

# le nom d’ouverture de session débute par EMP ET l'adresse de messagerie se termine par @[Link]
$q2 = "(" + $user_LDAP +
"(userPrincipalName=EMP*)(mail=*@[Link])" +
")"

Get-ADUser -SearchBase $sb -LDAPFilter $q2 -Properties *

# le nom = Richard OU le nom = Michelle OU le nom = Patrick


$q3 = "(" + $user_LDAP +
"(|(cn=Richard)(cn=Michelle)(cn=Patrick))" +
")"

Get-ADUser -SearchBase $sb -LDAPFilter $q3 -Properties *

# le prénom = Richard ET (la ville = Laval OU la ville = Verdun)


$q4 = "(" + $user_LDAP +
"(&(givenName=EMP01)(|(l=Laval)(l=Verdun)))" +
")"

Get-ADUser -SearchBase $sb -LDAPFilter $q4 -Properties *

# La liste des utilisateurs qui n'ont pas de gestionnaire en utilisant -LDAPFilter


$q5 = "(" + $user_LDAP +
"(!(manager=*))" +
")"

Get-ADUser -SearchBase $sb -LDAPFilter $q5 -Properties *

19 de 20
[Link]
Automne 2025

ANNEXE 2
Utilisation de LDAP pour rechercher un ou plusieurs utilisateurs de l'Active Directory
Les deux exemples n'utilisent pas le module ActiveDirectory.
Les deux exemples utilisent la classe "[Link]" du ".NET Framework".

# Code pour rechercher l'utilisateur EMP01 qui est dans la OU "FORMATION"


# $nom correspond au nom d'ouverture de session
$nom = " EMP01"

# ADSI signifie (Active Directory Service Interfaces)


$root = [ADSI]"LDAP://OU=formation,DC=formation,DC=local"

$searcher = New-Object -TypeName [Link] -ArgumentList ($root)


$[Link] = "(&(objectCategory=person)(objectClass=User)(name=$nom))"

$resultat = ($[Link]()).GetDirectoryEntry()

$login = $[Link]
$prenom = $[Link]
$nom = $[Link]
$nomComplet = $[Link]

$info = "$login`t$prenom`t$nom`t$nomComplet"
Write-Host $info -ForegroundColor Yellow

$info = "-" * 80
Write-Host $info -ForegroundColor Cyan

# Code pour rechercher les utilisateurs dont le nom débute par EMP
# et qui sont dans la OU "FORMATION"
# $nom correspond au nom d'ouverture de session
$nom = "EMP*"

# ADSI signifie (Active Directory Service Interfaces)


$root = [ADSI]"LDAP://OU=formation,DC=formation,DC=local"

$searcher = New-Object -TypeName [Link] # -ArgumentList ($root)


$[Link] = "(&(objectCategory=person)(objectClass=User)(name=$nom))"

$[Link]() | ForEach-Object {
$user = $[Link]()

$login = $[Link]
$prenom = $[Link]
$nom = $[Link]
$nomComplet = $[Link]

$info = "$login`t$prenom`t$nom`t$nomComplet"
Write-Host $info -ForegroundColor Yellow

$info = "-" * 80
Write-Host $info -ForegroundColor Cyan
}

20 de 20

Vous aimerez peut-être aussi