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