Actions simples
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Administration Active Directory |
| Module | ActiveDirectory
|
| Objet | Recettes de gestion des comptes, groupes et ordinateurs |
| Voir aussi | Get-ADUser · Get-credential |
Recueil de recettes PowerShell courantes pour l'administration Active Directory
(module ActiveDirectory). Les noms de domaine et de comptes utilisés
ci-dessous sont fictifs (domaine de démonstration Globomantics.local).
Réinitialiser le mot de passe d'un utilisateur
$new = Read-Host "Enter the new password" -AsSecureString
Set-ADAccountPassword UserName -NewPassword $new
Set-ADAccountPassword UserName -NewPassword (ConvertTo-SecureString -AsPlainText -String "P@ssword" -Force)
# Forcer le changement de mot de passe à la prochaine ouverture de session
Set-ADUser UserName -ChangePasswordAtLogon $True
Désactiver / réactiver un compte
# Mode simulation (-WhatIf)
Disable-ADAccount Stef -WhatIf
# What if: Performing operation "Set" on Target
# "CN=Jack Frost,OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".
# Exécution
Disable-ADAccount Stef
# Désactivation en masse
Get-ADUser -Filter "department -eq 'sales'" | Disable-ADAccount
Débloquer un compte
Unlock-ADAccount Stef
Supprimer un compte
# Mode simulation
Remove-ADUser stef -WhatIf
Get-ADUser -Filter "enabled -eq 'false'"
# Supprimer les comptes désactivés inchangés depuis plus de 180 jours
Get-ADUser -Filter "enabled -eq 'false'" -Property WhenChanged -SearchBase "OU=Employees,DC=Globomantics,DC=Local" |
Where-Object { $_.WhenChanged -le (Get-Date).AddDays(-180) } | Remove-ADUser -WhatIf
Rechercher des groupes vides
Get-ADGroup -Filter * | Where-Object { -Not ($_ | Get-ADGroupMember) } | Select Name
Get-ADGroup -Filter "members -notlike '*' -AND GroupScope -eq 'Universal'" `
-SearchBase "OU=Groups,OU=Employees,DC=Globomantics,DC=local" | Select Name,Group*
Ajouter un membre dans un groupe
Add-ADGroupMember "Chicago IT" -Members Stef
Add-ADGroupMember "Chicago Employees" -Member (Get-ADUser -Filter "city -eq 'Chicago'")
Get-ADUser -Filter "city -eq 'Chicago'" | ForEach-Object { Add-ADGroupMember "Chicago Employees" -Member $_ }
Énumérer les membres d'un groupe
Get-ADGroupMember "Domain Admins"
Get-ADGroupMember "Chicago All Users" -Recursive | Select DistinguishedName
Get-ADUser jfrost -Property MemberOf | Select -ExpandProperty MemberOf
Trouver un compte ordinateur obsolète
Get-ADComputer -Filter "Passwordlastset -lt '1/1/2012'" -Properties * | Select name,passwordlastset
Get-ADComputer -Filter "LastlogonTimestamp -gt 0" -Properties * |
Select name,lastlogontimestamp,
@{Name="LastLogon";Expression={[datetime]::FromFileTime($_.Lastlogontimestamp)}},passwordlastset |
Sort LastLogonTimeStamp
# Pour créer un filtre sur date, la convertir en FileTime
$cutoff = (Get-Date "1/1/2012").ToFileTime()
Get-ADComputer -Filter "(lastlogontimestamp -lt $cutoff) -or (lastlogontimestamp -notlike '*')" -Property * |
Select Name,LastlogonTimestamp,PasswordLastSet
Désactiver un compte ordinateur
Disable-ADAccount -Identity "chi-srv01$" -WhatIf
Get-ADComputer "chi-srv01" | Disable-ADAccount
Get-ADComputer -Filter "Passwordlastset -lt '1/1/2012'" -Properties * | Disable-ADAccount
Retrouver des ordinateurs
Get-ADComputer -Filter * -Properties OperatingSystem |
Select OperatingSystem -Unique | Sort OperatingSystem
Get-ADComputer -Filter "OperatingSystem -like '*Server*'" `
-Properties OperatingSystem,OperatingSystemServicePack | Select Name,Op* | Format-List
Rapport d'ancienneté des mots de passe
Get-ADUser -Filter "Enabled -eq 'True' -AND PasswordNeverExpires -eq 'False'" `
-Properties PasswordLastSet,PasswordNeverExpires,PasswordExpired |
Select DistinguishedName,Name,pass*,
@{Name="PasswordAge"; Expression={(Get-Date)-$_.PasswordLastSet}} |
Sort PasswordAge -Descending |
ConvertTo-Html -Title "Password Age Report" | Out-File c:\Work\pwage.htm