Uzyskaj nieobcięte grupy Active Directory użytkownika z wiersza poleceń

90

Często używam net userpolecenia, aby spojrzeć na grupy AD dla użytkownika:

net user /DOMAIN <username>

Działa to dobrze, jednak nazwy grup są skracane do około 20 znaków. W mojej organizacji nazwy większości grup są znacznie dłuższe.

Czy ktoś wie, jak uzyskać nieobcięte grupy AD za pomocą wiersza poleceń?

Ben
źródło
1
Opierając się na dacie tego pytania, domyślam się, że obcięcie 20 znaków już nie jest rzeczą, ponieważ uruchomienie tego polecenia zwróciło grupy o większych nazwach. Odpowiedź poniżej whoami /groupsjest również dobra. Ale wyświetla tylko listę aktualnie zalogowanych użytkowników w grupach. Jednak podszywanie się pod inne osoby i zręczne programowanie mogą to obejść;)
Richard Barker
2
Uruchomiłem go dla użytkownika w domenie w mojej organizacji; Obcięcie 20 znaków nadal stanowi problem.
SherlockSpreadsheets
Dobre pytanie, Aguado!
Bart

Odpowiedzi:

-9

Możesz przeanalizować dane wyjściowe z polecenia GPRESULT.

seryjny hobbysta
źródło
68
Bez przykładu to bezużyteczna odpowiedź
qujck
8
Ale to jest poprawna, bezużyteczna odpowiedź ... najwyraźniej.
Warlord 099
Nie pokazuje grup AD. Pokazuje wiele innych rzeczy, ale nie grupy reklam.
John Rocha
Chłopaki, w tamtym czasie (zapytali i odpowiedzieli w 2009 r.), Mógł to być jedyny sposób, aby faktycznie zrobić to, czego potrzebował PO. Zauważ, że wspomina o obcięciu po 20 znakach w nazwie grupy.
Richard Barker,
@RichardBarker: Obcinanie nadal ma miejsce w przypadku NET USER w 2019 r.
Ross Presser
109

GPRESULTjest właściwym poleceniem, ale nie można go uruchomić bez parametrów. /vlub opcji pełnej jest trudna do zarządzania bez wyprowadzania do pliku tekstowego. EG polecam używać

gpresult /user myAccount /v > C:\dev\me.txt- Upewnij się, że C: \ Dev \ me.txt istnieje

Inną opcją jest wyświetlenie tylko informacji podsumowujących, które mogą być w całości widoczne w oknie poleceń:

gpresult /user myAccount /r

Rachunki są wymienione pod nagłówkiem:

The user is a part of the following security groups
---------------------------------------------------
P. Brian Mackey
źródło
6
To powinna być odpowiedź
LT
1
Jeśli szukasz określonego ciągu, możesz go użyć findstrzamiast przekierowania wyjścia do pliku, a następnie przeszukiwania pliku. Na przykład gpresult /user myAccount /r | findstr mySearchString.
Jesse
2
Kiedy uruchamiam to dla mojego konta użytkownika, jest świetnie i widzę grupy zabezpieczeń. Kiedy uruchamiam go dla innego konta użytkownika, polecenie zwraca: Użytkownik „userNameHere” nie ma danych RSOP.
SherlockSpreadsheets
60

Trochę przestarzały post, ale pomyślałem, co do cholery. Czy "whoami" spełnia twoje potrzeby?

Właśnie dowiedziałem się o tym dzisiaj (w rzeczywistości z tej samej wyszukiwarki Google, która mnie tu przyniosła). Windows miał narzędzie whoami od XP (część dodatku do zestawu narzędzi) i jest wbudowany od Vista.

whoami /groups

Wyświetla listę wszystkich grup AD dla aktualnie zalogowanego użytkownika. Uważam jednak, że wymaga to zalogowania się jako tego użytkownika, więc to nie pomoże, jeśli twój przypadek użycia wymaga możliwości uruchomienia polecenia, aby spojrzeć na innego użytkownika.

Tylko nazwy grup:

