Si comme moi, vous utilisez Active Directory de manière basique, cet article est fait pour vous. Vous y découvrirez le B.A. BA pour manipuler Active Directory avec PowerShell.

Pré-requis

Il est possible que vous ne disposiez pas des commandes PowerShell lié à Active Directory suivant la configuration du serveur. Pour pallier à cela, vous devez ajouter le module Active Directory pour PowerShell. Deux possibilités s’offrent à vous :

  • PowerShell
Import-Module ServerManager
Add-WindowsFeature RSAT-AD-PowerShell
  • Configuration manuelle

– Server Manager

– Features

– Add features

– Remote Server Administration Tools > Role Administration Tools > AD DS and AD LDS Tools > Active Directory module for Windows PowerShell

ServerManager-AD-PS-Feature

Pour importer le module Active Directory :

Import-Module ActiveDirectory
# lister les commandlets du module
Get-Command –Module ActiveDirectory

Comptes Active Directory

Trouver un compte AD

Get-ADUser U2BH3E
DistinguishedName : CN=LERDA Ghislain,OU=Standard,OU=Users,DC=societe,DC=org
Enabled           : True
GivenName         : Ghislain
Name             : LERDA Ghislain
ObjectClass       : user
ObjectGUID       : 4ce91fbf-989a-47dc-97b5-363298825252
SamAccountName   : lerdagh
SID               : S-1-5-21-484763869-861567501-725345543-67414
Surname           : LERDA
UserPrincipalName : ghislain.lerda@mail.com

Get-ADUser -Filter {GivenName -eq "Ghislain"}
DistinguishedName : CN=LERDA Ghislain,OU=Standard,OU=Users,DC=societe,DC=org
Enabled           : True
GivenName        : Ghislain
Name             : LERDA Ghislain
ObjectClass       : user
ObjectGUID       : 4ce91fbf-989a-47dc-97b5-363298825252
SamAccountName   : lerdagh
SID               : S-1-5-21-484763869-861567501-725345543-67414
Surname           : LERDA
UserPrincipalName : ghislain.lerda@mail.com

Si plusieurs résultats, Get-ADUser renvoie un tableau. Voici donc un script permet de requêter selon une propriété et de récupérer quelques données au format CSV.

Import-Module ActiveDirectory -EA 0
function GetUsersInfo{
   param(
      $filter,
      $arrValues
   )
   foreach( $val in $arrValues){
      $found = Get-ADUser -Filter {$filter -eq $val}
      if($found){
         foreach($f in $found){
            "$val ; $($f.Name) ;$($f.SamAccountName)"
         }
      }else{
         "$val"
      }
   }
}

# Exemples d'appel
GetUsersInfo -filter "GivenName" -arrValues @("Ghislain")
GetUsersInfo -filter "SurName" - arrValues @("Lerda")

Activer / désactiver un compte AD

# Activer un compte
Enable-ADAccount Login
# Désactiver un compte
Disable-ADAccount Login
# Désactiver plusieurs comptes AD
Get-ADGroupMember "BlackList" | Disable-ADAccount

Déverrouiller un compte

# Déverouiller un compte AD
Unlock-ADAccount Login

Supprimer un compte AD

Vous devez manipuler cette commande avec circonspection vu la simplicité de sa syntaxe

# Supprimer un compte AD
Remove-ADUser Login

# Supprimer plusieurs comptes AD
Get-ADUser -Filter {GivenName -eq "BadBoy"} | Remove-ADUser

Changer le mot de passe

$newPassword=Read-Host "Enter the new password" –AsSecureString
Set-ADAccountPassword Login -NewPassword $new

# Obliger l’utilisateur a changer de mot de passe à la prochaine connexion
Set-ADUser Login -ChangePasswordAtLogon $True

Ajouter un compte dans un groupe

# ajouter un compte dans un groupe
Add-ADGroupMember "Nom_Du_Groupe" -Members Login

# Ajouter plusieurs comptes AD dans un groupe
Add-ADGroupMember "BlackList" -Member (Get-ADUser -Filter {GivenName -eq "BadBoy"})

AD PSDrive

Le module Active Directory de PowerShell apporte aussi le PSDrive d’Active Directory. Cela vous permettra de parcourir votre AD comme s’il s’agissait d’un disque dur (avec cd et dir). Les domaines, OU et autres containers se comportent comme des dossiers.

cd AD:
dir

Pour aller plus loin :

Hey, Scripting Guy! Blog – Active Directory Week: Get Started with Active Directory PowerShell

