Ottieni i gruppi Active Directory non troncati dell'utente dalla riga di comando


90

Uso spesso il net usercomando per dare un'occhiata ai gruppi AD per un utente:

net user /DOMAIN <username>

Funziona bene, tuttavia i nomi dei gruppi vengono troncati a circa 20 caratteri. E nella mia organizzazione, la maggior parte dei nomi dei gruppi è molto più lunga di questa.

Qualcuno conosce un modo per ottenere gruppi AD non troncati tramite la riga di comando?


1
In base alla data di questa domanda, immagino che il troncamento di 20 caratteri non sia più una cosa in quanto l'esecuzione di quel comando ha restituito gruppi con nomi più grandi. Anche la risposta di seguito whoami /groupsè buona. Ma elenca solo i gruppi dell'utente attualmente connesso. L'impersonificazione e la programmazione intelligente potrebbero aggirare questo problema;)
Richard Barker

2
L'ho eseguito per un utente nel dominio della mia organizzazione; Il troncamento di 20 caratteri è ancora un problema.
SherlockFogli di

Bella domanda, Aguado!
Bart

Risposte:


-9

È possibile analizzare l'output dal comando GPRESULT.


68
Senza un esempio questa è una risposta inutile
qujck

8
Ma è la risposta inutile corretta ... a quanto pare.
Warlord 099

Non mostra i gruppi AD. Mostra MOLTE altre cose, ma non i gruppi AD.
John Rocha

Ragazzi, all'epoca (chiesto e risposto nel 2009), questo potrebbe essere stato l'unico modo per fare effettivamente ciò di cui l'OP aveva bisogno. Si noti che menziona il troncamento dopo 20 caratteri nel nome del gruppo.
Richard Barker

@RichardBarker: Il troncamento è ancora in corso con NET USER nel 2019.
Ross Presser

109

GPRESULTè il comando giusto, ma non può essere eseguito senza parametri. /vo l'opzione dettagliata è difficile da gestire senza eseguire anche l'output in un file di testo. EG io consiglio di usare

gpresult /user myAccount /v > C:\dev\me.txt- Assicurati che C: \ Dev \ me.txt esista

Un'altra opzione è quella di visualizzare solo le informazioni di riepilogo che possono essere interamente visibili nella finestra di comando:

gpresult /user myAccount /r

I conti sono elencati sotto l'intestazione:

The user is a part of the following security groups
---------------------------------------------------

6
Questa dovrebbe essere la risposta
LT

1
Se stai cercando una stringa specifica, puoi utilizzare findstrinvece di reindirizzare l'output a un file e quindi cercare nel file. Ad esempio gpresult /user myAccount /r | findstr mySearchString,.
Jesse

2
Quando lo eseguo per il mio account utente, è fantastico e posso vedere i gruppi di sicurezza. Quando lo eseguo per un altro account utente, il comando restituisce: L'utente "userNameHere" non dispone di dati RSOP.
SherlockFogli di

60

Un po 'vecchio post, ma ho capito che diamine. "Whoami" soddisfa le tue esigenze?

L'ho scoperto solo oggi (dalla stessa ricerca su Google che mi ha portato qui, appunto). Windows ha uno strumento whoami da XP (parte di un toolkit aggiuntivo) ed è integrato da Vista.

whoami /groups

Elenca tutti i gruppi AD per l'utente attualmente connesso. Credo che richieda che tu sia connesso come quell'utente, quindi questo non aiuterà se il tuo caso d'uso richiede la possibilità di eseguire il comando per guardare un altro utente.

Solo nomi di gruppi:

whoami /groups /fo list |findstr /c:"Group Name:"

Ho usato WhoAmIper ottenere il mio nome utente per molto tempo solo per rendermi conto OGGI che puoi fare molto di più con esso! Grazie.
Maya

3
elenca solo i nomi dei gruppi: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(nota: usa %%invece che %nel file batch)
Lectrode

Perfetto! Non esitate a offrire nuove risposte a post obsoleti!
Bart

5

Oppure potresti usare dsquery e dsget :

dsquery user domainroot -name <userName> | dsget user -memberof

Per recuperare le appartenenze ai gruppi qualcosa del genere:

Tue 09/10/2013 13:17:41.65
C:\
>dsquery user domainroot -name jqpublic | dsget user -memberof
"CN=Technical Support Staff,OU=Acme,OU=Applications,DC=YourCompany,DC=com"
"CN=Technical Support Staff,OU=Contosa,OU=Applications,DC=YourCompany,DC=com"
"CN=Regional Administrators,OU=Workstation,DC=YourCompany,DC=com"