whoami /groups /fo list |findstr /c:"Group Name:"
Doug
źródło
Używam WhoAmIaby mój login na bardzo długi czas tylko uświadomić sobie dziś, że można zrobić dużo więcej z nim! Dziękuję Ci.
MaYaN
3
lista tylko nazw grup: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(uwaga: użyj %%zamiast %w pliku wsadowym)
Lectrode
idealny! Nie wahaj się i przedstawiaj świeże odpowiedzi na nieaktualne posty!
Bart
5

Lub możesz użyć dsquery i dsget :

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

Aby pobrać członkostwo w grupie, coś takiego:

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"

Chociaż nie mogę znaleźć żadnych dowodów na to, że kiedykolwiek zainstalowałem ten pakiet na moim komputerze, może być konieczne zainstalowanie narzędzi administracji zdalnej serwera dla systemu Windows 7 .

Poważna awaria
źródło
1

O wiele łatwiejszy sposób w PowerShell:

Get-ADPrincipalGroupMembership <username>

Wymaganie: konto, na którym działasz, musi należeć do tej samej domeny co użytkownik docelowy, chyba że określisz -Credentiali -Server(niesprawdzone).

Ponadto musisz mieć zainstalowany moduł Active Directory Powershell, który, jak @ dave-lucre mówi w komentarzu do innej odpowiedzi, nie zawsze jest opcją.

Tylko w przypadku nazw grup wypróbuj jedną z poniższych opcji:

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name
Ross Presser
źródło
1
Świetna odpowiedź! To działa, ale nie jestem pewien, czy to ułatwia :). Musisz przeanalizować wynik, aby uzyskać listę nazw grup (rozwinąłbym to!). To nie jest wyzwanie dla techników znających się na PS, ale przejście z partii DOS do PS nigdy nie jest łatwe!
hector-j-rivas
0

Użyj Powershell: Windows Powershell Praca z Active Directory

Szybka wskazówka - określanie członkostwa w usłudze AD grupy przy użyciu programu PowerShell

Mitch Wheat
źródło
1
Nie możesz tego zrobić bez zainstalowania modułu Active Directory Powershell (co nie zawsze jest opcją)
Dave Lucre,
1
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
Zulan
@Zulan: marnujesz swój czas na odpowiedź, która ma 7 lat! Nie tylko to, ale także wydaje się to nie na miejscu, ponieważ nie skomentowałeś zaakceptowanej odpowiedzi w ten sam sposób.
Mitch Wheat
@MitchWheat: Czy zauważyłeś From Reviewlink na końcu jego komentarza? Nie skomentował zaakceptowanej odpowiedzi, ponieważ nie natknął się na nią w recenzji.
zondo
Zrobiłem. Myślałem, że recenzent przynajmniej sprawdzi zaakceptowaną odpowiedź.
Mitch Wheat
0

Na podstawie odpowiedzi P. Briana Mackeya - próbowałem użyć gpresult /user <UserName> /rpolecenia, ale wydawało się, że działa tylko na moim koncie użytkownika; dla innych użytkowników kont mam ten wynik: The user "userNameHere" does not have RSOP data.

Przeczytałem więc ten blog - https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html - i znalazłem rozwiązanie. Musisz znać nazwę komputera użytkownika:

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

Po uruchomieniu polecenia musisz ENTERkilka razy, aby program się zakończył, ponieważ zatrzyma się w połowie wyjścia. Ponadto wyniki dały kilka danych, w tym sekcję dla „ COMPUTER SETTINGS> Applied Group Policy Objects”, a następnie „ COMPUTER SETTINGS> Security groups” i na końcu „ USER SETTINGS> security groups” (właśnie tego szukamy w przypadku grup AD wymienionych z nieobciętymi opisami!).

Ciekawe, że GPRESULT miał kilka dodatkowych członków, których nie widać w poleceniu NET USER. Ponadto kolejność sortowania nie jest zgodna i nie jest alfabetyczna. Każdy organ, który może dodać więcej spostrzeżeń w komentarzach - byłoby świetnie.

WYNIKI: gpresult (with ComputerName, UserName)

Ze względów bezpieczeństwa zamieściłem tylko podzbiór wyników członkostwa. (36 RAZEM, 12 PRÓBEK)

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  
..

WYNIKI: net user /DOMAIN (with UserName)

Ze względów bezpieczeństwa zamieściłem tylko podzbiór wyników członkostwa. (23 RAZEM, 12 PRÓBEK)

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.
SherlockSpreadsheets
źródło