Question AD - Extraction des groupes des utilisateurs

Plus d'informations
il y a 7 mois 2 semaines #29457 par tcottin
Bonjour,

Je vous expose ma problématique, nous sommes soumis au RGPD et nous cherchons à extrait tous nos comptes utilisateurs présent sur notre AD ainsi que les groupes associés.

voici ma ligne de commande :

[code:1]
get-aduser -Filter {enabled -eq $true} -Properties MemberOf | SELECT Name, SamAccountName, @{ Label='Nbre Groupe'; Expression={ ($_.MemberOf).count } } | Export-CSV E:\Script\Fichier_test.csv
[/code:1]

Cette lignes mes sort uniquement le nombres de groupes présent sur le compte, est-il possible de modifier cette commande afin quelle m'affiche le nom des groupe lié au compte ?

Merci de votre futur aide .

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 1 semaine #29463 par Guillaume_F
Bonjour,

Là, tu demandes le nombre de groupe avec :
@{ Label='Nbre Groupe'; Expression={ ($_.MemberOf).count }

Si tu veux que les noms, enlève le fait de compter les groupes.<br><br>Message édité par: Guillaume_F, à: 21/11/19 16:02

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 1 semaine #29474 par Halouc
[code:1] get-aduser -Filter {enabled -eq $true} -Properties MemberOf | SELECT Name, SamAccountName, @{ Label='Nbre Groupe'; Expression={ $_.MemberOf -join \&quot;, \&quot; } } | Export-CSV E:\Script\Fichier_test.csv[/code:1]

Par contre tu n'as pas la liste de tous les groupes car memberof n'affiche pas les groupes de façon récursive.

Par exemple :
L'utilisateur toto est membre du groupe \&quot;adminsWindows\&quot; et le groupe est membre du groupe \&quot;informatique\&quot;. L'attribut memberof n'affichera que \&quot;adminsWindows\&quot; et pas \&quot;informatique\&quot;.

Pour avoir tous les groupes d'un utilisateur :
[code:1]$sam = toto
$u = get-aduser -ldapfilter \&quot;(samaccountname=$sam)\&quot;
Get-ADObject -LDAPFilter \&quot;(member:1.2.840.113556.1.4.1941:=$($u.DistinguishedName))\&quot;[/code:1]

Plus d'infos ici :
docs.microsoft.com/fr-fr/windows/win32/a...?redirectedfrom=MSDN

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 1 semaine #29486 par rhiwotar
J'utilise ça au travail, j'ai découvert qu'il lui arrivais de rater des éléments mais dans l'ensemble, il fait le taf.
Si jamais quelqu'un a une idée d’amélioration, je prend volontiers

[code:1] $SousGroupe = $SousGroupe.Substring(0,$SousGroupe.Length-$cut.Length)
}

else{
##renseigne temporairement les infos de ListeMembre
$temp = New-Object System.Object


##Complete la ListeMembre

$temp | Add-Member -MemberType NoteProperty -Name \&quot;Racine\&quot; -value $PremierGroupe
if($SousGroupe -like $null){
$temp | Add-Member -MemberType NoteProperty -Name \&quot;SousGroupe\&quot; -value \&quot;-\&quot;
}
else{
$temp | Add-Member -MemberType NoteProperty -Name \&quot;SousGroupe\&quot; -value $SousGroupe
}
$temp | Add-Member -MemberType NoteProperty -Name \&quot;utilisateur\&quot; -value $Membre.name

##Si le SID correspond au domaine (le domaine correspond a celui du serveur executant le script)
try{
##recupere si le compte est actif et sa date de derniere connexion
$UserSID = get-aduser $membre.sid -Properties lastlogondate
$temp | Add-Member -MemberType NoteProperty -Name \&quot;compte actif\&quot; -value $UserSID.enabled
$temp | Add-Member -MemberType NoteProperty -Name \&quot;derniere connexion\&quot; -value $UserSID.lastlogondate
}
catch{
## indique que l'utilisateur n'est pas dans le domaine
$temp | Add-Member -MemberType NoteProperty -Name \&quot;compte actif\&quot; -value \&quot;Hors du domaine\&quot;
$temp | Add-Member -MemberType NoteProperty -Name \&quot;derniere connexion\&quot; -value \&quot;Hors du domaine\&quot;
}


#ajoute l'objet à la collection
$ListeMembre.Add($temp) | Out-Null

##Ligne de test
Write-Host $PremierGroupe \&quot; \&quot; $SousGroupe \&quot; \&quot; $membre.name

}
}
}
$ListeMembre = New-Object System.Collections.ArrayList

$PremierGroupe = read-host
$MembrePremierGroupe = Get-ADGroupMember $PremierGroupe
ListeGroupeAD($MembrePremierGroupe)

$ListeMembre|sort utilisateur|ft
#$ListeMembre|sort utilisateur|Export-Csv -Delimiter \&quot;;\&quot; -Path \&quot;c:\ListeMembreGroupe.csv\&quot;

[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.143 secondes
Propulsé par Kunena