TUTOS.EU

Extraire les utilisateurs d'un groupe

Extraire les utilisateurs d'un groupe AD

De base, en powershell, depuis un serveur AD, on peut extraire les membres d'un groupe et en stocker le résultat dans un fichier CSV ainsi :

Import-Module ActiveDirectory

Get-ADGroupMember -identity "Nom_Groupe_AD" | select name, SamAccountName | sort-object -property name | Export-csv -path C:\Resultat_Extract_membres_groupe_AD.csv -NoTypeInformation
Lien vers le fichier : cliquez ici

Si vous voulez lister tous les membres d'un groupe AD, cad y compris qui sont dans les groupes membres du groupe, il faut ajouter le mot clé récursif

Get-ADGroupMember "Nom du groupe" -Recursive | Select Name, ObjectClass | sort-object -property Name
Lien vers le fichier : cliquez ici

Afficher les ordinateurs inactifs d'un groupe

$MesMembres = Get-ADGroupMember -identity "MonGroupe" | Where { $_.objectClass -eq "computer"}

foreach ($UneLigne in $MesMembres){
    $MonComputer = Get-ADComputer -Identity $UneLigne -Properties *
    if ($MonComputer.Enabled -eq $false){
        write-host $MonComputer.Name
    }
  
}
Lien vers le fichier : cliquez ici

Ci-dessous c'est un peu plus compliqué et du coup peu pratique.
Il faut le module quest etc ... pour que cela fonctionne :

#Version du 1er aout 2013 
Clear-Host
function Get-ScriptDirectory 
{ 
	$Invocation = (Get-Variable MyInvocation -Scope 1).Value 
	$ScriptFolderPath = Split-Path $Invocation.MyCommand.Path 
	return $ScriptFolderPath 
}
function CheckQuestActiveRolesADM()  
{  
	#Test la présence des outils Quest 
	$Error.Clear()  
	Get-PSSnapin Quest.ActiveRoles.ADManagement 
	if($Error.Count -ne 0)  
	{  
		Clear-Host  
		Write-Host "`n`n`t`t ERROR - To run this script, the Quest.ActiveRoles.ADManagement must be installed and registered with Powershell." -foregroundcolor red -backgroundColor yellow
		Write-Host "`t`t go to the Settings menu in Powershell Plus and click on Manage Snapins." -foregroundcolor red -backgroundColor yellow
		break
	}  
}


#Test de la présence des outils Quest 
CheckQuestActiveRolesADM
$NomFichierResultat = "ExtractUsersFromGroup_Result.txt"
$NomGroupe = [string] 
$MonResultat = [string] 
$MonResultat = Read-Host "Login à analyser"
if ($MonResultat.Length -igt 0){
	$EmplacementFichier = Get-ScriptDirectory 
	$EmplacementFichierResultat = "$EmplacementFichier\$NomFichierResultat" 
	$MonFichierResultat = New-Item -type file $EmplacementFichierResultat -Force
	add-content $MonFichierResultat "Groupes AD du compte $MonResultat"

	$GroupeSource = Get-QADGroupMember $MonResultat 
	foreach($OneMember in $GroupeSource) 
	{ 
		add-content $MonFichierResultat $OneMember.DisplayName 
	} 

	#       $objUserSource = Get-QADGroup -SamAccountName $MonResultat 
	#       foreach ($UneLigne in $objUserSource.memberof){ 
	#               $UnGroupe = Get-QADGroup $UneLigne 
	#               $NomGroupe = $UnGroupe.GroupName 
	#               add-content $MonFichierResultat "$NomGroupe" 
	#       } 

} 
else{ 
	Write-Host "Vous n'avez rien saisi" 
}
Write-Host "Terminé !"

Lien vers le fichier : cliquez ici

Pages Web

Site WebDescription
Technet.microsoft.comViewing the Nested Members of a Group

Téléchargement(s)

NomSite Web d origineDescription
PowerGUI.3.5.0.2293.msi http://www.powergui.org/downlo... PowerGui - Interface de développement en PowerShell
Quest_ActiveRolesManageme... http://www.quest.com/powershel... Plug in ActiveRoles de Quest pour gérer l'AD