L' Get-ADGroupMember
applet de commande de PowerShell renvoie les membres d'un groupe spécifique. Existe-t-il une applet de commande ou une propriété pour obtenir tous les groupes dont un utilisateur particulier est membre?
J'ai corrigé mon erreur: Get-Member
devrait être Get-ADGroupMember
.
net user /domain username
, vérifiez également d'autres méthodes sur Obtenir des groupes dans lesquels un utilisateur est membre Utilisation de PowerShellRéponses:
Get-ADPrincipalGroupMembership le fera.
la source
get-aduser $username -Properties memberof | select -expand memberof
a bien fonctionné cependant.import-module activedirectory
sur la ligne de commande PowerShell, alors cela devrait fonctionner.Une seule ligne, aucun module nécessaire, utilise l'utilisateur actuellement connecté:
Qudos à cet article vbs / powershell: http://technet.microsoft.com/en-us/library/ff730963.aspx
la source
$env:username
à$username
et définie avec$username = "testuser"
pour effectuer facilement une substitution de variable pour d'autres recherches d'utilisateurs.Une alternative plus concise à celle publiée par Canoas, pour obtenir l'adhésion au groupe pour l'utilisateur actuellement connecté.
Je suis tombé sur cette méthode dans ce billet de blog: http://www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/
Une version encore meilleure qui utilise une regex pour supprimer le guff LDAP et ne laisse que les noms de groupe:
Plus de détails sur l'utilisation de l'accélérateur de type [ADSISEARCHER] peuvent être trouvés sur le blog de scripting guy: http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type -accelerator-to-search-active-directory.aspx
la source
| Sort-Object
pour le rendre encore plus lisible.Vieille école de CMD:
la source
la source
Si vous ne parvenez pas à faire fonctionner Get-ADPrincipalGroupMembership, vous pouvez essayer de vous connecter en tant qu'utilisateur, puis utiliser.
la source
$id = [Security.Principal.WindowsIdentity]("username")
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount])}
.Obtenez l'appartenance à un groupe pour un utilisateur:
Voir Obtenir l'adhésion à un groupe pour un utilisateur
Mais consultez également les commandes PowerShell gratuites de Quest pour Active Directory .
[ Modifier : la commande Get-ADPrincipalGroupMembership est incluse dans Powershell depuis la v2 avec Windows 2008 R2. Voir la réponse de kstrauss ci-dessous.]
la source
Get-Member
est une applet de commande pour répertorier les membres d'un .NETobject
. Cela n'a rien à voir avec l'appartenance à un utilisateur / groupe. Vous pouvez obtenir l'appartenance au groupe de l'utilisateur actuel comme suit:Si vous avez besoin d'accéder à des informations de groupe d'utilisateurs arbitraires, la suggestion de @tiagoinu d'utiliser les applets de commande Quest AD est une meilleure solution.
la source
Tout d'abord, importez le module activedirectory:
Puis émettez cette commande:
Cela affichera les membres du groupe spécifié.
la source
Pas besoin de longs scripts quand il s'agit d'une simple ligne unique.
Commande QUEST
Commande MS AD
Je trouve que le cmd MS AD est plus rapide, mais certaines personnes préfèrent les Quest.
Steve
la source
Get-Member n'est pas pour obtenir l'adhésion au groupe de l'utilisateur. Si vous souhaitez obtenir une liste des groupes auxquels appartient un utilisateur sur le système local, vous pouvez le faire en:
Dans la requête ci-dessus, remplacez DemoUser1 par le nom d'utilisateur souhaité et le DomainName par le nom de votre ordinateur local ou le nom de domaine.
la source
Utilisation:
Cela transfère la sortie de la commande dans un fichier CSV .
la source
Cela devrait vous fournir les détails de l'utilisateur actuel. Powershell pas nécessaire.
whoami /groups
la source
C'est juste une ligne:
Fin de :)
la source
select -expandproperty memberof
rendra la sortie un peu plus lisible / utile.J'ai écrit une fonction PowerShell appelée Get-ADPrincipalGroupMembershipRecursive. Il accepte le DSN d'un utilisateur, d'un ordinateur, d'un groupe ou d'un compte de service. Il récupère une liste initiale de groupes à partir de l'attribut memberOf du compte, puis vérifie de manière récursive les appartenances à ces groupes. Le code abrégé est ci-dessous. Le code source complet avec des commentaires peut être trouvé ici .
la source
Le ci-dessous fonctionne bien:
Si vous avez une liste d'utilisateurs:
la source
Get-QADUser -SamAccountName ID de connexion | % {$ _. MemberOf} | Get-QADGroup | sélectionner un nom
la source
Je n'ai pas pu faire fonctionner les éléments suivants pour un utilisateur particulier:
Il a jeté une erreur que je n'étais pas disposé à résoudre.
J'ai cependant proposé une solution différente en utilisant Get-ADUser. Je l'aime un peu mieux car si vous ne connaissez pas le nom du compte, vous pouvez l'obtenir en fonction d'un caractère générique sur le nom réel de l'utilisateur. Remplissez simplement PartOfUsersName et c'est parti.
D'énormes accessoires à schmeckendeugler et 8DH pour m'avoir amené à cette solution. +1 à vous deux.
la source
Bien qu'il y ait beaucoup d'excellentes réponses ici, il y en a une que je cherchais personnellement et qui manquait. Une fois que je l'ai compris - j'ai pensé que je devrais le publier au cas où je voudrais le retrouver plus tard, ou il parvient en fait à aider quelqu'un d'autre à un moment donné:
Une deuxième approche pour présenter ceci est de spécifier les colonnes individuelles qui vous intéressent, par exemple:
Cela donne tous les groupes AD auxquels le nom d'utilisateur appartient - mais présente également toutes les propriétés par défaut de chaque groupe bien formatées sous forme de tableau.
Le principal avantage que cela vous donne est que vous pouvez voir en un coup d'œil quelles sont les listes de distribution et quels sont les groupes de sécurité. Vous pouvez en outre voir en un coup d'œil quels sont Universal, qui sont DomainLocal et qui sont Global.
Pourquoi vous souciez-vous de ce dernier morceau?
la source
Modifiez la valeur de -SearchBase pour refléter l'unité d'organisation dont vous avez besoin pour répertorier les utilisateurs :)
Cela listera tous les utilisateurs de cette UO et vous montrera de quels groupes ils sont membres.
la source
Get-ADPrincipalGroupMembership USERLOGON | sélectionner un nom
la source
la source
C'est le moyen le plus simple d'obtenir simplement les noms:
Get-ADPrincipalGroupMembership "YourUserName"
# Returns distinguishedName : CN=users,OU=test,DC=SomeWhere GroupCategory : Security GroupScope : Global name : testGroup objectClass : group objectGUID : 2130ed49-24c4-4a17-88e6-dd4477d15a4c SamAccountName : testGroup SID : S-1-5-21-2114067515-1964795913-1973001494-71628
Ajoutez une instruction de sélection pour réduire la réponse ou pour obtenir chaque utilisateur d'une UO chaque groupe dont il est utilisateur:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){ Get-ADPrincipalGroupMembership $user.samaccountName | select name}
la source
Pour l'obtenir récursif, vous pouvez utiliser:
la source
Presque toutes les solutions ci-dessus utilisaient le
ActiveDirecotry
module qui pourrait ne pas être disponible par défaut dans la plupart des cas.J'ai utilisé la méthode ci-dessous. Un peu indirect, mais a servi mon objectif.
Lister tous les groupes disponibles
Get-WmiObject -Class Win32_Group
Et puis listez les groupes auxquels appartient l'utilisateur
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
La comparaison peut ensuite être effectuée en vérifiant via le fichier
SIDs
. Cela fonctionne pour l'utilisateur connecté. S'il vous plait corrigez moi si je me trompe. Complètement nouveau dans PowerShell, mais a dû le faire pour un engagement de travail.la source
Avec entrée utilisateur et formatage de sortie sophistiqué:
la source
Mettre ceci ici pour référence future. Je suis au milieu d'une migration de messagerie. J'ai besoin de connaître chaque compte d'utilisateur et son appartenance à un groupe respectif, et j'ai également besoin de connaître chaque groupe et ses membres respectifs.
J'utilise le bloc de code ci-dessous pour générer un CSV pour l'appartenance au groupe de chaque utilisateur.
Le processus d'exportation pour les groupes et leurs membres respectifs était un peu compliqué, mais ce qui suit fonctionne. Les noms de fichiers de sortie incluent le type de groupe. Par conséquent, les groupes de distribution de courrier électronique dont j'ai besoin sont / doivent être les groupes de distribution universelle et globale. Je devrais pouvoir simplement supprimer ou déplacer les fichiers TXT résultants dont je n'ai pas besoin.
la source
L'étude de tous les commentaires présentés m'a donné un point de départ (merci pour cela) mais m'a laissé avec plusieurs problèmes non résolus. En conséquence, voici ma réponse. L'extrait de code fourni fait un peu plus que ce qui est demandé, mais il fournit des informations de débogage utiles.
la source
Lorsque vous ne disposez pas des privilèges pour consulter d'autres groupes de membres, mais que vous avez le privilège de consulter les membres du groupe, vous pouvez effectuer les opérations suivantes pour créer une carte indiquant quels utilisateurs ont accès à quels groupes.
la source