Sebbene non riesca a trovare alcuna prova che abbia mai installato questo pacchetto sul mio computer, potrebbe essere necessario installare Strumenti di amministrazione remota del server per Windows 7 .


1

Modo molto più semplice in PowerShell:

Get-ADPrincipalGroupMembership <username>

Requisito: l'account con cui esegui tu stesso deve essere un membro dello stesso dominio dell'utente di destinazione, a meno che tu non specifichi -Credentiale -Server(non testato).

Inoltre, è necessario avere installato il modulo Powershell di Active Directory, che come dice @ dave-lucre in un commento a un'altra risposta, non è sempre un'opzione.

Solo per i nomi dei gruppi, prova uno di questi:

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name

1
Bella risposta! Questo funziona, ma non sono troppo sicuro che lo renda più facile :). Devi analizzare il risultato per ottenere un elenco di nomi di gruppi (mi espanderei con quello!). Non è una sfida per i tecnici esperti di PS, ma il passaggio dal batch DOS a PS non è mai facile!
hector-j-rivas

0

1
Non puoi farlo senza installare il modulo Powershell di Active Directory (che non è sempre un'opzione)
Dave Lucre

1
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere le parti essenziali della risposta qui e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
Zulan

@Zulan: stai sprecando il tuo tempo con una risposta che ha 7 anni! Non solo, ma sembra anche incongruo in quanto non hai commentato la risposta accettata nello stesso modo.
Mitch Wheat

@ MitchWheat: hai notato il From Reviewcollegamento alla fine del suo commento? Non ha commentato la risposta accettata perché non l'ha trovata in revisione.
zondo

L'ho fatto. Tuttavia, avrei pensato che un revisore controllasse almeno la risposta accettata.
Mitch Wheat

0

Basato sulla risposta di P.Brian.Mackey - Ho provato a usare il gpresult /user <UserName> /rcomando, ma sembrava funzionare solo per il mio account utente; per gli altri utenti account ho ottenuto questo risultato: The user "userNameHere" does not have RSOP data.

Quindi ho letto questo blog - https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html - e ho trovato una soluzione. Devi conoscere il nome del computer dell'utente:

gpresult /s <UserComputer> /r /user:<UserName>

Dopo aver eseguito il comando, è necessario ENTERalcune volte per completare il programma perché si fermerà a metà dell'uscita. Inoltre, i risultati hanno fornito una serie di dati inclusa una sezione per " COMPUTER SETTINGS> Applied Group Policy Objects" e poi " COMPUTER SETTINGS> Security groups" e infine " USER SETTINGS> security groups" (questo è ciò che stiamo cercando con i gruppi AD elencati con descrizioni non troncate!).

È interessante notare che GPRESULT aveva alcuni membri extra non visti nel comando NET USER. Inoltre, l'ordinamento non corrisponde e non è alfabetico. Qualsiasi organismo che possa aggiungere ulteriori approfondimenti nei commenti sarebbe fantastico.

RISULTATI: gpresult (with ComputerName, UserName)

Per motivi di sicurezza, ho incluso solo un sottoinsieme dei risultati dell'iscrizione. (36 TOTALE, 12 CAMPIONI)

The user is a part of the following security groups
---------------------------------------------------
..
 Internet Email 
 GEVStandardPSMViewers  
 GcoFieldServicesEditors    
 AnimalWelfare_Readers  
 Business Objects   
 Zscaler_Standard_Access    
..
 GCM    
..
 GcmSharesEditors   
 GHVStandardPSMViewers  
 IntranetReportsViewers 
 JetDWUsers     -- (NOTE: this one was deleted today, the other "Jet" one was added)
..
 Time and Attendance Users  
..

RISULTATI: net user /DOMAIN (with UserName)

Per motivi di sicurezza, ho incluso solo un sottoinsieme dei risultati dell'iscrizione. (23 TOTALE, 12 CAMPIONE)

Local Group Memberships  
Global Group memberships    ...
                             *Internet Email       *GEVStandardPSMViewers
                             *GcoFieldServicesEdito*AnimalWelfare_Readers
                             *Business Objects     *Zscaler_Standard_Acce
                             ...
                             *Time and Attendance U*GCM
                             ...
                             *GcmSharesEditors     *GHVStandardPSMViewers
                             *IntranetReportsViewer*JetPowerUsers
The command completed successfully.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.