logo_mini_comments

Sans partage, la connaissance n'est rien !

Fil de navigation

Voici une liste de commandes et de scripts en PowerShell utiles afin de pouvoir récupérer et exporter des informations depuis votre Active Directory.

 

One-Liners :

Lancer le Module Active Directory pour Windows PowerShell afin de pouvoir exécuter ces commandes.

 

#OL01 - Exporter les computers de l'AD dans un fichier .csv

Colonnes récupérées : Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description

Get-ADComputer -Filter * -Properties * | Select-Object Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description | Export-Csv -Path "C:\Temp\Computers.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL02 - Exporter les Domain Controllers de l'AD dans un fichier .csv

Colonnes récupérées : Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description

Get-ADComputer -Filter * -SearchBase "OU=Domain Controllers,DC=adpoc,DC=lan" -Properties * | Select-Object Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description | Export-Csv -Path "C:\Temp\Domain_Controllers.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL03 - Exporter les users de l'AD dans un fichier .csv

Colonnes récupérées : SamAccountName, GivenName, Surname, Enabled, LastLogonDate, Description

Get-ADUser -Filter * -Properties * | Select-Object SamAccountName, GivenName, Surname, Enabled, LastLogonDate, Description | Export-Csv -Path "C:\Temp\Users.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL04 - Exporter les groupes de l'AD dans un fichier .csv

Colonnes récupérées : Name, GroupScope, GroupCategory, Description

Get-ADGroup -Filter * -Properties * | Select-Object Name, GroupScope, GroupCategory, Description | Export-Csv -Path "C:\Temp\ADGroups.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL05 - Exporter les membres d'un groupe AD dans un fichier .csv

Colonnes récupérées : Name, SamAccountName

Get-ADGroupMember -Identity "GROUP_NAME" | Select-Object Name, SamAccountName | Export-Csv -Path "C:\Temp\Members.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL06 - Exporter les groupes AD d'appartenance à un user, computer, groupe ou un compte de service dans un fichier .csv

Colonnes récupérées : Name, GroupScope

Get-ADPrincipalGroupMembership -Identity "User1" | Select-Object Name, GroupScope | Export-Csv -Path "C:\Temp\Membership.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL07 - Ajouter des users AD (stockés dans un fichier csv) dans un groupe de sécurité

Import-Csv -Path "C:\Temp\Add-Users.csv" -Delimiter ";" | ForEach-Object { Add-ADGroupMember -Identity $_.GroupName -Members $_.SamAccountName }

 

Exemple du contenu du fichier Add-Users.csv avec les logins des comptes et les groupes AD :

SamAccountName;GroupName
User1;GroupName1
User2;GroupName2
User3;GroupName3

 

#OL08 - Supprimer des users AD (stockés dans un fichier csv) d'un groupe de sécurité

Import-Csv -Path "C:\Temp\Remove-Users.csv" -Delimiter ";" | ForEach-Object { Remove-ADGroupMember -Identity $_.GroupName -Members $_.SamAccountName -Confirm:$false }

 

Exemple du contenu du fichier Remove-Users.csv avec les logins des comptes et les groupes AD :

SamAccountName;GroupName
User1;GroupName1
User2;GroupName2
User3;GroupName3

 

#OL09 - Décocher l'option "never expires" sur des comptes stockés dans un fichier .csv

Import-Csv -Path "C:\Temp\Users.csv" | ForEach-Object { Set-ADUser -Identity $_.SamAccountName -PasswordNeverExpires $false }

 

Exemple du contenu du fichier Users.csv avec les logins des comptes AD :

SamAccountName
User1
User2
User3

 

#OL10 - Exporter les groupes vides de l'AD dans un fichier .csv

Colonnes récupérées : Name, GroupScope, GroupCategory, Description

Get-ADGroup -Filter * -Properties * | Where {-not $_.Members} | Select-Object Name, GroupScope, GroupCategory, Description | Export-Csv -Path "C:\Temp\ADGroups-Empty.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL11 - Exporter les users expirés de l'AD dans un fichier .csv

