Question Ligne de commande pour répertorier les utilisateurs d’un groupe Windows Active Directory?


Existe-t-il un moyen en ligne de commande pour répertorier tous les utilisateurs d'un groupe Active Directory particulier?

Je peux voir qui est dans le groupe en allant à Gérer l'ordinateur -> Utilisateurs / groupes locaux -> Groupes et en double cliquant sur le groupe.

J'ai juste besoin d'un moyen de ligne de commande pour récupérer les données, afin de pouvoir effectuer d'autres tâches automatisées.


123
2017-08-03 17:19


origine




Réponses:


essayer

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members

37
2017-08-03 17:22



Vous devrez probablement faire un peu plus pour résoudre les membres et les doublons dans les groupes imbriqués. - duffbeer703
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand vous donne les membres des groupes imbriqués, bien que cela puisse ne pas aider les doublons, et vous donne la chaîne de requête AD complète pour le membre, pas seulement son CN. - jonnybot
Commande introuvable sur Win7 SP1. Je suppose que vous avez besoin d'installer RSAT? - Iszi
'dsget' n'est pas reconnu comme une commande interne ou externe, etc. - adolf garlic
@adolfgarlic - stackoverflow.com/questions/8514599/… - bchilders


Voici une autre méthode à partir de l'invite de commande, vous ne savez pas comment elle est automatisable, car vous devrez analyser le résultat:

Si le groupe est "groupe de sécurité global":

net group <your_groupname> /domain

Si vous recherchez un "groupe de sécurité local de domaine":

net localgroup <your_groupname> /domain

207
2018-01-04 20:11



vous ne savez pas pourquoi cela a été annulé ... la sortie peut nécessiter un peu d'analyse, mais elle présente l'avantage de ne dépendre que des utilitaires faisant partie de l'installation de la fenêtre de base. - G-Wiz
Mais existe-t-il un moyen de contourner les noms de groupes tronqués? - deed02392
C'est bien! Travaillé un régal. - WOPR
Notez que ceci n'est pas récursif et ne répertorie pas les groupes qui sont dans un groupe. Pas très utile si vous avez des groupes imbriqués ou hiérarchiques. - Mark
Cela fonctionne parfaitement pour moi (et va bien main dans la main avec net user /domain). Merci! - xan


Voici une version de la commande ds que j'ai trouvée plus utile, en particulier si vous avez une structure d'UO complexe et que vous ne connaissez pas nécessairement le nom distinctif complet du groupe.

dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand

ou si vous connaissez le CN du groupe, généralement identique à l'ID SAM, indiqué au cas où le nom contient des espaces:

dsquery group -name "Group Account Name" | dsget group -members -expand

Comme indiqué dans les commentaires, par défaut, les commandes ds * (dsquery, dsget, dsadd, dsrm) ne sont disponibles que sur un contrôleur de domaine. Cependant, vous pouvez installer le pack Outils administrateur à partir des outils de support sur le support d'installation de Windows Server ou télécharge le depuis le site de téléchargement de Microsoft.

Vous pouvez également effectuer ces requêtes à l'aide de PowerShell. PowerShell est déjà disponible en tant que fonctionnalité installable pour Server 2008, 2008 R2 et Windows 7, mais vous devrez télécharger le framework WinRM installer sur XP ou Vista.

Pour accéder à toutes les applets de commande spécifiques à AD dans PowerShell, vous devez: ÉGALEMENT devez effectuer au moins l'une des installations suivantes:


48
2017-08-03 19:09



J'utilise tout le temps la première requête - Jim B
Sachez que vous devez exécuter cette commande sur le contrôleur de domaine. - skolima
Vous NE PAS devez exécuter cette commande sur un contrôleur de domaine. Cependant, vous FAIRE devez avoir installé Admin Support Pack .msi qui est inclus dans les outils de support sur le CD-ROM Windows 2003 Server. Ou télécharge le de microsoft.com/downloads/en/… - Ryan Fisher


