Aller au contenu principal

Gestion des comptes et des groupes

Comptes utilisateurs

Recherche d'un compte utilisateur

Pour rechercher un utilisateur dans Active Directory, la commande à utiliser est Get-ADUser.

Pour rechercher un utilisateur spécifique, on peut spécifier le paramètre -Identity. Ce paramètre peut admettre comme valeur le nom d'utilisateur court (sAMAccountName), le nom distinctif (DN), le SID ou le GUID.

Get-ADUser -Identity "zzappa"

Pour rechercher les utilisateurs obéissant à certains critères, on peut utiliser le paramètre -Filter.

Get-ADUser -Filter 'sAMAccountName -like "z*"'

Vérification de l'existence d'un compte utilisateur

Pour tester l'existence d'un utilisateur dans le domaine, voici un exemple:

if (Get-ADUser -Filter 'sAMAccountName -eq "zzappa"') {
Write-Host "L'utilisateur existe."
}
else {
Write-Host "L'utilisateur n'existe pas."
}

Création d'un nouveau compte utilisateur

Pour créer un nouvel utilisateur, on peut utiliser la commande New-ADUser. Étant donné la quantité d'attributs disponibles dans les objets utilisateurs, cette commande admet un très grand nombre d'arguments. Voici un exemple de création d'un compte utilisateur (la plupart de ces attributs sont facultatifs; en fait, seul le paramètre Name est obligatoire).

$ADUserSplat = @{
Path = "OU=Utilisateurs,DC=ad,DC=mondomaine,DC=com"
Name = "Zoe Zappa"
GivenName = "Zoé"
Surname = "Zappa"
Initials = "Z."
Title = "Dr."
DisplayName = "Dr. Zoé Zappa, Ph.D."
Description = "VP de chépoquoi"
SamAccountName = "zzappa"
UserPrincipalName = "zzappa@ad.mondomaine.com"
AccountPassword = "Passw0rd" | ConvertTo-SecureString -AsPlainText -Force
ChangePasswordAtLogon = $true
StreetAddress = "42 rue des timinous"
City = "Minoupolis"
Country = "CA"
PostalCode = "H0H 0H0"
MobilePhone = "(555) 555-5555"
EmployeeNumber = "2546011"
EmailAddress = "zzappa@mondomaine.com"
Enabled = $true
}

New-ADUser @ADUserSplat

Vous pouvez consulter la liste des paramètres de cette commande sur sa page de documentation.

Modification d'un compte utilisateur existant

On peut utiliser la commande Set-ADUser pour modifier un attribut d'un compte utilisateur existant. L'exemple suivant modifie l'adresse courriel de l'utilisateur Bob.

$ADSetUserSplat = @{
Identity = "Bob"
EmailAddress = "bob@mondomaine.com"
}

Set-ADUser @ADSetUserSplat

Suppression d'un compte utilisateur

On peut utiliser la commande Remove-ADUser pour supprimer un compte utilisateur. Voici un exemple en lui passant un compte utilisateur par le pipeline.

Get-ADUser -Identity "zzappa" | Remove-ADUser
astuce

Dans son comportement par défaut, Remove-ADUser demande une confirmation. Pour rendre l'opération complètement automatique, on peut désactiver le switch -Confirm, qui est activé par défaut (étrangement).

Remove-ADUser -Identity "zzappa" -Confirm:$false

Groupes

Recherche d'un groupe

Pour obtenir de l'information sur un groupe, on peut utiliser la commande Get-ADGroup. Cette commande s'emploie de la même manière que pour les utilisateurs.

Get-ADGroup -Identity "Comptables"

Le paramètre -Identity peut admettre le nom du compte (sAMAccountName) mais aussi son SID, son GUID ou son nom distinctif (DN).

Get-ADGroup -Identity "CN=Comptables,OU=Groupes,DC=ad,DC=mondomaine,DC=com"

Vérification de l'existence d'un groupe

Pour vérifier si un groupe existe, on peut employer la même logique que pour les utilisateurs.

if (Get-ADGroup -Filter 'sAMAccountName -eq "Comptables"') {
Write-Host "L'utilisateur existe."
}
else {
Write-Host "L'utilisateur n'existe pas."
}

Création d'un nouveau groupe

Pour créer un nouveau groupe, voici un exemple. Il faut minimalement spécifier son nom, sa portée (global, domaine local ou universel) ainsi que le nom distinctif complet du conteneur dans lequel le créer.

$ADGroupSplat = @{
Name = "Gestionnaires"
GroupScope = "Global"
Path = "OU=Groupes,DC=ad,DC=mondomaine,DC=com"
}

New-ADGroup @ADGroupSplat

Membres de groupes

Un groupe possède des membres, qui peuvent être soit des utilisateurs, des ordinateurs ou d'autres groupes. On nomme ces objets des principaux de sécurité.

Obtention des membres d'un groupe

Pour consulter quels principaux de sécurité sont membres d'un groupe spécifique, voici un exemple:

Get-ADGroupMember -Identity "Comptables"

On peut aussi passer un groupe par le pipeline.

Get-ADGroup -Identity "Comptables" | Get-ADGroupMember

Ajout de membres à un groupe

Pour ajouter un utilisateur à un groupe, voici un exemple:

Add-ADGroupMember -Identity "Admins du domaine" -Members "zzappa"

On peut également ajouter un autre type de principal de sécurité, comme un compte ordinateur ou un groupe. Le procédé est alors exactement le même; il suffit de donner le nom du groupe ou de l'ordinateur dans l'argument -Members. Par ailleurs, puisque le paramètre -Members admet un tableau, il est possible de lui passer un tableaux de membres, qui seront tous ajoutés d'un coup au groupe.

Retrait de membres à un groupe

Pour retirer un compte d'un groupe, il suffit d'utiliser cette commande:

Remove-ADGroupMember -Identity "Admins du domaine" -Members "zzappa"
astuce

Pour éviter de dépendre de la langue du système et de la traduction de ses noms de groupes, on peut utiliser le SID des groupes bien connus, comme le groupe des admins du domaine.

Le SID du groupe des admins du domaine est constitué du SID du domaine suivi du RID 512. Ainsi, voici comment on peut le trouver dynamiquement.

$DomainSID = (Get-ADDomain).DomainSID.Value
$DomainAdminSID = "$DomainSID-512"
Add-ADGroupMember -Identity $DomainAdminSID -Members "zzappa"

Attributs

Lorsqu'on utilise des commandes Get comme Get-ADUser ou Get-ADComputer, ce ne sont pas tous les attributs des objets qui sont interrogés, et ce, même si on le passe dans un Select-Object *. Pour interroger un attribut qui ne l'est pas par défaut, il faut le spécifier au moyen du paramètre -Properties.

Get-ADUser -Identity "zzappa" -Properties *

Par exemple, pour obtenir la date de création, on peut ajouter la propriété Created, qui n'est pas incluse dans l'objet par défaut.

Get-ADUser -Identity "zzappa" -Properties Created