Modifier date d’expiration de plusieurs comptes Active Directory

I. Présentation

Il est possible de configurer dans les propriétés d'un utilisateur au sein d'un annuaire Active Directory une date d'expiration du compte. Au-delà de cette date, le compte ne pourra plus être utilisé. Si vous souhaitez changer cette date d'expiration pour plusieurs utilisateurs simultanément, je vous propose deux méthodes :


- La méthode par interface graphique

- La méthode par script PowerShell

Nous verrons ces deux méthodes dans ce tutoriel, sachant que la méthode graphique à un avantage : elle est simple, mais elle a à mon sens un inconvénient non négligeable : la sélection d'utilisateurs depuis la console permet de sélectionner des utilisateurs situés dans la même unité d'organisation. Cela peut être gênant dans certains cas.

II. La méthode graphique

Ouvrez votre console Utilisateurs et ordinateurs Active Directory, placez-vous dans une Unité d'organisation contenant des utilisateurs où vous souhaitez modifier la date. Sélectionnez-les.

Sur la sélection, faites clic droit puis cliquez sur "Propriétés" et accédez à l'onglet "Compte".

Propriétés utilisateurs AD

Il vous reste à cocher la case "Date d'expiration du compte" puis "Fin de :" et définissez la valeur que vous souhaitez. Validez, la propriété sera mise à jour sur l'ensemble des comptes utilisateurs sélectionnés.

III. La méthode par script

Le script Powershell que je vous propose est simple, mais est fonctionnel (rédigé et testé par mes soins). Le principe est simple : définir un fichier CSV source contenant la valeur SamAccountName de chaque compte à actualiser, et, ensuite utiliser ce fichier CSV pour effectuer l'action de mise à jour sur chacun des utilisateurs.

A. Le fichier CSV

Le fichier .csv doit être construit de la façon suivante :

samaccountname;
florian;
mickael;

La première ligne correspond à l'en-tête de la colonne et ne doit pas être modifiée. Ensuite, on indique un SamAccountName par ligne.

Pour connaître la valeur du SamAccountName de chaque utilisateur, ouvrez une console Powershell et saisissez :

Get-ADUser -Filter * | ft Name,SamAccountName

Récupérer SamAccountName

B. Le fichier PS1

Voici le code du script Powershell :

# Importer le module Active Directory
Import-Module ActiveDirectory

# Import du CSV
$csv = Import-CSV -Path "C:\PS1\user.csv" -Delimiter ";" -Encoding UTF8

# Pour chaque utilisateur, on met à jour la date d'expiration
foreach($user IN $csv){
	Set-ADAccountExpiration $user.samaccountname -DateTime "Monday, November 18, 2013"
}

Vous devez modifier :

- Le chemin vers le fichier CSV source à utiliser (paramètre -Path, ligne 5)

- La date d'expiration que vous souhaitez (paramètre -DateTime, ligne 9)

Une fois que c'est paramétré correctement, vous pouvez exécuter le script. Il serait possible d'améliorer le script en ajoutant une colonne supplémentaire dans le CSV correspondante à la valeur d'expiration et en passant en variable la valeur de -DateTime, ainsi, vous pouvez indiquer plusieurs dates d'expirations différentes dans le fichier.

N'hésitez pas à donner votre avis et à noter l'article.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian B.

Co-Fondateur d'IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno' est importante je partage aussi des actus.

florian has 1855 posts and counting.See all posts by florian

2 pensées sur “Modifier date d’expiration de plusieurs comptes Active Directory

  • Bonjour,

    Je vous remercie pour cet article car il est très clair et explicite.

    J’ai une question générale à vous poser.

    Est t’il possible de modifier la date pour tous les utilisateurs de l’AD en poweshell?

    Je vous remercie d’avance.

    Cordialement.

    Répondre
    • Bonjour,

      Merci pour votre commentaire. Concernant votre question, oui c’est possible en PowerShell. Ceci grâce au module ActiveDirectory.

      Ensuite il faudra utiliser « Set-ADAccountExpiration » qui est dédié à cela et le combiner (avec un pipe) avec « Get-ADUser » pour « sélectionner » les utilisateurs au préalable.

      Cela répond à votre question ?

      Bonne journée et à bientôt j’espère.
      Florian

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.