Pour une solution PowerShell ne nécessitant pas le complément Quest AD, procédez comme suit:

Import-Module ActiveDirectory

Get-ADGroupMember "Domain Admins" -recursive | Select-Object name

Cela énumérera également les groupes imbriqués. Si vous ne le souhaitez pas, retirez le -recursive commutateur.


23
2018-03-24 16:41



Vous avez raison de dire que le module ActiveDirectory ne nécessite pas le composant logiciel enfichable Quest ActiveRoles Quest, mais que les outils RSAT doivent être installés et que votre AD dispose d'au moins un contrôleur de domaine avec le service Web Active Directory (pour 2008). R2) ou le service Active Directory Management Gateway (pour les contrôleurs de domaine 2003, 2008) installé. Voir ma réponse ci-dessus pour plus de détails et des liens. - Ryan Fisher


Un moyen très simple qui fonctionne sur les serveurs et les clients:

NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"

Retourne 1 si l'utilisateur est dans le groupe YOURGROUPNAME, sinon retournera 0

Vous pouvez ensuite utiliser la valeur% ERRORLEVEL% (0 si utilisateur du groupe, 1 sinon) comme

IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE

14
2017-10-08 09:37



La commande "net group" recherche uniquement le domaine (ou l'arborescence des domaines) où l'ordinateur est joint. Une alternative plus moderne est: whoami /groups | find /I /C "YOURGROUPNAME" - DavisNT


À l'aide de Free ActiveRoles Management Shell de PowerShell et de Quest Software pour Active Directory, vous pouvez utiliser:

(Get-QADGroup "NomGroupe"). Membres

http://www.quest.com/powershell/activeroles-server.aspx


10
2017-08-03 20:51



Aussi: Get-QADGroupMember 'NomGroupe' - Gordon Bell


Les réponses ici en utilisant dsgetet dsquery fonctionnera uniquement sur les versions serveur de Windows, car ces commandes ne sont pas livrées sur les autres versions de Windows (par exemple, Windows 7). Sur les machines sans ces commandes, vous pouvez obtenir les informations souhaitées à l'aide du bouton Commande AdFind.

Voici un exemple de requête pour obtenir l'appartenance à un groupe:

AdFind.exe -default -f name="Domain Admins" member -list

7
2018-03-31 10:34



ADFind.exe est un outil tiers que vous devez installer quand même. Les commandes ds * peuvent être installées via le pack Outils admin. - Ryan Fisher


Comment lister les groupes locaux et les utilisateurs?

Utilisez le script PowerShell suivant pour répertorier les groupes locaux et les membres de ces groupes.

$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { 

$_.psbase.schemaClassName -eq 'group' } | foreach {
    write-host $_.name
    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty', 

$null, $_, $null)}
    write-host
}

Copiez le texte ci-dessus dans le bloc-notes et enregistrez sous filename.ps1. Puis lancez le fichier. Je devrais afficher les groupes et les utilisateurs de chaque groupe, ou vous pouvez simplement l'exécuter à partir de powershell.


4
2018-01-14 19:12



Je reçois, cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters: puis dans demande d'entrée, Process[0] - Mike S


Pour les membres de la UserGroup1 essayer:

dsquery group -name UserGroup1 | dsget group -members | dsget user -display

3
2017-10-10 00:54



Peut-être voudriez-vous préciser l’utilitaire CLI dans lequel vous utiliseriez ceci. Je ne pense pas que ça va marcher trop bien de cmd, pour certaines raisons. - HopelessN00b
@ HopelessN00b: cela fonctionne en cmd - Pete
@Pete Newp! dsget failed:'Target object for this command' is missing. - HopelessN00b
@ HopelessN00b: je reçois une erreur si le groupe d'utilisateurs1 n'existe pas, essayez quelque chose comme "Comptabilité *" - Pete