Kullanıcının kısaltılmamış Active Directory gruplarını komut satırından alın


92

net userBir kullanıcının AD gruplarına bakmak için genellikle şu komutu kullanırım :

net user /DOMAIN <username>

Bu iyi çalışıyor, ancak grup adları yaklaşık 20 karakter olacak şekilde kısaltıldı. Ve benim organizasyonumda, çoğu grup ismi bundan çok daha uzun.

Kesilmemiş AD gruplarını komut satırından almanın bir yolunu bilen var mı?


1
Bu sorunun tarihine dayanarak, 20 karakterin kesilmesinin artık bu komutu çalıştırmak daha büyük isimlerle döndürülen gruplar olarak bir şey olmadığını tahmin ediyorum. Aşağıdaki cevap whoami /groupsda iyi bir cevaptır . Ancak yalnızca şu anda oturum açmış kullanıcı gruplarını listeler. Kimliğe bürünme ve kaygan programlama bunun üstesinden gelebilir;)
Richard Barker

2
Kuruluşumdaki etki alanındaki bir kullanıcı için çalıştırdı; 20 karakterin kısaltılması hala bir sorundur.
SherlockSpreadsheets

Güzel soru Aguado!
Craig Wilcox

Yanıtlar:


-11

Çıktıyı GPRESULT komutundan ayrıştırabilirsiniz.


69
Bir örnek olmadan bu bir işe yaramaz cevaptır
qujck

8
Ama doğru, gereksiz cevap ... görünüşe göre.
Warlord 099

AD gruplarını göstermez. Diğer birçok şeyi gösterir, ancak AD gruplarını göstermez.
John Rocha

Çocuklar, o sırada (sordu ve 2009'da cevapladı), OP'nin ihtiyaç duyduğu şeyi gerçekten yapmanın tek yolu bu olabilirdi. Grup adında 20 karakterden sonra kısaltmadan bahsettiğine dikkat edin.
Richard Barker

1
@RichardBarker: 2019'da NET USER'da kesinti hala devam ediyor.
Ross Presser

113

GPRESULTdoğru komuttur, ancak parametreler olmadan çalıştırılamaz. /vveya ayrıntılı seçeneği, bir metin dosyasına çıktı göndermeden yönetmek zordur. EG kullanmanızı öneririm

gpresult /user myAccount /v > C:\dev\me.txt- C: \ Dev \ me.txt dosyasının mevcut olduğundan emin olun

Diğer bir seçenek, yalnızca komut penceresinde tamamen görülebilen özet bilgileri görüntülemektir:

gpresult /user myAccount /r

Hesaplar başlık altında listelenmiştir:

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

7
Cevap bu olmalı
LT

1
Belirli bir dizeyi arıyorsanız, findstrçıktıyı bir dosyaya yeniden yönlendirmek ve ardından dosyayı aramak yerine kullanabilirsiniz . Örneğin gpresult /user myAccount /r | findstr mySearchString,.
Jesse

2
Bunu kullanıcı hesabım için çalıştırdığımda harika ve güvenlik gruplarını görebiliyorum. Başka bir kullanıcı hesabı için çalıştırdığımda, komut şunu döndürüyor: "userNameHere" kullanıcısının RSOP verisi yok.
SherlockSpreadsheets

61

Biraz bayat yazı, ama ne olduğunu anladım. "Whoami" ihtiyaçlarınızı karşılıyor mu?

Bugün bunu yeni öğrendim (aslında beni buraya getiren aynı Google aramasından). Windows, XP'den beri bir whoami aracına sahipti (araç setindeki bir eklentinin parçası) ve Vista'dan beri yerleşiktir.

whoami /groups

O anda oturum açmış kullanıcı için tüm AD gruplarını listeler. Yine de, o kullanıcı olarak oturum açmanızı gerektirdiğine inanıyorum, bu nedenle, kullanım durumunuz başka bir kullanıcıya bakmak için komutu çalıştırma yeteneğini gerektiriyorsa, bu yardımcı olmayacaktır.

Yalnızca grup adları:

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

Ben kullanıyorum WhoAmIsadece onunla çok daha yapabileceği BUGÜN gerçekleştirmek için çok uzun bir süre için kullanıcı adımı olsun! Teşekkür ederim.
MaYaN

3
sadece grup adlarını listele: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(not: toplu iş dosyası %%yerine kullanın %)
Lectrode

mükemmel! Eski gönderilere yeni yanıtlar vermekten çekinmeyin!
Craig Wilcox

5

Veya dsquery ve dsget kullanabilirsiniz :

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

Grup üyeliklerini şunun gibi almak için:

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"

Bu paketi bilgisayarıma yüklediğime dair herhangi bir kanıt bulamasam da, Windows 7 için Uzak Sunucu Yönetim Araçlarını yüklemeniz gerekebilir .


1

PowerShell'de çok daha kolay bir yol:

Get-ADPrincipalGroupMembership <username>

Gereksinim: altında çalıştırdığınız hesap, belirtmediğiniz -Credentialve -Server(test edilmemiş) olmadıkça, hedef kullanıcı ile aynı etki alanının üyesi olmalıdır .

Ek olarak, @ dave-lucre'nin başka bir cevaba yapılan bir yorumda dediği gibi, her zaman bir seçenek olmayan Active Directory Powershell modülünün kurulu olması gerekir.

Yalnızca grup adları için şunlardan birini deneyin:

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

1
Mükemmel cevap! Bu işe yarıyor, ancak bunu kolaylaştıracağından pek emin değilim :). Grup isimlerinin bir listesini elde etmek için sonucu ayrıştırmalısınız (bununla genişletirim!) Bu, PS konusunda bilgili teknisyenler için bir zorluk değil, ancak DOS partisinden PS'ye geçiş asla kolay değil!
hector-j-rivas

