C3 / Powershell - Gestion de l'AD
1 Introduction
A partir de la version 3.0 de Powershell, il n’est plus nécessaire d’importer le module Active Directory afin de pouvoir s’en servir.
• Pour vérifier que le module Active Directory est importé : Get-Module ActiveDirectory
• Pour importer le module Active Directory : Import-Module ActiveDirectory
• Lister les commandes du module Active Directory : Get-Command -Module ActiveDirectory
2 La recherche d'objets
La recherche d’objets avec les commandes Active Directory peut s’effectuer de 3 façons :
• Recherche basée sur la réalisation d’un filtre LDAP (paramètre -LDAPFilter).
• Recherche basée sur la réalisation d’un filtre générique (paramètre -Filter).
• Recherche basée sur une identité connue à l’avance (paramètre -Identity).
La plupart des commandes AD possède ces trois paramètres.
2.1 Filtrer avec -LDAPFilter
Les filtres de type LDAP peuvent être créés au moyen de la fonctionnalité « Requête » du module
« Utilisateurs et ordinateurs Active Directory »
2.2 Filtrer avec le filtre générique -Filter
Le paramètre -Filter prend en entrée une chaîne de caractères. La syntaxe de cette chaine de caractères est celle du langage des expressions PowerShell et utilise la notation BNF (Backus-Naur Form). cf. https://technet.microsoft.com/en-us/library/hh531527(v=ws.10).aspx
• Ne pas filtrer : -Filter *
Exemple : Get-ADObject -Filter * → Permet d'obtenir tous les objets de l'AD
• Filtrer en testant une propriété d'un objet -Filter {nompropriété -eq valeur}
• Exemple : Get-ADObject -Filter {objectClass -eq ’computer’} → ermet d'afficher tous les objets de type (objecteClass) ordinateur (computer)
• Filtre partiel sur une chaine de caractères : -like (cf. C1 / Itroduction à Powershell)
• Exemple : Get-ADObject -Filter {(objectClass -eq ’computer’) -and (name -like ’*P409*’)} → Permet d'obtenir la liste des ordinateur dont le nom contient P409
• Filtre sur une valeur booléenne -Filter {nomproprité – eq 'valeur'} valeur pouvant prendre true ou false
Exemple Get-ADUser -filter {(Enabled -eq 'False')} → Permet de lister tous les utilisateurs désactivés (on aurait pu aussi utiliser la propriété disabled : Get- ADUser -disabled)
On peut aussi utiliser les variables prédéfinies $true et $false ? L'exemple précédent s'écrit alors : Get-ADUser -filter {(Enabled -eq $false)}
• Filtre pour tester si une propriété est null : -Filter {nompropriété -eq $nulll}
Remarque :
• Il est aussi possible de mettre un filtre dans une variable pour pouvoir l'appliquer ultérieurement.
Exemple :
$monFiltre = {(name -like ’Win*’) -and (enabled -eq ’False’)}
Get-ADComputer -Filter $monFiltre
2.3 Filtrer avec -Identity
Les filtres basés sur une identité permettent de s’adresser directement à un objet individuel dont l’identité est déjà connue.
Chaque type d’objet défini dans Active Directory possède des attributs d’identités qui lui sont propres.
Par exemple, un objet de type « compte d’ordinateur (ADComputer) » est caractérisé par les attributs suivants :
Attribut d’identification Description
DistinguishedName Identifiant LDAP, de la forme :
CN=nom,CN=Unité_Organisation,DC=Domaine ObjectGUID Identifiant Active Directory, de la forme :
c829051e-dea9-4245-b373-d381b9181cc9 SID Identifiant de sécurité, de la forme :
S-1-5-21-1005862844-2131066483-1759542542-1137 SAMAccountName Identifiant de compte, de la forme : NomDeCompte$
Mais il possède également d’autres attributs car un objet compte d’ordinateur hérite de la classe ADAccount, qui elle hérite de la classe ADPrincipal, qui à son tour hérite de ADObject, etc.
1. Exemple : test identity sur le DistinguishedName : Get-ADComputer -Identity
’CN=P409-01,CN=Computers,DC=darcvadaure,DC=lan’
2. Exmple : test identity sur le SID : Get-ADComputer -Identity ’S-1-5-21- 1005862844-2131066483-1759542542-1137’
3 Gestion des utilisateurs
3.1 Les commandes de gestion des utilisateurs pour l'AD
Pour la gestion des utilisateurs, on dispose des commandes suivantes :
Commande Description
Get-ADUser Obtient un ou plusieurs utilisateurs Active Directory.
Set-ADUser Modifie un utilisateur Active Directory.
New-ADUser Crée un utilisateur Active Directory.
Remove-ADUser Supprime un utilisateur Active Directory.
Get-ADUserResultantPasswordPolicy Obtient la stratégie de mot de passe résultante pour un utilisateur Active Directory.
3.2 Lister des utilisateurs : Get-ADUser
• Get-ADUser -Filter * → Liste tous les utilisateurs
• Get-ADUser -Filter * -SearchBase
’OU=EPN,DC=darcvadaure,DC=lan’ → liste des utilisateur de l'UO EPN sur le contrôleur de domaine darcvadaure.lan
• Get-ADUser -Identity hbrouard -Properties * → affiche l'utilisateur hbrouard avec tous ses attributs
• Pour obtenir une liste facilement interprétable d’utilisateurs, il est utile de formater le résultat sous forme de tableau : Get-ADUser -Filter * | Format-Table GivenName,Surname, Name, Sam*
Le résultat sera :
GivenName Surname Name SamAccountName --- --- ---- --- Administrateur Administrateur Invité Invité
krbtgt krbtgt Helene BROUARD Helene BROUARD hbrouard Voici quelques paramètres de la commande Get-ADUser :
Paramètre Description
-Filter { filtre } Spécifie un « filtre générique »
-LDAPFilter { filtreLDAP} Spécifie une condition LDAP utilisée pour filtrer des objets Active Directory.
-Identity identUtilisateur Spécifie un objet Active Directory en fournissant l’un de ses identifiants
-ResultPageSize nbObjets Spécifie le nombre d’objets à inclure dans une page pour une requête. Par défaut, 256 objets par page.
-ResultSetSize nbMaxObjets Spécifie le nombre maximal d’objets à retourner pour une requête. La valeur par défaut est $null, ce qui correspond à la valeur « tous les objets ».
-SearchBase chemindacces Spécifie un chemin d’accès Active Directory dans lequel effectuer les recherches.
-SearchScope Base ou :
-SearchScope OneLevel ou :
Spécifie la portée d’une recherche Active Directory. Une requête Base n’effectue des recherches que dans le chemin d’accès ou l’objet actuel. Une requête OneLevel effectue des recherches dans les enfants directs de ce chemin d’accès ou de
-SearchScope Subtree cet objet. Une requête Subtree effectue des recherches dans le chemin d’accès ou l’objet actuel et tous les enfants de ce chemin d’accès ou de cet objet. La portée par défaut est Subtree.
-Partition nomPartition Spécifie le nom unique d’une Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-Properties nomsProprietes Spécifie les propriétés de l’objet de sortie à récupérer. Utilisez ce paramètre pour récupérer des propriétés qui ne sont pas incluses dans le jeu par défaut.
Exemple : GetADUser -Identity fparis -Properties OfficePhone,Organization
→ Affiche les propriétés par défaut de la commande Get- ADUser ainsi que le n° de téléphone bureau et l'organisation.
Les propriétés de ce paramètre sont indiquées sous la forme d’une liste de noms séparés par des virgules. Pour afficher tous les attributs définis sur l’objet, spécifiez « * ».
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
Exemple :
GetADUser -Filter * -Server
"yodda.darcvadaure.lan"
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
Exemple :
GetADUser -Filter * -Credential
"darcvadaure.lan\Administrateur"
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate. Une connexion SSL nécessite une méthode d'authentification Basic.
3.3 Créer un utilisateur : New-ADUser
• New-ADUser -Name HBrouard → Crée un utilisateur dans le conteneur Users (car nous n’avons rien précisé) qui apparaîtra sous le nom de « HBrouard ». Il aura également par défaut un attribut SamAccountName qui prendra la valeur « HBrouard ».
• New-ADUser -SamAccountName hbrouard -Name ’Helene BROUARD’
-GivenName Helene -Surname BROUARD -DisplayName ’Hélène BROUARD’ -Description ’Prof !’ -HomeDrive ’H:’ -HomeDirectory
’\\YODDA\chef’ -Path ’OU=uoEPN,DC=darcvadaure,DC=lan’ → Crée l'utilisateur Hélène BROUARD dans l'UO uoEPN...
• New-ADUser -SamAccountName vdurand -Name ’Vincent DURAND’
-AccountPassword(ConvertTo-SecureString "DarcvadaurE1 ;"
-AsPlainText -Force) → Crée l'utilisateur Vincent DURAND avec le mot de passe crypté « DarcvadaurE1 ; ». On aurait pu aussi passer par du code intermédiaire pour crypter le mot de passe :
$motPasse = ’DarcvadaurE1 ;’
$motPasse = ConvertTo-SecureString $motPasse -AsPlainText -Force
New-ADUser -SamAccountName vdurand -Name ’Vincent DURAND’
-AccountPassword $motPasse
Voici quelques paramètres de la commande New-ADUser :
Paramètre Description
-SamAccountName nomCompteSAM Spécifie le nom du compte de sécurité SAM (nom de groupe antérieur à Windows 2000).
-Name nom Spécifie le nom de l’objet utilisateur -Surname nomFamille Spécifie le nom de famille de l’utilisateur.
-DisplayName nomAffiche Spécifie le nom d’affichage de l'utilisateur.
-GivenName prenom Spécifie le prénom de l’utilisateur.
-Description uneDescription Spécifie une description de l’objet.
-EmailAddress adressemail Spécifie l’adresse de messagerie de l’utilisateur.
-Enabled $true ou :
-Enabled $false
Spécifie si le compte doit être activé. Un compte activé requiert un mot de passe. Peut prendre les valeur
$true ou $false.
Exemple : New-ADUser -SamAccountName vdurand -Name ’Vincent DURAND’
-AccountPassword(ConvertTo-
SecureString "DarcvadaurE1 ;"
-AsPlainText -Force)-Enabled $true AccountPassword
motPasseSecurisé Spécifie une nouvelle valeur de mot de passe pour un compte. Cette valeur est stockée sous forme d’une chaîne sécurisée.
Exemple : cf. -Enabled -CannotChangePassword $true
ou :
-CannotChangePassword $false
Spécifie si le mot de passe du compte peut être modifié. Peut prendre les valeur $true ou $false.
-ChangePasswordAtLogon $true ou :
-ChangePasswordAtLogon $false
Spécifie si un mot de passe doit être modifié lors de la prochaine tentative d’ouverture de session. Peut prendre les valeur $true ou $false.
-PasswordNeverExpires $true ou :
-PasswordNeverExpires $false
Spécifie si le mot de passe du compte peut expirer.
Peut prendre les valeur $true ou $false.
-PasswordNotRequired $true ou :
-PasswordNotRequired $false
Spécifie si le compte requiert un mot de passe. Un mot de passe n’est pas nécessaire pour un nouveau compte.
Peut prendre les valeur $true ou $false.
-HomeDirectory nomRepertoire Spécifie le répertoire de base d’un utilisateur.
-HomeDrive lettreLecteur Spécifie un lecteur associé au chemin UNC défini par la propriété HomeDirectory.
-ProfilePath nomRepertoire Spécifie un chemin d’accès au profil de l’utilisateur.
-Path nomChemin Spécifie le chemin d’accès X.500 de l’unité d’organisation ou du conteneur où le nouvel objet est créé. Si cette valeur n’est pas précisée, avec AD DS les objets utilisateurs seront rangés dans l’unité d’organisation Users.
Exemple :
New-ADUser -SamAccountName hbrouard -Name ’Helene BROUARD’ -Path
’OU=uoEPN,DC=darcvadaure,DC=lan’ → Crée l'utilisateur Helene BROUARD dans l'UO uoEPN ScriptPath nomRepertoire Spécifie un chemin d’accès au script d’ouverture de
session de l’utilisateur.
Instance identifiantADUser Spécifie une instance d’un objet utilisateur à utiliser comme modèle pour un nouvel objet utilisateur.
Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
3.4 Modifier un ou des attributs d'un utilisateur : Set-ADUser
• Set-ADUser -Identity hbrouard -SamAccountName toto → le nom de compte windows 2000 devient toto
• Set-ADUser -Identity hbrouard -Replace @{
Description = ’Super prof !’ ; TelephoneNumber = ’0247474747’;
OtherTelephone = @(’0660606060’,’0654542313’)}
→ modifie la valeur des attributs Description, TelephoneNumber et OtherTelephone
• Set-ADUser -Identity hbrouard -Clear OtherTelephone → efface l'utilisateur hbrouard
• $utilisateur = Get-ADUser hbrouard -Properties mail,department,description
$utilisateur.mail = "[email protected]"
$utilisateur.department = 'Lycee PLC'
$utilisateur.description = 'super prof !' Set-ADUser -Identity $utilisateur
→ Modifie les attributs mail, department et description de l'utilisateur hbrouard
• Set-ADUser -Identity hbrouard -Remove
@{otherMailbox="helene.b"} -Add @{url="plc.fr"} -Replace
@{title="prof"} -Clear description → Modifie l'utilisateur hbrouard. En supprimant heleneb de la propriété otherMailbox, en ajoutant l'url plc.fr, en remplaçant le titre par prof et en vidant la description.
3.5 Modifier le mot de passe d'un utilisateur : Set-ADAccountPassword
La commande Set-ADUser ne peut pas être utilisé pour modifier le mot de passe d'un utilisateur, bien que celui-ci soit un attribut de l'objet ADUser. La commande Set-ADAccountPassword permet de définir un mot de passe pour un utilisateur, un ordinateur ou un compte de service.
$motPasse = ’DarcvadaurE1 ;’
$motPasse = ConvertTo-SecureString $motPasse -AsPlainText -Force
Set-ADAccountPassword -Identity hbrouard -NewPassword
$motPasse -Reset → modifie le mot de passe du compte hbrouard (le nouveau mot de passe est contenu dans la variable motPasse, qui devra être affectée au préalable)
Voici quelques paramètres de la commande Set-ADAccountPassword :
Paramètre Description
-Identity identUtilisateur Spécifie un objet Active Directory en fournissant l’une de ses valeurs de propriété permettant de l’identifier.
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate.
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
-NewPassword
motPasseSecurise Spécifie une valeur de nouveau mot de passe. Le mot de passe doit être sécurisé avec ConvertTo-SecureString OldPassword
ancienMotPasseSecurise Spécifie la valeur de mot de passe la plus récente. L'ancien mot de passe doit être sécurisé avec ConvertTo- SecureString
Partition nomPartition Spécifie le nom unique d’une partition Active Directory.
Spécifie le nom unique d’une partition Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-PassThru Retourne l’objet modifié. Par défaut (c’est-à-dire si -PassThru n’est pas spécifié), cette commande ne génère aucune sortie.
-Reset Spécifie la réinitialisation du mot de passe sur un compte.
Lorsque vous utilisez ce paramètre, vous devez définir le paramètre NewPassword. Il n’est pas obligatoire de spécifier le paramètre OldPassword.
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
3.6 Activer un compte utilisateur
Pour activer un compte existant, il faut affecter un mot de passe au compte (si il n'en n'a pas) puis activer le compte :
• $motPasse = ’DarcvadaurE1 ;’
$motPasse = ConvertTo-SecureString $motPasse -AsPlainText -Force
Set-ADAccountPassword -Identity hbrouard -NewPassword
$motPasse → Affecte un mot de passe
• Set-ADUser -Identity hbrouard -Enabled $true → Active le compte
3.7 Supprimer un utilisateur : Remove-ADUser
La commande Remove-ADUser nécessite qu’on passe à son paramètre Identity un objet de type ADUser.
• Remove-ADUser -Identity hbrouard → supprime l'utilisateur hbrouard
• Remove-ADUser -Identity hbrouard -Confirm:$false → supprime l'utilisateur hbrouard, sans demande de confirmation.
4 Gestion des UO
4.1 Les commandes de gestion des UO de l'AD
Pour la gestion des groupes, on dispose des commandes suivantes :
Commande Description
Get-ADOrganizationalUnit Liste les unités organisationnelles New-ADOrganizationalUnit Crée une unité organisationnelle Remove-ADOrganizationalUnit Supprime une unité organisationnelle Set-ADOrganizationalUnit Modifie une unité organisationnelle.
4.2 Liste des UO : Get-ADOrganizationalUnit
• Get-ADOrganizationalUnit -Filter * → Liste toutes les UO du domaine
• Get-ADOrganizationalUnit -Filter * | Format-Table Name, DistinguishedName → Liste toutes les UO du domaine au format tableau, en n'affichant que le nom et l'identifiant
• Get-ADOrganizationalUnit -Identity
'OU=uoEPN,OU=uoAssociation,DC=darcvadaure,DC=lan' → Affiche la sous UO uoAssociation de l'UO uoEPN.
• Get-ADOrganizationalUnit -Filter {Name -like '*Assoc*'}
-SearchBase 'OU=uoEPN,DC=darcvadaure,DC=lan' -SearchScope OneLevel → Affiche les UO (pur un niveau seulement) dont le nom contient Assoc et qui sont situées dans l'UO uoEPN du domaine darcvadaure.lan
Voici quelques paramètres de la commande Get-ADGroup :
Paramètre Description
-Filter { filtre } Spécifie un « filtre générique »
-LDAPFilter { filtreLDAP} Spécifie une condition LDAP utilisée pour filtrer des objets Active Directory.
-Identity identUO Spécifie une UO Active Directory en fournissant l’un de ses identifiants (DistinguishedName par exemple)
-ResultPageSize nbObjets Spécifie le nombre d'UO à afficher dans une page pour une requête. Par défaut, 256 objets par page.
-ResultSetSize nbMaxObjets Spécifie le nombre maximal d'UO à retourner pour une requête. La valeur par défaut est $null, ce qui correspond à la valeur « tous les objets ».
-SearchBase chemindacces Spécifie un chemin d’accès Active Directory dans lequel effectuer les recherches.
-SearchScope Base ou :
-SearchScope OneLevel ou :
-SearchScope Subtree
Spécifie la portée d’une recherche Active Directory. Une requête Base n’effectue des recherches que dans le chemin d’accès ou l’objet actuel. Une requête OneLevel effectue des recherches dans les enfants directs de ce chemin d’accès ou de cet objet. Une requête Subtree effectue des recherches dans le chemin d’accès ou l’objet actuel et tous les enfants de ce chemin d’accès ou de cet objet. La portée par défaut est Subtree.
-Partition nomPartition Spécifie le nom unique d’une partition Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-Properties nomsProprietes Spécifie les propriétés de l’objet de sortie à récupérer. Utilisez ce paramètre pour récupérer des propriétés qui ne sont pas incluses dans le jeu par défaut.
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate. Une connexion SSL nécessite une méthode d'authentification Basic.
4.3 Créer une UO : New-ADOrganizationalUnit
• New-ADOrganizationalUnit -Name "uoEPN" -Path
"DC=darcvadaure,DC=lan" → Crée l'UO uoEPN sur le controlaire de domaine darcvadaure.lan
• New-ADOrganizationalUnit -Name "uoAssociation" -Path
"UO=uoEPN,DC=darcvadure,DC=lan"
-ProtectedFromAccidentalDeletion $False → Crée l'UO uoAssociation dans l'UO uoEPN du contrôleur de domaine darcvadaure.lan. Cette UO peut être supprimée (elle n'est pas protégée contre la suppression)
• New-ADOrganizationalUnit -Name "uoPersonnel" -Path
"DC=darcvadaure,DC=lan" -OtherAttributes
@{managedBy="CN=hbrouard,DC=darcvadaure,DC=lan"} → Crée l'UO uoPersonnel dans le contrôleur de domaine darcvaduare.lan en précisant qu'elle est gérée par l'utilisateur hbrouard.
Voici quelques paramètres de la commande New-ADOrganizationalUnit :
Paramètre Description
-Name nomUO Spécifie le nom de l'UO
-City nomVille Spécifie le nom de la ville où est située l'UO
-Country nomRegion Spécifie le nom de la région / du département où est située l'UO
-Description descriptionGrpe Spécifie une description de l'UO.
-DisplayName nomAffiche Spécifie le nom d’affichage de l'UO
-Instance identifiantUO Spécifie une instance d’un objet UO à utiliser comme modèle pour une nouvelle UO.
-OtherAttributes
@{nomAttribut1=valeur1 ; nomAttribut2=valeur2 ; … }
Spécifie les valeurs d’attribut d’objet pour les attributs qui ne sont pas représentés par des paramètres.
-PassThru Retourne l’objet nouvellement créé. Par défaut (c’est-à- dire si -PassThru n’est pas spécifié), cette commande ne génère aucune sortie.
-Path nomChemin Spécifie le chemin d’accès X.500 de l’unité d’organisation ou du conteneur où le nouvel objet est créé.
-PostalCode libelleCodePostal Spécifie le code postal où est située l'UO -ProtectedFromAccidentalDeletion $true
ou :
-ProtectedFromAccidentalDeletion $false
Spécifie si l'UO est protégée de la suppression ($true) ou non ($faclse)
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
-State nomPays Spécifie le nom du pays est située l'UO -StreetAddress libelleRue Spécifie la rue où est située l'UO -Confirm $false
ou : Demande ($true) ou non ($false) une confirmation pour
créer l'UO
-Confirm $true
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate.
-Credential infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
4.4 Modifier les attributs d'une UO Set-ADOrganizationalUnit
• Set-ADOrganizationalUnit -Identity
"OU=uoEPN,DC=darcvadaure,DC=lan" -Description "UO pour les comptes utilisateurs et les ordinateurs de la salle EPN de la médiathèque" → Modifie l'attribue description de l'UO uoEPN
• Set-ADOrganizationalUnit -Identity
"OU=uoEPN,DC=darcvadaure,DC=lan"
-ProtectedFromAccidentalDeletion $false → Ne protège plus l'UO de la suppression
• Set-ADOrganizationalUnit -Identity
"OU=uoEPN,DC=darcvadaure,DC=lan" -StreetAddress "12 rue du chat noir" -City Darcvadaure -State FRANCE -PostalCode 99991 -Replace @{managedBy="CN=gvelet,DC=darcvadaure,DC=lan"} → Modifie les attributs (qui étaient vides auparavant) rue, ville, pays et code postal. Remplace la valeur de l'attribut « géré par ».
La commande Set-ADOrganizationalUnit dispose quasiment des mêmes propriétés que la commande New-ADOrganizationalUnit :
4.5 Supprimer une UO : Remove-ADOrganizationalUnit
La commande Remove- ADOrganizationalUnit nécessite qu’on passe à son paramètre Identity un objet de type ADOrganizationalUnit.
• Remove-ADOrganizationalUnit -Identity
"OU=uoEPN,DC=darcvadaure,DC=lan" -Recursive → Supprime l'UO uoEPN et ses sous-UO
• Remove-ADOrganizationalUnit -Identity
"OU=uoPersonnel,DC=darcvadaure,DC=lan" -Recursive → Supprime l'UO uoEPN et ses sous-UO -Confirm:$false → Supprime l'UO uoPersonnel sans demander de confirmation
5 Gestion des groupes
5.1 Les commandes de gestion des groupes de l'AD
Pour la gestion des groupes, on dispose des commandes suivantes :
Commande Description
Add-ADGroupMember Ajoute un ou plusieurs membres à un groupe Active Directory.
Add-ADPrincipalGroupMembership Ajoute un membre à un ou plusieurs groupes Active Directory.
Get-ADAccountAuthorizationGroup Obtient les groupes de sécurité par l’utilisateur, l’ordinateur ou le jeton de comptes de service spécifié.
Get-ADGroup Obtient un ou plusieurs groupes Active Directory.
Get-ADGroupMember Obtient les membres d’un groupe Active Directory.
Get-ADPrincipalGroupMembership Obtient les groupes Active Directory qui possèdent un utilisateur, un ordinateur, un groupe ou un compte de service spécifié.
New-ADGroup Crée un groupe Active Directory.
Remove-ADGroup Supprime un groupe Active Directory.
Remove-ADGroupMember Supprime un ou plusieurs membres d’un groupe Active Directory.
Remove-ADPrincipalGroupMembership Supprime un membre d’un ou plusieurs groupes Active Directory.
Set-ADGroup Modifie un groupe Active Directory.
5.2 Lister des groupes : Get-ADGroup
• Get-ADGroup -Filter * → Liste tous les groupes
• Get-ADGroup -Filter * | Format-Table Name, GroupScope → Liste des groupes et de leur étendue (au domaine...)
• Get-ADGroup -Filter {GroupScope -eq ’DomainLocal’} → Liste des groupes au domaine
• Get-ADGroup -Filter * -SearchBase
’OU=uoEPN,DC=darcvadaure,DC=lan’ → Liste des groupes sur l'UO (chemin d'accès) uoEPN
• Get-ADGroup -Identity Administrateurs → Affichage des attributs par défaut du groupe « Administrateurs »
Voici quelques paramètres de la commande Get-ADGroup :
Paramètre Description
-Filter { filtre } Spécifie un « filtre générique »
-LDAPFilter { filtreLDAP} Spécifie une condition LDAP utilisée pour filtrer des objets Active Directory.
-Identity identUtilisateur Spécifie un objet Active Directory en fournissant l’un de ses identifiants
-ResultPageSize nbObjets Spécifie le nombre d’objets à inclure dans une page pour une
requête. Par défaut, 256 objets par page.
-ResultSetSize nbMaxObjets Spécifie le nombre maximal d’objets à retourner pour une requête. La valeur par défaut est $null, ce qui correspond à la valeur « tous les objets ».
-SearchBase chemindacces Spécifie un chemin d’accès Active Directory dans lequel effectuer les recherches.
-SearchScope Base ou :
-SearchScope OneLevel ou :
-SearchScope Subtree
Spécifie la portée d’une recherche Active Directory. Une requête Base n’effectue des recherches que dans le chemin d’accès ou l’objet actuel. Une requête OneLevel effectue des recherches dans les enfants directs de ce chemin d’accès ou de cet objet. Une requête Subtree effectue des recherches dans le chemin d’accès ou l’objet actuel et tous les enfants de ce chemin d’accès ou de cet objet. La portée par défaut est Subtree.
-Partition nomPartition Spécifie le nom unique d’une Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-Properties nomsProprietes Spécifie les propriétés de l’objet de sortie à récupérer. Utilisez ce paramètre pour récupérer des propriétés qui ne sont pas incluses dans le jeu par défaut.
Exemple : Get-ADGroup -Identity
Administrateurs -Properties
Name,GroupScope
→ Affiche les propriétés par défaut de la commande Get- ADGroup ainsi que le nom et l'étendue de groupe.
Les propriétés de ce paramètre sont indiquées sous la forme d’une liste de noms séparés par des virgules. Pour afficher tous les attributs définis sur l’objet, spécifiez « * ».
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
Exemple :
Get-ADGroup -Filter * -Server
"yodda.darcvadaure.lan"
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
Exemple :
GetAD-Group -Filter * -Credential
"darcvadaure.lan\Administrateur"
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate. Une connexion SSL nécessite une méthode d'authentification Basic.
5.3 Créer des groupe : New-ADGroup
Pour créer un groupe, il faut au minimum lui donner un nom (propriété Name) et une étendue (GroupScope). Si aucune catégorie (GroupCategory) n’est spécifiée alors par défaut il sera créé en tant que groupe de sécurité. Si on n'indique pas de SamAccountName alors cette propriété prendra le même nom que la propriété Name du groupe.
• New-ADGroup -Name UtilisateursSec -GroupScope DomainLocal -GroupCategory Security → Crée un groupe local de sécurité
• New-ADGroup -Name UtilisateursDist -GroupScope Global -GroupCategory Distribution → Crée un groupe global de distribution :
• New-ADGroup -Name GrpDelegue -GroupScope Universal -GroupCategory Security -ManagedBy hbrouard -Path ’OU=uoAutre,DC=darcvadaure,DC=lan’ → Création d’un groupe universel de sécurité dans l’unité d’organisation « uoAutre » et délégation de la gestion du groupe à l'utilisateur hbrouard
Voici quelques paramètres de la commande New-ADGroup :
Paramètre Description
-Name nomGroupe Spécifie le nom du groupe.
-Description descriptionGrpe Spécifie une description du groupe.
-DisplayName nomAffiche Spécifie le nom d’affichage du groupe.
-GroupCategory Distribution ou :
-GroupCategory Security
Spécifie la catégorie du groupe.
-GroupScope DomainLocal ou :
-GroupScope Global ou :
-GroupScope Universal
Spécifie l’étendue de groupe du groupe.
-SamAccountName nomGroupeSAM Spécifie le nom du compte de sécurité SAM (nom de groupe antérieur à Windows 2000).
-HomePage url Spécifie l’URL de la page d’accueil de l’objet.
-Instance identifiantGroupe Spécifie une instance d’un objet groupe à utiliser comme modèle pour un nouvel objet groupe.
-ManagedBy identifiantGroupeUser Spécifie l’utilisateur ou le groupe qui gère l’objet.
-OtherAttributes
@{nomAttribut1=valeur1 ; nomAttribut2=valeur2 ; … }
Spécifie les valeurs d’attribut d’objet pour les attributs qui ne sont pas représentés par des paramètres.
-PassThru Retourne l’objet nouvellement créé. Par défaut (c’est-à-dire si -PassThru n’est pas spécifié), cette commande ne génère aucune sortie.
-Path nomChemin Spécifie le chemin d’accès X.500 de l’unité d’organisation ou du conteneur où le nouvel
objet est créé.
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser.
Le type par défaut est Negotiate.
-Credential infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
5.4 Lister les membres d’un groupe : Get-ADGroupMember
• Get-ADGroupMember -Identity Administrateurs | Format-Table Name,ObjectClass → Récupère le contenu du groupe « Administrateurs » en précisant le type d'objet ( utilisateur, groupe, ordinateur..)
• Get-ADGroupMember -Identity Administrateurs -Recursive → Récupère le contenu du groupe « Administrateurs ». Le contenu de chaque sous groupe est détaillé (paramètre -Recursive)
Voici quelques paramètres de la commande Get-ADGroupMember :
Paramètre Description
-Identity identifiantGroupe Spécifie un groupe en fournissant l’une de ses valeurs de propriété permettant de l’identifier.
-Recursive Obtient tous les membres du groupe spécifié ainsi que les membres de tout groupe enfant.
-Partition nomPartition Spécifie le nom unique d’une Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate.
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
5.5 Ajouter des membres à un groupe : Add-ADGroupMember
• Add-ADGroupMember -Identity gJeunesse -Members hbrouard,gvelet → Ajoute les utilisateur hbrouard et gvelet au groupe gJeunesse Voici quelques paramètres de la commande Add-ADGroupMember :
Paramètre Description
-Identity identifiantGroupe Spécifie un groupe en fournissant l’une de ses valeurs de propriété permettant de l’identifier.
-Members
identifiant1,identifiant2,i dentifiant3,...
Ajoute les objets ayant pour identifiant identifiant1, identifiant2,, identifiant3, … dans le groupe
-Partition nomPartition Spécifie le nom unique d’une Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-PassThru Retourne l’objet nouvellement créé. Par défaut (c’est-à-dire si -PassThru n’est pas spécifié), cette commande ne génère aucune sortie.
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate.
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
5.6 Ajouter un membre à un ou plusieurs groupes : Add- ADPrincipalGroupMembership
Cette commande porte un nom générique car elle permet d’ajouter à un groupe non seulement un compte d’utilisateur mais aussi un compte d’ordinateur ou un groupe.
• Add-ADPrincipalGroupMembership -Identity hbrouard -MemberOf gAdulte → Affecte l'utilisateur hbrouard au groupe gAdulte
• Add-ADPrincipalGroupMembership -Identity hbrouard -MemberOf gDivers, Administrateurs → Affecte l'utilisateur aux groupes gDivers et Administrateurs
Voici quelques paramètres de la commande Add-ADPrincipalGroupMembership :
Paramètre Description
-Identity identifiantObjet Spécifie l'objet (utilisateur, groupe, ordinateur...) en fournissant l’une de ses valeurs de propriété permettant de
l’identifier.
-MemberOf
identifiantGrpe1,identifian tGrpe2,identifiantGrpe3,...
Spécifie les groupes Active Directory auxquels ajouter un utilisateur, ordinateur ou groupe comme membre.
-Partition nomPartition Spécifie le nom unique d’une Active Directory où la recherche va s'effectuer.
Exemple de partition :
"CN=P409-01,DC=darcvadaure,DC=lan"
-PassThru Retourne l’objet nouvellement créé. Par défaut (c’est-à-dire si -PassThru n’est pas spécifié), cette commande ne génère aucune sortie.
-Server nomServeur Spécifie l’instance des services Active Directory à laquelle se connecter. Celle-ci peut être de type AD DS, AD LDS ou AD Snapshot. C’est le domaine de l’ordinateur exécutant la requête qui est choisi par défaut.
-AuthType Negotiate ou :
-AuthType Basic
Spécifie la méthode d’authentification à utiliser. Le type par défaut est Negotiate.
-Credential
infosDidentification Spécifie les informations d’identification de compte d’utilisateur à utiliser pour effectuer cette tâche.
5.7 Supprimer un ou plusieurs membres d’un groupe : Remove- ADGroupMember.
Cette commande possède les mêmes paramètres que la commande Add-ADGroupMember.
• Remove-ADGroupMember -Identity gJeunesse -Members hbrouard,gvelet → Retire hbrouard et gvelet du groupe gjeunesse.
• Remove-ADGroupMember -Identity gJeunesse -Members hbrouard, gvelet -Confirm:$false → Retire hbrouard et gvelet du groupe gjeunesse, sans demander de confirmation
5.8 Supprimer un membre d’un ou de plusieurs groupes : Remove- ADPrincipalGroupMembership
Cette commande possède les mêmes paramètres que la commande Add- ADPrincipalGroupMembership.
• Remove-ADPrincipalGroupMembership -Identity hbrouard -MemberOf gAdulte → Retire hbrouard du groupe gAdulte
• Remove-ADPrincipalGroupMembership -Identity hbrouard -MemberOf gAdulte -Confirm:$false → Retire hbrouard du groupe gAdulte sans demande de confirmation
• Remove-ADPrincipalGroupMembership -Identity hbrouard -MemberOf gDivers,Administrateurs → Retire hbrouard des groupes gDivers et Adminsitrateurs
5.9 Supprimer un groupe : Remove-ADGroup
La commande Remove-ADGroupe nécessite qu’on passe à son paramètre Identity un objet de type ADGroup.
• Remove-ADGroup -Identity gAdulte → Supprime le groupe gAdulte
• Remove-ADGroup -Identity gAdulte -Confirm:$false → Supprime le groupe gAdulte sans demande de confirmation
6 Autres commandes sur l'AD
Il existe bien d'autres commandes pour gérer l'AD. Pour les obtenir, il suffit de taper Get- Command -Module ActiveDirectory. On dispose de commande :
– pour gérer l'ensemble des objets de l'AD de facon générique : X-ADObject, – pour gérer les ordinateurs : X-ADComputer
– pour gérer les sites de réplication de l'AD : X-ReplicationSite – pour gérer les comptes de service : X-ServiceAccount
– …
– cf. https://technet.microsoft.com/en-us/library/hh852274(v=wps.630).aspx Rq : Remplacer X par le verbe adéquat (New, Get, Move, Remove, Set...)