Exporter les utilisateurs d’un domaine dans un fichier CSV avec Powershell

  .ps1, Scripts, Windows

Exemple de code Powershell permettant d’exporter les utilisateurs d’un domaine dans un fichier CSV.


Prérequis :

  1. Installer RSAT (Outils d’administration Serveur distant Windows) avant :
    1. pour Windows 10
    2. pour Windows 11, il vous suffit de suivre les étapes ci-dessous :
      1. Utilisez le raccourci [touche Windows] + [i] afin d’ouvrir le menu des paramètres de Windows.
      2. Dans le menu des paramètres, accédez à la rubrique « Applications ».
      3. Cliquez ensuite sur « Fonctionnalités facultatives ».
      4. Pour ajouter des fonctionnalités, sélectionnez « Afficher les fonctionnalités » dans la rubrique « Ajouter une fonctionnalité facultative ».
      5. Windows vous propose alors une liste de l’ensemble des fonctionnalités facultatives disponibles pour votre système.
      6. Pour afficher plus rapidement les fonctionnalités RSAT, saisissez le mot-clé « RSAT » dans la barre de recherche.
      7. Une fois les fonctionnalités facultatives filtrées, seuls les outils RSAT s’affichent.
      8. Sélectionnez les fonctionnalités dont vous avez besoin, puis cliquez sur « Suivant » afin de les activer.
  2. Remplacer %DOMAINE% par votre nom de domaine

##############################################
##### IMPORTE LE MODULE ACTIVE DIRECTORY #####
##############################################
Import-Module ActiveDirectory

##############################################################
##### RECUPERE LE DOSSIER COURANT OU SE TROUVE LE SCRIPT #####
##############################################################
$CurrentDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition) ##### DOSSIERS COURANT #####
$FileName = "$(Get-Date -Format yyyyMMdd)_Active_Directory_Users.csv" ##### NOM DU FICHIER A COPIER #####
$SearchBaseAD = "OU=Employees,DC=corp,DC=%DOMAINE%,DC=com" ##### CHEMIN DE LA BASE ACTIVE DIRECTORY #####

###################################################
##### SUPPRIME LE FICHIER DU JOUR S'IL EXISTE #####
###################################################
If (Test-Path $CurrentDir\$FileName) { Remove-Item $CurrentDir\$FileName }

clear ##### EFFACE L'AFFICHAGE #####

Write-host ""
Write-host ""
Write-host "EXPORTE TOUS LES UTILISATEURS SE TROUVANT DANS "$SearchBaseAD ##### AFFICHE DU TEXTE A L'ECRAN #####
Write-host ""
Write-host ""

########################################################
##### EXPORTE LES UTILISATEURS DANS LE FICHIER CSV #####
########################################################
get-ADUser -Filter "*" -SearchBase $SearchBaseAD -properties physicalDeliveryOfficeName, name, sn, givenName, employeeType, `
lastLogonTimestamp, accountExpires, whenCreated, c, company, telephonenumber, description, info, targetAddress, msRTCSIP-PrimaryUserAddress, `
logonCount, mail, mobile, msRTCSIP-Line | select-object physicalDeliveryOfficeName, name, sn, givenName, employeeType, `
@{n='lastLogonTimestamp';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='accountExpires';e={[DateTime]::FromFileTime($_.accountExpires)}}, `
whenCreated, c, company, telephonenumber, description, info, targetAddress, msRTCSIP-PrimaryUserAddress, logonCount, mail, mobile, msRTCSIP-Line | `
Export-Csv -notypeinformation -encoding UTF8 -path $CurrentDir\$FileName -Delimiter ";" -Append

Write-host ""
Write-host ""
Write-host "EXPORTATON TERMINEE !!!"
Write-host ""
Write-host ""

Pause

 

Laisser un commentaire