Wednesday, November 19, 2014

FR (French) - Powershell 4.0 - Active Directory - Users: enable/disable, unlock accounts

C'est assez souvent que l'administrateur d'Active Directory doit trouver des comptes soit désactivés soit verrouillés et les activer ou déverrouiller.

Voici comment nous pouvons effectuer ces opérations avec Powershell.



***

Dresser la liste des comptes désactivés :

Get-ADUser -filter {Enabled -eq "false"} | fl name



Activer un compte :

Set-ADUser Jean.Lebrun -Enable $true



Trouver les comptes (utilisateur) verrouillés :

Search-ADAccount -LockedOut -UsersOnly | FL name,LockedOut

name      : Jean Lebrun
LockedOut : True



Déverrouiller un compte :

Unlock-ADAccount "CN=Jean Lebrun,OU=Lyon,DC=mynet,DC=lan"



Déverrouiller tous les comptes verrouillés :

Search-ADAccount -LockedOut -UsersOnly | Unlock-ADAccount



Voir la stratégie du domaine pour les mots de passe :

Get-ADObject "dc=mynet,dc=lan" -prop * | FL minPwdLength,pwdHistoryLength,pwdProperties,lockoutThreshold


minPwdLength     : 7
pwdHistoryLength : 24
pwdProperties    : 1
lockoutThreshold : 10

Sunday, November 9, 2014

FR (French) - Powershell 4.0 - Active Directory - Users: creation, passwords

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.
Note :

- 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