Active Directory (RSAT PowerShell)
Cmdlets du module ActiveDirectory (RSAT) et outils en ligne de commande pour administrer et dépanner un domaine : comptes, groupes, réplication, GPO, contrôleurs de domaine.
Pour commencer
Prérequis
Installez les outils RSAT une fois (Windows 11), puis importez le module.
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0Invite élevée. Pour les GPO : Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0.
Import-Module ActiveDirectory; Get-ADDomain | Select DNSRoot,PDCEmulator,DomainModeVérifie la connexion au domaine.
Résultats
Testez d'abord avec -WhatIf quand il existe. Les modifications d'AD sont répliquées à tous les contrôleurs de domaine : préférez une unité d'organisation de test.
Liste complète
Afficher les 29 entrées
Get-ADUserGet-ADUser -Identity <sam> | -Filter <expression> [-Properties <liste>]Lit un ou plusieurs comptes utilisateur.
Get-ADUser jdupont -Properties * | Select Name,Enabled,LastLogonDate,PasswordLastSet,LockedOut Get-ADUser -Filter {Enabled -eq $true -and Department -eq 'Compta'} -Properties Department,Mail | Select Name,Mail Get-ADUser -Filter * -SearchBase 'OU=Employes,DC=contoso,DC=local' | Measure-ObjectNew-ADUserNew-ADUser -Name <nom> -SamAccountName <sam> -AccountPassword <SecureString> -Enabled $true -Path <OU>Crée un compte utilisateur.
New-ADUser -Name 'Jean Dupont' -GivenName Jean -Surname Dupont -SamAccountName jdupont -UserPrincipalName jdupont@contoso.local -Path 'OU=Employes,DC=contoso,DC=local' -AccountPassword (Read-Host -AsSecureString 'Mot de passe') -Enabled $true -ChangePasswordAtLogon $trueSet-ADUserSet-ADUser -Identity <sam> [-Propriété valeur]Modifie les attributs d'un utilisateur (service, titre, manager, expiration).
Set-ADUser jdupont -Department 'Compta' -Title 'Comptable' -Manager mmartin Set-ADUser jdupont -AccountExpirationDate (Get-Date).AddDays(30) Set-ADUser jdupont -Replace @{ extensionAttribute1 = 'valeur' }Unlock-ADAccountUnlock-ADAccount -Identity <sam>Déverrouille un compte verrouillé après trop de mots de passe erronés.
Unlock-ADAccount jdupont Search-ADAccount -LockedOut | Unlock-ADAccount -WhatIfSet-ADAccountPasswordSet-ADAccountPassword -Identity <sam> -Reset -NewPassword <SecureString>Réinitialise le mot de passe d'un compte.
Set-ADAccountPassword jdupont -Reset -NewPassword (Read-Host -AsSecureString 'Nouveau mot de passe') Set-ADUser jdupont -ChangePasswordAtLogon $trueSearch-ADAccountSearch-ADAccount [-LockedOut] [-AccountDisabled] [-AccountInactive -TimeSpan <j>] [-PasswordExpired] [-PasswordNeverExpires]Retrouve les comptes verrouillés, désactivés, inactifs ou au mot de passe expiré.
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly | Select Name,LastLogonDate Search-ADAccount -LockedOut | Select Name,LockoutTime Search-ADAccount -PasswordNeverExpires -UsersOnly | Select NameDisable-ADAccountDisable-ADAccount -Identity <sam>Désactive un compte (départ d'un collaborateur) ; Enable-ADAccount le réactive.
Disable-ADAccount jdupont Move-ADObject (Get-ADUser jdupont) -TargetPath 'OU=Desactives,DC=contoso,DC=local'Get-ADGroupMemberGet-ADGroupMember -Identity <groupe> [-Recursive]Liste les membres d'un groupe, y compris dans les groupes imbriqués avec -Recursive.
Get-ADGroupMember 'Administrateurs du domaine' -Recursive | Select Name,SamAccountName Get-ADGroupMember 'GRP_Compta' | Get-ADUser -Properties Mail | Select Name,MailAdd-ADGroupMemberAdd-ADGroupMember -Identity <groupe> -Members <comptes>Ajoute des membres à un groupe ; Remove-ADGroupMember les retire.
Add-ADGroupMember -Identity GRP_Compta -Members jdupont,mmartin Remove-ADGroupMember -Identity GRP_Compta -Members jdupont -Confirm:$falseGet-ADPrincipalGroupMembershipGet-ADPrincipalGroupMembership -Identity <sam>Liste les groupes dont un utilisateur ou un ordinateur est membre.
Get-ADPrincipalGroupMembership jdupont | Select Name,GroupCategory | Sort Name Get-ADUser jdupont -Properties MemberOf | Select -Expand MemberOfNew-ADGroupNew-ADGroup -Name <nom> -GroupScope Global|DomainLocal|Universal -GroupCategory Security -Path <OU>Crée un groupe de sécurité ou de distribution.
New-ADGroup -Name GRP_Compta -GroupScope Global -GroupCategory Security -Path 'OU=Groupes,DC=contoso,DC=local' -Description 'Service comptabilité'Get-ADComputerGet-ADComputer -Filter <expression> [-Properties <liste>]Lit les comptes d'ordinateurs (système, dernière connexion).
Get-ADComputer -Filter * -Properties OperatingSystem,LastLogonDate | Group OperatingSystem | Select Count,Name Get-ADComputer -Filter {LastLogonDate -lt $date} -Properties LastLogonDate | Select Name,LastLogonDateReset-ComputerMachinePasswordReset-ComputerMachinePassword -Server <DC> -Credential <compte>Répare la relation d'approbation d'une machine membre du domaine (à lancer sur la machine).
Reset-ComputerMachinePassword -Server DC01 -Credential CONTOSO\adminAD Test-ComputerSecureChannel -Repair -Credential CONTOSO\adminADMove-ADObjectMove-ADObject -Identity <DN> -TargetPath <OU>Déplace un utilisateur, un ordinateur ou un groupe vers une autre OU.
Get-ADComputer PC01 | Move-ADObject -TargetPath 'OU=Postes,DC=contoso,DC=local'repadmin /replsummaryrepadmin /replsummary | /showrepl | /syncall /AdePRésumé de la réplication AD et forçage de la synchronisation entre contrôleurs de domaine.
repadmin /replsummary repadmin /showrepl * /csv | ConvertFrom-Csv | Where 'Number of Failures' -gt 0 repadmin /syncall /AdePdcdiagdcdiag [/s:<DC>] [/test:<test>] [/v]Diagnostic complet d'un contrôleur de domaine (DNS, réplication, FSMO, services).
dcdiag /v dcdiag /test:dns /v /e dcdiag /s:DC01 /test:replicationsnetdom query fsmo / Get-ADForestnetdom query fsmoIdentifie les contrôleurs détenant les cinq rôles FSMO.
netdom query fsmo Get-ADDomain | Select PDCEmulator,RIDMaster,InfrastructureMaster Get-ADForest | Select SchemaMaster,DomainNamingMasterMove-ADDirectoryServerOperationMasterRoleMove-ADDirectoryServerOperationMasterRole -Identity <DC> -OperationMasterRole PDCEmulatorTransfère un rôle FSMO vers un autre contrôleur de domaine.
Move-ADDirectoryServerOperationMasterRole -Identity DC02 -OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMasterGet-ADDomainControllerGet-ADDomainController -Filter * | Select Name,IPv4Address,Site,OperatingSystemListe les contrôleurs de domaine et leurs rôles.
Get-ADDomainController -Filter * | Select Name,IPv4Address,Site,IsGlobalCatalog Get-ADDomainController -Discover -Service PrimaryDCGet-ADReplicationFailureGet-ADReplicationFailure -Target <DC>Échecs de réplication d'un contrôleur de domaine.
Get-ADReplicationFailure -Target DC01 | Select Server,Partner,FirstFailureTime,FailureCount,LastError Get-ADReplicationPartnerMetadata -Target * -Scope Server | Select Server,Partner,LastReplicationSuccessGet-GPOGet-GPO -All | -Name <nom>Liste les objets de stratégie de groupe.
Get-GPO -All | Select DisplayName,GpoStatus,ModificationTime | Sort ModificationTime -DescendingGet-GPOReportGet-GPOReport -All -ReportType Html -Path <fichier>Exporte le contenu d'une ou de toutes les GPO en rapport HTML ou XML.
Get-GPOReport -Name 'Postes - Sécurité' -ReportType Html -Path C:\Temp\gpo.html Get-GPOReport -All -ReportType Xml -Path C:\Temp\toutes-gpo.xmlNew-GPLinkNew-GPLink -Name <GPO> -Target <OU> [-LinkEnabled Yes] [-Enforced Yes]Lie une GPO à une unité d'organisation, un site ou le domaine.
New-GPLink -Name 'Postes - Sécurité' -Target 'OU=Postes,DC=contoso,DC=local' -LinkEnabled Yes Get-GPInheritance -Target 'OU=Postes,DC=contoso,DC=local'Invoke-GPUpdateInvoke-GPUpdate -Computer <nom> -ForceForce l'application des GPO sur une machine distante (équivalent de gpupdate /force).
Invoke-GPUpdate -Computer PC01 -Force -RandomDelayInMinutes 0 gpresult /s PC01 /rBackup-GPOBackup-GPO -All -Path <dossier>Sauvegarde les GPO (et Restore-GPO pour les rétablir).
Backup-GPO -All -Path D:\SauvegardeGPO Restore-GPO -Name 'Postes - Sécurité' -Path D:\SauvegardeGPOGet-ADObject (corbeille AD)Get-ADObject -Filter 'isDeleted -eq $true' -IncludeDeletedObjectsRetrouve et restaure un objet supprimé quand la corbeille AD est activée.
Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "Jean*"' -IncludeDeletedObjects -Properties LastKnownParent Get-ADObject -Filter 'Name -like "Jean*"' -IncludeDeletedObjects | Restore-ADObjectGet-ADDefaultDomainPasswordPolicyGet-ADDefaultDomainPasswordPolicy ; Get-ADFineGrainedPasswordPolicy -Filter *Stratégie de mot de passe du domaine et stratégies affinées.
Get-ADDefaultDomainPasswordPolicy Get-ADUserResultantPasswordPolicy jdupontGet-ADUser (audit : comptes jamais connectés, mots de passe anciens)Get-ADUser -Filter {...} -Properties PasswordLastSet,LastLogonDateRequêtes d'audit courantes sur les comptes.
Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordLastSet | Where PasswordLastSet -lt (Get-Date).AddDays(-365) | Select Name,PasswordLastSet Get-ADUser -Filter * -Properties LastLogonDate | Where {$_.LastLogonDate -eq $null -and $_.Enabled} | Select Name Get-ADUser -Filter {AdminCount -eq 1} -Properties AdminCount | Select Nameldifde / csvdecsvde -f <export.csv> -r "(objectClass=user)" -l <attributs>Exporte ou importe des objets AD en CSV (csvde) ou LDIF (ldifde).
csvde -f C:\Temp\users.csv -r "(&(objectCategory=person)(objectClass=user))" -l sAMAccountName,mail,displayName ldifde -f C:\Temp\group.ldf -d "CN=GRP_Compta,OU=Groupes,DC=contoso,DC=local"