Question
Lister les groupes locaux d'un utilisateur
- MAGNOUWAI
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 9 ans 6 mois #22304
par MAGNOUWAI
Lister les groupes locaux d'un utilisateur a été créé par MAGNOUWAI
Bonjour,
Je ne connais rien en scripting powershell mais j'ai besoin d'un script qui permet de lister les groupes locaux seulement locaux auxquels appartient un utilisateur. Le nom de l'utilisateur étant un paramètre.
Il y'a un serveur sur lequel est installé l'AD et c'est sur ce serveur qu'on crée les utilisateurs. Sur une autre machine on crée des groupes et c'est sur cette machine que je dois exécuter le script.
J'ai fait des recherches mais jusque là je n'ai pas trouvé le résultat que je veux. Je trouve juste la liste des groupes AD de l'utilisateur:(
Je travaille sous Windows Server 2008 R2 Entreprise.
Prière à vous de m'aider à trouver une solution.
Merci
Je ne connais rien en scripting powershell mais j'ai besoin d'un script qui permet de lister les groupes locaux seulement locaux auxquels appartient un utilisateur. Le nom de l'utilisateur étant un paramètre.
Il y'a un serveur sur lequel est installé l'AD et c'est sur ce serveur qu'on crée les utilisateurs. Sur une autre machine on crée des groupes et c'est sur cette machine que je dois exécuter le script.
J'ai fait des recherches mais jusque là je n'ai pas trouvé le résultat que je veux. Je trouve juste la liste des groupes AD de l'utilisateur:(
Je travaille sous Windows Server 2008 R2 Entreprise.
Prière à vous de m'aider à trouver une solution.
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22319
par Philippe
Réponse de Philippe sur le sujet Re:Lister les groupes locaux d'un utilisateur
salut Nina
dans ce cas tu dois travaillé sur plusieurs sujet :
- listé les ordi concerné (serveurs ou/et stations de travails)
- avoir les droit d'accès à distance a ces ordi
- faire une requête ADSI pour récupéré les groupes de l'utilisateur sur ordi
- faire une boucle pour faire le travail sur chaque ordi listé
si ta bien compris les groupes locaux ne sont pas visible dans l'AD
tu pourra alors utilisé le script donner dans ce forum pour faire le travail<br><br>Message édité par: 6ratgus, à: 23/09/16 13:01
quand tu parle de groupes locaux tu parle bien de groupes sur un seul ordinateur et donc non present sur un autre ordi ou dans l'AD ?Il y'a un serveur sur lequel est installé l'AD et c'est sur ce serveur qu'on crée les utilisateurs. Sur une autre machine on crée des groupes et c'est sur cette machine que je dois exécuter le script.
J'ai fait des recherches mais jusque là je n'ai pas trouvé le résultat que je veux. Je trouve juste la liste des groupes AD de l'utilisateur
dans ce cas tu dois travaillé sur plusieurs sujet :
- listé les ordi concerné (serveurs ou/et stations de travails)
- avoir les droit d'accès à distance a ces ordi
- faire une requête ADSI pour récupéré les groupes de l'utilisateur sur ordi
- faire une boucle pour faire le travail sur chaque ordi listé
si ta bien compris les groupes locaux ne sont pas visible dans l'AD
tu pourra alors utilisé le script donner dans ce forum pour faire le travail<br><br>Message édité par: 6ratgus, à: 23/09/16 13:01
Connexion ou Créer un compte pour participer à la conversation.
- MAGNOUWAI
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 9 ans 5 mois #22320
par MAGNOUWAI
Réponse de MAGNOUWAI sur le sujet Re:Lister les groupes locaux d'un utilisateur
Bonjour Ratgus,
Merci pour ta réponse.
Oui quand je parle des groupes locaux ceux sont des groupes qui n'existent pas dans l'AD. Et c'est seulement sur une machine que je travaille. J'ai déjà accès à distance sur la machine sur laquelle se trouve les groupes locaux.
Je vais regarder le script pour voir si ça va marcher.
Merci beaucoup
Merci pour ta réponse.
Oui quand je parle des groupes locaux ceux sont des groupes qui n'existent pas dans l'AD. Et c'est seulement sur une machine que je travaille. J'ai déjà accès à distance sur la machine sur laquelle se trouve les groupes locaux.
Je vais regarder le script pour voir si ça va marcher.
Merci beaucoup
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22324
par Philippe
Réponse de Philippe sur le sujet Re:Lister les groupes locaux d'un utilisateur
j'ai simplifier le script avoir les groupes d'un utilisateur local :
[code:1]$ordinateur = $env:COMPUTERNAME
$utilisateur = \"nina\"
$adsi = [ADSI]\"WinNT://$ordinateur\"
($adsi.Children | where {$_.SchemaClassName -eq 'user'} | where {$_.name -eq $utilisateur} ).groups() | Foreach-Object {$_.GetType().InvokeMember(\"Name\", 'GetProperty', $null, $_, $null)}
[/code:1]
petit rappel en espérant ne pas me trompé !! :
- un utilisateur local ne peut être que dans un groupe local
- un utilisateur Domaine peut être dans des groupes locaux et du domaine (mais on ne verra dans \"member of\" que les groupes du domaine)
- un groupe local peut avoir comme membres que des utilisateurs locaux et Domaine
- un groupe du domaine ne peut pas avoir comme membres que des utilisateurs du domaine
- un groupe du domaine peut être membre de groupes locaux ou du domaine
- un groupe local ne peut pas être membre de groupes locaux (je ne parle pas des entités de sécurité intégrées)
- un groupe local ne peut pas être membre de groupes du domaine
tout ça pour dire que quand on gère les droits dans un domaine avec des resources local, il faut bien s'organisé en utilisant par exemple ADGLP et un bon système de nommage des groupes pour ne pas ce perdre en route !!!
<br><br>Message édité par: 6ratgus, à: 23/09/16 15:55
[code:1]$ordinateur = $env:COMPUTERNAME
$utilisateur = \"nina\"
$adsi = [ADSI]\"WinNT://$ordinateur\"
($adsi.Children | where {$_.SchemaClassName -eq 'user'} | where {$_.name -eq $utilisateur} ).groups() | Foreach-Object {$_.GetType().InvokeMember(\"Name\", 'GetProperty', $null, $_, $null)}
[/code:1]
petit rappel en espérant ne pas me trompé !! :
- un utilisateur local ne peut être que dans un groupe local
- un utilisateur Domaine peut être dans des groupes locaux et du domaine (mais on ne verra dans \"member of\" que les groupes du domaine)
- un groupe local peut avoir comme membres que des utilisateurs locaux et Domaine
- un groupe du domaine ne peut pas avoir comme membres que des utilisateurs du domaine
- un groupe du domaine peut être membre de groupes locaux ou du domaine
- un groupe local ne peut pas être membre de groupes locaux (je ne parle pas des entités de sécurité intégrées)
- un groupe local ne peut pas être membre de groupes du domaine
tout ça pour dire que quand on gère les droits dans un domaine avec des resources local, il faut bien s'organisé en utilisant par exemple ADGLP et un bon système de nommage des groupes pour ne pas ce perdre en route !!!
Connexion ou Créer un compte pour participer à la conversation.
- MAGNOUWAI
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 9 ans 5 mois #22325
par MAGNOUWAI
Réponse de MAGNOUWAI sur le sujet Re:Lister les groupes locaux d'un utilisateur
Merci pour tes explications
J'ai essayer le script ça n'a pas marché.
Le script m'affiche juste les utilisateurs qui sont sur la machine c'est -à-dire des utilisateurs locaux or mes groupes locaux contiennent des utilisateurs qui ont été créés dans l'AD (des utilisateurs du domaine). Ce que j'aimerais afficher c'est la liste des groupes locaux d'un utilisateur du domaine et pas les groupes d'un utilisateur local.
J'ai essayer le script ça n'a pas marché.
Le script m'affiche juste les utilisateurs qui sont sur la machine c'est -à-dire des utilisateurs locaux or mes groupes locaux contiennent des utilisateurs qui ont été créés dans l'AD (des utilisateurs du domaine). Ce que j'aimerais afficher c'est la liste des groupes locaux d'un utilisateur du domaine et pas les groupes d'un utilisateur local.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22336
par Philippe
Réponse de Philippe sur le sujet Re:Lister les groupes locaux d'un utilisateur
salut Nina
apres quelques longues recherche j'ai réussi a trouvé ce code :
[code:1]$utilisateur = \"tondomaine/lelogin\"
$computerName = $env:COMPUTERNAME
$computer = [ADSI]\"WinNT://$computerName,computer\"
$groups = $computer.psbase.Children | Where-object { $_.psbase.schemaclassname -eq 'group' }
foreach ($group in $groups) {
$users = $group.psbase.invoke(\"Members\"«»)
#write-host $group.name -ForegroundColor Blue
if ($users -ne $null) {
foreach ($user in $users) {
write-host $user.GetType().InvokeMember(\"AdsPath\",\"GetProperty\",$null,$user,$null) -ForegroundColor DarkYellow
if (($user.GetType().InvokeMember(\"Name\",\"GetProperty\",$null,$user,$null) -split \".+/(.+/.+)$\"«») -eq $utilisateur) {
write-host $group.name -ForegroundColor Green
}
}
}
}
[/code:1]
dit moi si ça correspond a tes attentes,
apres quelques longues recherche j'ai réussi a trouvé ce code :
[code:1]$utilisateur = \"tondomaine/lelogin\"
$computerName = $env:COMPUTERNAME
$computer = [ADSI]\"WinNT://$computerName,computer\"
$groups = $computer.psbase.Children | Where-object { $_.psbase.schemaclassname -eq 'group' }
foreach ($group in $groups) {
$users = $group.psbase.invoke(\"Members\"«»)
#write-host $group.name -ForegroundColor Blue
if ($users -ne $null) {
foreach ($user in $users) {
write-host $user.GetType().InvokeMember(\"AdsPath\",\"GetProperty\",$null,$user,$null) -ForegroundColor DarkYellow
if (($user.GetType().InvokeMember(\"Name\",\"GetProperty\",$null,$user,$null) -split \".+/(.+/.+)$\"«») -eq $utilisateur) {
write-host $group.name -ForegroundColor Green
}
}
}
}
[/code:1]
dit moi si ça correspond a tes attentes,
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lister les groupes locaux d'un utilisateur