Question Lister les membres d'un groupe (serveur ou AD)

Plus d'informations
il y a 17 ans 5 mois #517 par Jacques Barathon
Utile pour énumérer les membres d'un groupe - marche avec les groupes de l'AD ou les groupes d'un ordinateur (local ou distant):

[code:1]# get-groupmember.ps1
#
# Enumère les membres d'un groupe.
#
# Usage: get-member $group [$server]
#
# $group est le nom du groupe à parcourir.
# $server est le nom du serveur qui contient le groupe.
#
# Si $server n'est pas précisé, la machine locale est interrogée.
# On peut préciser un domaine à la place d'un nom de serveur.
#

param ($group, $server = \".\"«»)

if (! $group) {
throw \"Vous devez préciser le nom du groupe à parcourir.\"
}

$ADSIGroup = [ADSI]\"WinNT://$server/$group\"

foreach ($member in $ADSIGroup.Members()) {

$ADSIName = $member.GetType().InvokeMember(\"AdsPath\",\"GetProperty\",$null,$member,$null)

# Dans certains cas, on peut avoir un SID à la place du nom d'utilisateur.
# Dans ces cas-là, on affiche le SID sans chercher à reconstruire la
# chaîne domaine\utilisateur:

if ($ADSIName -match \"[^/]/[^/]\"«») {
[String]::Join(\"\\", $ADSIName.Split(\"/\"«»)[-2..-1])
}
else {
$ADSIName.Split(\"/\"«»)[-1]
}
}
[/code:1]

Le script n'affiche que les noms des utilisateurs (ou groupes) sous la forme domaine\utilisateur, ou éventuellement le SID si celui-ci n'est pas résolu. Pour afficher d'autres informations (telles que nom complet, éventuellement d'autres infos stockées dans l'AD) il faudra récupérer la sortie du script et la passer à un autre script qui interrogera l'AD pour obtenir ces infos supplémentaires.

En l'état, ce script m'est très utile pour récupérer les membres des groupes Administrateurs ou Utilisateurs avec pouvoir sur des PC du réseau.

Janel

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

Plus d'informations
il y a 17 ans 4 mois #534 par Robin Lemesle
Merci Janel pour ce script, je propose de le mettre dans la bibliothèque de scripts si tu nous donnes ton accord.



Rob

Robin MVP PowerShell

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

Plus d'informations
il y a 17 ans 4 mois #597 par Jacques Barathon
Bon pour accord! :)

Janel

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

Plus d'informations
il y a 16 ans 4 mois #2583 par yahway
bonjour,

Merci pour ce script qui m'est vraiment utile.

J'ai une question, étant débutant, j'aimerai que ce script soit executé sur plusieurs PC de mon domaine, ces pc étant listé dans un fichier .txt.

est il possible que la variable $server s'appuie sur ce fichier?

merci de votre aide.

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

Plus d'informations
il y a 16 ans 4 mois #2585 par daniel soares
hello c'est tout a fait possible avec la cmdlette
get-content qui récupère les lignes d'un fichier texte

dans le cas ou tu as un nom de serveur par ligne
[code:1]
get-content -path cheminfichier |
foreach{$server = $_;$server | out-host}

[/code:1]

ou un peu plus complexe si tu as un fichier avec plusieurs valeurs en colonnes (ici le séparateur est la virgule)
[code:1]
get-content -Path ./server.txt | foreach{($_.split(\",\"«»))[0]}
[/code:1]
split decoupe les lignes en fonction du séparateur specifié ici je récupère la première colonne qui porte l'indice [0]
tu peux pousser un peu plus les possibilités en utilisant import-csv qui permet d'être plus clair dans le script tout en utilisant un fichier un peu plus fournis

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

Plus d'informations
il y a 12 ans 9 mois #11216 par Kabeem
Bonjour,

Pardon de \"déterrer\" ce post mais je débarque sur la planète PS et j'avais un besoin qui correponds au script proposé par Janel, connaître les membres du groupe admin local d'une liste de serveurs distants et je ne vois pas comment intégrer la liste des serveurs (get-content...) dans le script de Janel (dans le foreache en fait) pour pouvoir obtenir le resultat pour chaque serveur de ma liste. Je ne sais pas si c'est clair mais si oui, merci pour votre aide.

cordialement,

Kabeem.

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

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