D'abord, j'ai présenté certaines opérations sur les utilisateurs dans d'autres postes. Il s'agissait d'applets de commande qui peuvent s'utiliser quel que soit l'objet.
Supprimer un utilisateur
Cela se fait avec l'applet de commande Remove-ADObject présenté dans un autre poste de blogue.
Déplacer un utilisateur (entre deux UO, par exemple).
Cela se fait avec l'applet de commande Move-ADObject présenté dans un autre poste de blogue.
Renommer un utilisateur
Cela se fait avec l'applet de commande Rename-ADObject présenté dans un autre poste de blogue.
***
Dans les lignes suivantes, je traiterai les applets de commande *-ADUser spécifiques à la gestion des utilisateurs.
Pour commencer, nous verrons la création d'un utilisateur, puis la configuration de quelques paramètres concernant les mots de passe.
Créer un nouveau utilisateur
New-ADUser "Jean Lebrun" -Path "OU=Lyon,DC=mynet,DC=lan" -GivenName "Jean" -Surname "Lebrun" -sAMAccountName "Jean.Lebrun"
Quelques remarques...
- Le compte n'est pas encore actif (utilisable). Il faut lui attribuer un mot de passe et puis l'activer avec un applet de commande que nous verrons dans un moment.
- En fait, Powershell est le plus utile quand nous devons créer de nombreux comptes et qu'on peut nous fournir un fichier .csv avec les éléments déjà remplis et correctement formatés. En revanche, pour la création d'un seul utilisateur, il serait sans doute plus rapide de recourir aux interfaces graphiques "ADUC" ou "ADAC", surtout si l'on peut copier un utilisateur modèle.
- ADUC = Active Directory Users and Computers
- ADAC = Active Directory Administrative Center
Donner un mot de passe au compte utilisateur
Cette opération est plus complexe. Il s'agit d'éviter de saisir le mot de passe en clair. Après avoir exécuté le premier applet, PowerShell demandera à l'administrateur de saisir un mot de passe dont les caractères seront masqués par des astérisques :
PS C:\> $NewPassword = (Read-Host -Prompt "Provide New Password" -AsSecureString)
Provide New Password: *********
PS C:\> Set-ADAccountPassword "CN=Jean Lebrun,OU=Lyon,DC=mynet,DC=lan" -NewPassword $NewPassword -Reset
Note : Nous pourrions mettre le texte en français : "Choisir un mot de passe", par exemple.
A sa création donc, le compte n'est pas activé, ce que nous pouvons vérifier avec cette commande :
PS C:\> Get-ADUser "CN=Jean Lebrun,OU=Lyon,DC=mynet,DC=lan" | FL Name,Enabled
Name : Jean Lebrun
Enabled : False
Activer un compte utilisateur
Nous pouvons l'activer avec l'applet de commande suivant :
PS C:\> Set-ADUser Jean.Lebrun -Enable $true
Et vérifier de nouveau...
PS C:\> Get-ADUser Jean.Lebrun | FL Name,Enabled
Name : Jean Lebrun
Enabled : True
Note : cet applet pourrait activer ou désactiver le compte, selon le cas, de manière plus générale et non pas seulement au moment de sa création.
Note : pour désigner le compte, nous avons au moins deux options...
- Le paramètre sAMAccountName, soit Jean.Lebrun ou jean.lebrun (la case n'importe pas).
- Le paramètre DN (Distinguished Name), soit "CN=Jean Lebrun,OU=Lyon,DC=mynet,DC=lan"
Je me sers tantôt de l'un tantôt de l'autre afin de présenter ces différentes options. Les deux se valent ici. Pour certains applets pourtant, il faut utiliser le paramètre DN.
Nous pouvons aussi utiliser une combinaison Get-ADUser | Set-ADUser comme ceci:
- Get-ADUser Jean.Lebrun | Set-ADuser -HomeDirectory "C:\PersonalFolders\Jean.Lebrun"
Enfin, nous pouvons utiliser un variable:
$JL = Get-ADUser "CN=Jean Lebrun,OU=Lyon,DC=mynet,DC=lan"
Set-ADUser $JL -ChangePasswordAtLogon $true
Gestion des propriétés relatives au mot de passe
Nous pouvons le faire avec ces applets de commande...
- Set-ADUser
- Set-ADAccountControl
Forcer un utilisateur à changer son mot de passe
Nous pouvons obliger un utilisateur à changer son mot de passe à sa prochaine ouverture de session (connexion) avec cet applet :
Set-ADUser Jean.Lebrun -ChangePasswordAtLogon $true
Empêcher l'utilisateur de changer son mot de passe
A priori, l'utilisateur peut changer son mot de passe et même doit le changer selon la stratégie de mot de passe du domaine. Nous pouvons vérifier qu'il le peut ainsi :
Get-ADUser Jean.Lebrun -prop * | FL name,CannotChangePassword
name : Jean Lebrun
CannotChangePassword : False
Mais si nous voulions empêcher un certain utilisateur de le faire, pour telle ou telle raison, nous le pourrions ainsi :
Set-ADAccountControl Jean.Lebrun -CannotChangePassword $true
A l'inverse, si nous voulions permettre le changement de mot de passe, nous mettrions $false pour la paramètre -CannotChangePassword.
Empêcher l'expiration d'un mot de passe
Set-ADUser ADFS_SVC -PasswordNeverExpires $true
Ce serait donc plutôt pour un compte de service - puisque le service serait incapable de choisir un nouveau mot de passe à la date d'expiration normale.
Voir les comptes avec un mot de passe qui n'expire jamais
Le plus souvent, on oblige ses utilisateurs à changer de mot de passe au moins une ou deux fois par an. Si nous voulions voir s'il y a des comptes sans date d'expiration, nous pourrions en dresser la liste avec l'applet suivant :
Get-ADUser -Filter {PasswordNeverExpires -eq "true"} | fl name
[...]
name : Conference Room 1
name : Conference Room 2
name : Conference Room 3
name : Jean Lebrun
Thank you for reading the article about FR (French) - Powershell 4.0 - Active Directory - Users: creation, passwords on the blog NEW TECH If you want to disseminate this article on please list the link as the source, and if this article was helpful please bookmark this page in your web browser by pressing Ctrl + D on your keyboard keys.