Trouver des comptes désactivés et inactifs dans AD

PowerShell est de plus en plus l’outil de choix des administrateurs Windows. Le module PowerShell Active Directory comprend plus de 450 applets de commande que vous pouvez utiliser pour collecter des informations sur chaque objet d’Active Directory, vérifier l’état des contrôleurs de domaine, collecter des informations de GPO, etc.

Cet article explique comment vous pouvez utiliser PowerShell pour trouver des comptes d’utilisateurs et d’ordinateurs désactivés et inactifs dans vos domaines Active Directory.

Prérequis

Pour utiliser les scripts fournis ici, vous devez:

  • Installez le module PowerShell Active Directory sur la machine sur laquelle vous allez exécuter le script. Cet ordinateur doit exécuter Windows Server 2012 ou une version ultérieure.
  • Ouvrez la fenêtre PowerShell en mode surélevé.
  • Exécutez le script à l’aide d’informations d’identification autorisées à accéder à tous les domaines Active Directory où vous collectez des données.

Vérification d’un seul domaine

Si vous devez vérifier si un compte d’utilisateur ou d’ordinateur particulier est désactivé ou inactif, vous pouvez le faire manuellement à l’aide du composant logiciel enfichable Utilisateurs et ordinateurs Active Directory (ou ADUC). Cependant, si vous devez identifier des comptes désactivés et inactifs sur un domaine, il est préférable d’automatiser la tâche à l’aide de PowerShell.

Par exemple, pour collecter des comptes d’ordinateur désactivés, vous pouvez utiliser l’applet de commande Get-ADComputer pour rechercher des comptes d’ordinateur dont la propriété Enabled est définie surFalseFalse, ce qui indique que le compte est désactivé:

Get-ADComputer -Filter {(Enabled -eq $False)} -ResultPageSize 2000 -ResultSetSize $null -Server <AnyDomainController> -Properties Name, OperatingSystem

Voici les scripts pour les tâches associées:

  • Vérifiez si un seul compte d’utilisateur est désactivé
  • Obtenez une liste d’utilisateurs désactivés
  • Rechercher des comptes d’ordinateur inactifs
  • Rechercher des comptes d’utilisateur inactifs

Vérification sur plusieurs domaines

Si vous souhaitez collecter des informations à partir de plusieurs domaines Active Directory, vous avez besoin d’un script PowerShell qui peut parcourir chaque domaine de votre forêt Active Directory et stocker les données collectées pour chaque domaine dans un fichier CSV distinct pour l’équipe informatique responsable de ce domaine.

Avant d’exécuter le script fourni ci-dessous, assurez-vous de:

  • Créer un répertoire avec le nom « C:\Temp « sur l’ordinateur local pour stocker les fichiers CSV.
  • Remplacer « enterprise.com  » dans la variableCurCurForestName avec le nom de votre forêt.

Exemple de script

$DomList = "C:\Temp\DomList.TXT"remove-item $DomList -ErrorAction SilentlyContinue$CurForestName="enterprise.com"$GetForest=Get-ADForest $CurForestName$Items = $R.DomainsForEach ($Domains in $Items){ Add-Content $DomList $Domain.Name}Write-Host "Starting Script..."ForEach ($DomInFile in $DomList){ $DisabledCompsCSV = "C:\Temp\DisabledAccounts_Computers_"+$DomInFile+".CSV" Remove-item $DisabledCompsCSV -ErrorAction SilentlyContinue $DisabledUsersCSV = "C:\Temp\DisabledAccounts_Users_"+$DomInFile+".CSV" Remove-item $DisabledUsersCSV -ErrorAction SilentlyContinue $InActiveUsersReport = "C:\Temp\InactiveUsers_"+$DomInFile+".CSV" Remove-item $InActiveUsersReport -ErrorAction SilentlyContinue Get-ADComputer -Server $DomInFile –Filter {(Enabled –eq $False)} –ResultPageSize 2000 –ResultSetSize $null -Properties Name, OperatingSystem | Export-CSV $DisabledCompsCSV -NoTypeInformation Search-ADAccount -Server $DomInFile –AccountDisabled –UsersOnly –ResultPageSize 2000 –ResultSetSize $null | Select-Object SamAccountName, DistinguishedName | Export-CSV $DisabledUsersCSV –NoTypeInformation Search-ADAccount -Server $DomInFile –AccountInActive –TimeSpan 90:00:00:00 –ResultPageSize 2000 –ResultSetSize $null | ?{$_.Enabled –eq $True} | Select-Object Name, SamAccountName, DistinguishedName | Export-CSV $InActiveUsersReport –NoTypeInformation}Write-Host "Script Finished collecting required information. Please check report files under C:\Temp folder"

Partage des rapports

Une fois les rapports CSV générés, vous pouvez envoyer le fichier approprié à chaque équipe informatique par e-mail. Vous pouvez également intégrer l’applet de commande Send-MailMessage dans le script afin que celui-ci envoie automatiquement ces e-mails. Nous discuterons de cette applet de commande dans un prochain article de cette série.

Comment Netwrix peut aider

Bien que l’utilisation de PowerShell soit beaucoup plus rapide que la vérification manuelle des comptes désactivés et inactifs, il faut encore beaucoup de travail pour créer, maintenir et exécuter des scripts. Si vous êtes une personne occupée, envisagez d’utiliser des outils qui automatisent le travail et vous font gagner du temps. Par exemple, armé du Tracker Utilisateur inactif gratuit, vous pourrez rapidement nettoyer ou verrouiller tous vos comptes d’utilisateurs obsolètes. Et une solution robuste comme Netwrix Auditor pour Active Directory vous permettra de rendre compte de l’état du compte en quelques clics, ainsi que d’automatiser les audits, de découvrir les points faibles de la sécurité et de rationaliser les enquêtes sur les incidents.

Nirmal est un MCSEx3, MCITP, et il a reçu le prix Microsoft MVP dans les services d’annuaire et les réseaux Windows. Il est spécialisé dans les scripts PowerShell, Microsoft Azure, Office 365, les services d’annuaire, les clusters de basculement, Hyper-V et les produits System Center.

Write a Comment

Votre adresse e-mail ne sera pas publiée.