Colonnes récupérées : Name, SamAccountName, ObjectClass, AccountExpirationDate, LastLogonDate

Search-ADAccount -AccountExpired | Select-Object Name, SamAccountName, ObjectClass, AccountExpirationDate, LastLogonDate | Export-Csv -Path "C:\Temp\ExpiredAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL12 - Exporter les users désactivés de l'AD dans un fichier .csv

Colonnes récupérées : Name, ObjectClass, SamAccountName

Search-ADAccount -AccountDisabled -UsersOnly | Select-Object Name, ObjectClass, SamAccountName | Export-Csv -Path "C:\Temp\DisabledAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL13 - Exporter les users inactifs depuis 30 jours de l'AD dans un fichier .csv

Colonnes récupérées : Name, ObjectClass, SamAccountName

Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 30.00:00:00 | Select-Object Name, ObjectClass, SamAccountName | Export-Csv -Path "C:\Temp\InactiveAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL14 - Exporter les users de l'AD qui ont un mot de passe qui n'expire jamais dans un fichier .csv

Colonnes récupérées : Name, ObjectClass, SamAccountName

Search-ADAccount -PasswordNeverExpires | Select-Object Name, ObjectClass, SamAccountName | Export-Csv -Path "C:\Temp\PasswordNeverExpiresAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL15 - Créer des comptes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Add-Accounts.csv" -Delimiter ";" | ForEach-Object { New-ADUser $_.SamAccountName -GivenName $_.SamAccountName -displayName $_.SamAccountName -Description $_.AccountDescription -UserPrincipalName $_.SamAccountName -AccountPassword (ConvertTo-SecureString $_.AccountPassword -AsPlainText -Force) -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNeverExpires $true -Enabled $true -Path $_.AccountOU -OtherAttributes @{businessCategory=$_.AccountBusinessCategory} }

 

Exemple du contenu du fichier Add-Accounts.csv avec les informations des comptes AD :

SamAccountName;AccountPassword;AccountDescription;AccountBusinessCategory;AccountOU
svct_App01;Pa$$w0rD;Service account TEST;TEST;"OU=Service Accounts,DC=lab,DC=microsoft,DC=com"
svcr_App01;Pa$$w0rD;Service account REC;REC;"OU=Service Accounts,DC=lab,DC=microsoft,DC=com"
svcp_App01;Pa$$w0rD;Service account PROD;PROD;"OU=Service Accounts,DC=lab,DC=microsoft,DC=com"

 

#OL16 - Désactiver des comptes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Disable-Accounts.csv" | ForEach-Object { Disable-ADAccount -Identity $_.SamAccountName }

 

Exemple du contenu du fichier Disable-Accounts.csv avec les logins des comptes AD :

SamAccountName
User1
User2
User3

 

#OL17 - Réactiver des comptes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Enable-Accounts.csv" | ForEach-Object { Enable-ADAccount -Identity $_.SamAccountName }

 

Exemple du contenu du fichier Enable-Accounts.csv avec les logins des comptes AD :

SamAccountName
User1
User2
User3

 

#OL18 - Créer des groupes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Add-Groups.csv" -Delimiter ";" | ForEach-Object { New-ADGroup -Name $_.GroupName -GroupScope $_.GroupScope -Description $_.GroupDescription -Path $_.GroupOU }

 

Exemple du contenu du fichier Add-Groups.csv avec les informations des groupes AD :

GroupName;GroupScope;GroupDescription;GroupOU
GroupName1;DomainLocal;GroupDescription1;"OU=Groupes,DC=lab,DC=microsoft,DC=com"
GroupName2;Global;GroupDescription2;"OU=Groupes,DC=lab,DC=microsoft,DC=com"
GroupName3;Universal;GroupDescription3;"OU=Groupes,DC=lab,DC=microsoft,DC=com"