[Si comme moi, vous utilisez Active Directory de manière basique, cet article est fait pour vous. Vous y découvrirez le B.A. BA pour manipuler Active Directory avec PowerShell.

Pré-requis

Il est possible que vous ne disposiez pas des commandes PowerShell lié à Active Directory suivant la configuration du serveur. Pour pallier à cela, vous devez ajouter le module Active Directory pour PowerShell. Deux possibilités s’offrent à vous :

  • PowerShell
Import-Module ServerManager
Add-WindowsFeature RSAT-AD-PowerShell
  • Configuration manuelle

– Server Manager

– Features

– Add features

– Remote Server Administration Tools > Role Administration Tools > AD DS and AD LDS Tools > Active Directory module for Windows PowerShell

ServerManager-AD-PS-Feature

Pour importer le module Active Directory :

Import-Module ActiveDirectory
# lister les commandlets du module
Get-Command –Module ActiveDirectory

Comptes Active Directory

Trouver un compte AD

Get-ADUser U2BH3E
DistinguishedName : CN=LERDA Ghislain,OU=Standard,OU=Users,DC=societe,DC=org
Enabled           : True
GivenName         : Ghislain
Name             : LERDA Ghislain
ObjectClass       : user
ObjectGUID       : 4ce91fbf-989a-47dc-97b5-363298825252
SamAccountName   : lerdagh
SID               : S-1-5-21-484763869-861567501-725345543-67414
Surname           : LERDA
UserPrincipalName : ghislain.lerda@mail.com

Get-ADUser -Filter {GivenName -eq "Ghislain"}
DistinguishedName : CN=LERDA Ghislain,OU=Standard,OU=Users,DC=societe,DC=org
Enabled           : True
GivenName        : Ghislain
Name             : LERDA Ghislain
ObjectClass       : user
ObjectGUID       : 4ce91fbf-989a-47dc-97b5-363298825252
SamAccountName   : lerdagh
SID               : S-1-5-21-484763869-861567501-725345543-67414
Surname           : LERDA
UserPrincipalName : ghislain.lerda@mail.com

Si plusieurs résultats, Get-ADUser renvoie un tableau. Voici donc un script permet de requêter selon une propriété et de récupérer quelques données au format CSV.

Import-Module ActiveDirectory -EA 0
function GetUsersInfo{
   param(
      $filter,
      $arrValues
   )
   foreach( $val in $arrValues){
      $found = Get-ADUser -Filter {$filter -eq $val}
      if($found){
         foreach($f in $found){
            "$val ; $($f.Name) ;$($f.SamAccountName)"
         }
      }else{
         "$val"
      }
   }
}

# Exemples d'appel
GetUsersInfo -filter "GivenName" -arrValues @("Ghislain")
GetUsersInfo -filter "SurName" - arrValues @("Lerda")

Activer / désactiver un compte AD

# Activer un compte
Enable-ADAccount Login
# Désactiver un compte
Disable-ADAccount Login
# Désactiver plusieurs comptes AD
Get-ADGroupMember "BlackList" | Disable-ADAccount

Déverrouiller un compte

# Déverouiller un compte AD
Unlock-ADAccount Login

Supprimer un compte AD

Vous devez manipuler cette commande avec circonspection vu la simplicité de sa syntaxe

# Supprimer un compte AD
Remove-ADUser Login

# Supprimer plusieurs comptes AD
Get-ADUser -Filter {GivenName -eq "BadBoy"} | Remove-ADUser

Changer le mot de passe

$newPassword=Read-Host "Enter the new password" –AsSecureString
Set-ADAccountPassword Login -NewPassword $new

# Obliger l’utilisateur a changer de mot de passe à la prochaine connexion
Set-ADUser Login -ChangePasswordAtLogon $True

Ajouter un compte dans un groupe

# ajouter un compte dans un groupe
Add-ADGroupMember "Nom_Du_Groupe" -Members Login

# Ajouter plusieurs comptes AD dans un groupe
Add-ADGroupMember "BlackList" -Member (Get-ADUser -Filter {GivenName -eq "BadBoy"})

AD PSDrive

Le module Active Directory de PowerShell apporte aussi le PSDrive d’Active Directory. Cela vous permettra de parcourir votre AD comme s’il s’agissait d’un disque dur (avec cd et dir). Les domaines, OU et autres containers se comportent comme des dossiers.

cd AD:
dir

Pour aller plus loin :

Hey, Scripting Guy! Blog – Active Directory Week: Get Started with Active Directory PowerShell

](http://www.tomsitpro.com/articles/powershell-active-directory-cmdlets,2-801.html)