Administrer Active Directory 2012 en Powershell

Devez-vous vraiment installer un VPN sur votre ordinateur ou votre smartphone?

Si vous téléchargez des films illégalement, si vous voulez surfer sur Internet de façon anonyme sans que le gouvernement, votre FAI ou votre employeur soit au courant ... OUI installer un VPN est définitivement une bonne idée.

Installer un VPN consiste à chiffrer toutes vos communications vers Internet. Ce n'est plus votre ordinateur qui est exposé sur Internet mais votre fournisseur de VPN.

Anonymat NordVPN

Nous allons voir dans ce tutoriel comme administrer Active Directory en Powershell depuis un serveur Windows Server 2012 R2. Le Powershell est un puissant langage de script omniprésent sur les solutions Microsoft depuis Windows Server 2008.

Consultez la section Powershell Pour les Nuls pour accédez à l’index de tous les tutoriels Powershell proposés sur SysKB

Préparatif

  1. Lancez Powershell depuis un serveur Active Directory en cliquant sur l’icône icône powershell sur la barre inférieure ou en tapant simplement “Powershell” depuis l’écran d’accueil ModernUI.
  2. Exécutez la commande Import-Module ActiveDirectory pour activer les commandes spécifiques à Active Directory. Lorsque vous écrirez des scripts pour automatiser vos tâches de gestion AD DS, cette commande sera la première à exécuter.
  3. Exécutez ensuite la commande Get-Command –Module ActiveDirectory pour lister tous les commandes associées à Active Directory. AD DS sous Windows Server 2012 R2 compte 80 commandes Powershell.

Administrer Active Directory en Powershell

Découvrons maintenant quelques exemples de commandes Powershell pour administrer un annuaire Active Directory.

Administrer Active Directory en Powershell – Exemples

Lister tous les comptes AD

Les exemples suivants permettent d’afficher tous les comptes de votre annuaire. Le premier va afficher quelques propriétés standards relatives aux comptes:

Get-ADUser -Filter * | Format-List

Le second uniquement les champs GivenName et Surname: 

Get-ADUser –Filter * | Format-List -Property GivenName, Surname

Et le dernier toutes les propriétés de tous les comptes:  

 Get-ADUser –Filter * -Properties * | Format-List *

Activer ou désactiver un compte utilisateur

Tapez la commande suivante pour désactiver un compte donné:

PS C:\> Disable Login_du_Compte -ADAccount

Et la commande suivante pour l’activer:

PS C:\> Enable-ADAccount Login_du_Compte

Pour désactiver tous les comptes d’un département nommé ventes:

PS C:\> get-aduser -filter "department -eq 'sales'" | disable-adaccount

Déverrouiller un compte

La commande suivante permet de déverrouiller le compte:

PS C:\> Unlock-ADAccount Login_du_Compte

Supprimer un compte

Supprimer un compte AD en Powershell est si simple … tellement simple qu’il est conseillé d’ajouter le paramètre -whatif à la fin de votre commande avant de l’exécuter. Ce paramètre va permettre de simuler l’exécution de votre commande sans réellement l’appliquer. Les objets supprimés par votre commande vont s’afficher. A vous alors de vérifier que cela correspond bien à ce que vous souhaitez faire 😉 avant d’enlever le -whatif

PS C:\> Remove-ADUser Login_du_Compte -whatif
What if: Performing operation "Remove" on Target
"CN=Login_du_Compte,OU=Informatique,DC=TESTLAB,DC=local".

La commande suivante permet d’aller plus loin. Elle permet de supprimer TOUS les comptes Active Directory désactivés depuis plus de 180 jours dans l’OU Utilisateurs du domaine TESTLAB. Encore le -whatif à la fin pour vous permettre de tester le script avant son exécution réelle.

PS C:\> get-aduser -filter "enabled -eq 'false'"
-property WhenChanged -SearchBase "OU=Utilisateurs,
DC=TESTLAB,DC=Local" | where {$_.WhenChanged
-le (Get-Date).AddDays(-180)} | Remove-ADuser -whatif

Rechercher les groupes vides

Ce script va parcourir tout l’annuaire et identifier les groupes vides:

PS C:\> get-adgroup -filter * | where {-Not
($_ | get-adgroupmember)} | Select Name

Cette autre version du script permet de limiter la recherche aux groupes universels d’une OU spécifique et ainsi réduire son temps d’exécution:

PS C:\> get-adgroup -filter "members -notlike '*'
-AND GroupScope -eq 'Universal'" -SearchBase
"OU=Groupes,OU=Europe,DC=TESTLAB,
DC=local" | Select Name,Group*

Ajouter des membres dans un groupe

La commande suivante permet d’ajouter un compte utilisateur AD dans un groupe:

PS C:\> add-adgroupmember "Nom_Du_Groupe" -Members Login_du_Compte

Cette autre exemple exploite toute la puissance de la commande add-adgroupmember en ajoutant tous les utilisateurs de Paris au groupe Internet Access.

PS C:\> Add-ADGroupMember "Internet Access" -member (get-aduser -filter "city -eq 'Paris'")

Laisser un commentaire

Cliquez ici pour révoquer votre décision.