0

1
Active Directory Powershell modülünü yüklemeden bunu yapamazsınız (bu her zaman bir seçenek değildir)
Dave Lucre

2
Bu bağlantı soruyu cevaplayabilirken, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse yalnızca bağlantı yanıtları geçersiz hale gelebilir. - Yorumdan
Zulan

@Zulan: 7 yıllık bir cevap için vaktini boşa harcıyorsun! Sadece bu değil, aynı zamanda kabul edilen yanıtı aynı şekilde yorumlamadığınız için de tutarsız görünüyor.
Mitch Wheat

@MitchWheat: Yorumunun From Reviewsonundaki bağlantıyı fark ettiniz mi? Kabul edilen cevap hakkında yorumda bulunmadı çünkü incelemede karşılaşmadı.
zondo

Yaptım. Bir incelemecinin en azından kabul edilen yanıtı kontrol edeceğini düşünürdüm.
Mitch Wheat

0

P.Brian.Mackey'in cevabına göre-- gpresult /user <UserName> /rKomutu kullanmayı denedim , ama sadece kullanıcı hesabım için çalışıyor gibiydi; diğer kullanıcılar için bu sonuç var hesapları: The user "userNameHere" does not have RSOP data.

Bu yüzden bu blogu ( https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html) okudum ve bir çözüm buldum . Kullanıcıların bilgisayar adını bilmeniz gerekir:

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

Komutu çalıştırdıktan sonra ENTER, programın tamamlanması için birkaç kez yapmanız gerekir, çünkü çıkışın ortasında duraklayacaktır. Ayrıca, sonuçlar " COMPUTER SETTINGS> Applied Group Policy Objects" ve ardından " COMPUTER SETTINGS> Security groups" ve son olarak " USER SETTINGS> security groups" için bir bölüm içeren bir sürü veri verdi (kısaltılmamış açıklamalarla listelenen AD gruplarında aradığımız şey budur!).

GPRESULT'un NET USER komutunda görülmeyen bazı ekstra üyeleri olduğunu not etmek ilginç. Ayrıca, sıralama düzeni eşleşmez ve alfabetik değildir. Yorumlara daha fazla içgörü ekleyebilen herhangi bir yapı harika olurdu.

SONUÇLAR: gpresult (with ComputerName, UserName)

Güvenlik nedeniyle, üyelik sonuçlarının yalnızca bir alt kümesini ekledim. (36 TOPLAM, 12 NUMUNE)

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

SONUÇLAR: net user /DOMAIN (with UserName)

Güvenlik nedeniyle, üyelik sonuçlarının yalnızca bir alt kümesini ekledim. (23 TOPLAM, 12 NUMUNE)

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.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.