Exemple de code Powershell permettant d’exporter les utilisateurs d’un domaine dans un fichier CSV.
Prérequis :
- Installer RSAT (Outils d’administration Serveur distant Windows) avant :
- pour Windows 10
- pour Windows 11, il vous suffit de suivre les étapes ci-dessous :
- Utilisez le raccourci [touche Windows] + [i] afin d’ouvrir le menu des paramètres de Windows.
- Dans le menu des paramètres, accédez à la rubrique « Applications ».
- Cliquez ensuite sur « Fonctionnalités facultatives ».
- Pour ajouter des fonctionnalités, sélectionnez « Afficher les fonctionnalités » dans la rubrique « Ajouter une fonctionnalité facultative ».
- Windows vous propose alors une liste de l’ensemble des fonctionnalités facultatives disponibles pour votre système.
- Pour afficher plus rapidement les fonctionnalités RSAT, saisissez le mot-clé « RSAT » dans la barre de recherche.
- Une fois les fonctionnalités facultatives filtrées, seuls les outils RSAT s’affichent.
- Sélectionnez les fonctionnalités dont vous avez besoin, puis cliquez sur « Suivant » afin de les activer.
- 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