Bir kullanıcının üyesi olduğu AD gruplarının listesini alın


52

Bir kullanıcının Active Directory'de kullanıcı kimliği olduğunu varsayalım. Bu kullanıcının şu anda üyesi olduğu tüm AD gruplarının bir listesini almak istiyorum. Bunu Windows komut satırından nasıl yapabilirim?

Aşağıdakileri denedim:

dsget user "DC=jxd123" -memberof

Hata:

dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.

3
Dsget'ı çalıştırdığınızda kesinlikle dsquery için bir hata almazsınız. Kopyala ve Yapıştır işlemi başarısız mı?
mfinni

Bilginize, aynı soruyu StackOverflow'ta da birkaç cevap daha bulduk .
Nişan

Cevaplayacak kadar itibarım yok ama powershell kullandığınızı varsayarsak şunu yazabilirsiniz: Get-ADPrincipalGroupMembership username | isim seçin
Avi Parshan

Yanıtlar:


33

Bunu PowerShell'de kolayca yapabilirsiniz. Eminim bunu ds araçlarıyla da yapabilirsiniz, ancak yaşlılar ve huysuzlar ve bugünlerde mümkün olan her şey için PowerShell kullanılmalı.

Import-Module ActiveDirectory
(Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf

Daha kısa versiyon

(Get-ADUser userName –Properties MemberOf).MemberOf

Powershell'i indirdim ve şimdi bir * .msu dosyası var. * .Msu dosyasını kullanarak nasıl kurarım?
MacGyver

Hangi işletim sistemindesiniz? PowerShell, XP'den daha yeni bir şeye yerleşiktir ve isteğe bağlı bir Windows Güncellemesi olarak XP'ye kullanılabilir.
MDMarra

Windows XP .. Şirketim yavaş: - \
MacGyver 19:13

Sonra yanlış yükleyiciyi indirdiniz. Ayrıca, yalnızca bir destek, XP desteği bir yıldan kısa bir süre sonra sona erer. Yükseltmeleri harekete geçirin! microsoft.com/en-us/windows/endofsupport.aspx
MDMarra

1
Get-ADPrincipalGroupMembershipPowerShell'de bunu yapmanın başka bir yoludur.
Nic

83

Veya net user komutuyla ...

net user /domain username

3
Bazı "eski" DOS komutlarının sunduğu basitliği seviyorum. Ve, her zaman orada bulundular, bu yüzden eski bir makineye PoSH yüklü olmasa bile, DOS kurtarmaya geliyor! Bunu gönderdiğiniz için teşekkür ederiz.
Jeff Moden

3
Bu, yalnızca açık bir şekilde geri dönecek, ancak örtülü grup üyelikleri getirmeyecektir.
Elias Probst

11
Kaygan komut ANCAK, çıktıda grupları isimleri 21 karakterden ... :-( kesiliyor
t0r0X

1
Evet, sınırlamalar var. İç içe grup üyelikleri gösterilmez ve haklısınız, çıktı kesiliyor. Kuşkusuz, ikincisini düşünmemiştim.
Jack,

Harika çalıştı ama neden kesildi? Tam grup adı için eklenebilecek bir config / parametresi var mı?
ThinkCode,

36

Tek satır, modül gerektirmez, geçerli kullanıcı kullanıcısını $ ($ env: kullaniciadi) kullanır, diğer Windows makinelerinden çalışır:

(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf

Bu vbs / powershell makalesine Qudos: http://technet.microsoft.com/en-us/library/ff730963.aspx


2
Çok iyi bir çözüm, herhangi bir ek yazılım yüklemeden benim için çalışan tek! Teşekkürler!
t0r0X

2
Herhangi bir ek yazılım olmadan sınırlı bir sistem üzerinde çalışmak için +1!
Saustrup,


8

Güç kalkanı:

Get-ADPrincipalGroupMembership -Identity jdoe | Format-Table -Property name

7

Kendi gruplarınızı görmeniz gerekiyorsa, şunlar var whoami /groups:

Geçerli kullanıcının ait olduğu kullanıcı gruplarını görüntüler.

Bu komutun avantajı net user /domain usernameüstü kapalı grup üyeliğinin de gösterilmesidir whoami.


En iyi çözüm. Upvoted. Kısa ve güzel. Kesmiyor. Şahsen en çok LIST formatını seviyorum, yani whoami /groups /fo listgözle okumak en kolayı.
peterh

6

Başka bir yaklaşım: Windows hesap belirtecindeki tüm gizli grup üyeliklerini listeleyen bir PowerShell betiği. Sınırlı bir sistemde çalışır.

$token = [System.Security.Principal.WindowsIdentity]::GetCurrent() 
ForEach($group in $token.Groups){
    $group.Translate([System.Security.Principal.NTAccount])
}

3
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt

2
$ADUser = Read-Host "Provide the AD User account"
Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name


1

Bu PowerShell sürümü, grubun DN'si yerine yalnızca AD grup adlarını döndürür. 'Select-object' çıkışı kolayca bir CSV'ye veya test dosyasına aktarılabilir.

(Get-ADUser ExampleUser –Properties MemberOf).memberof | Get-ADGroup | Select-Object name


0

Powershell, hoş ve temiz bir çıktı verir.

(get-aduser USER -Properties MemberOf | select MemberOf).MemberOf | % {$_.split(",")[0].replace("CN=","")}

0

Aşağıda, belirtilen alan altındaki tüm alanları arayan bir çözüm var (her alan için uygun izin varsayarak):

# provide the logon name here:
$user="alice"
$allGroups=@()

foreach ( $d in (Get-ADForest example.net).domains ) { Write-Output "Looking up $user in domain $d"; $allGroups += Get-ADPrincipalGroupMembership $user -ResourceContextServer $d }

$allGroups | ft name,GroupScope,distinguishedName -AutoSize

Get-ADPrincipalGroupMembership'i Kullanma


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.