Soru Windows Active Directory grubundaki kullanıcıları listelemek için komut satırı mı?


Belirli bir Active Directory grubundaki tüm kullanıcıları listelemek için bir komut satırı yolu var mı?

Grupta kim olduğunu görebiliyorum. Bilgisayarı Yönet -> Yerel Kullanıcı / Gruplar -> Gruplar ve grubu çift tıklatarak.

Verileri almak için bir komut satırı yoluna ihtiyacım var, bu yüzden diğer bazı otomatik görevleri yapabilirim.


124
2017-08-03 17:19


Menşei




Cevaplar:


Deneyin

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

37
2017-08-03 17:22



Üyeleri çözmek ve iç içe gruplar halinde üyeleri kopyalamak için muhtemelen biraz daha fazla işlem yapmanız gerekir. - duffbeer703
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand iç içe geçmiş gruplarda üyeler alır, ancak yinelenen yardımcı olmayabilir ve size yalnızca CN için değil, üye için tam bir AD sorgu dizesi sunar. - jonnybot
Komut Win7 SP1'de bulunamadı. Sanırım RSAT'a ihtiyacınız var mı? - Iszi
'dsget', iç veya dış komut olarak tanınmaz. - adolf garlic
@adolfgarlic - stackoverflow.com/questions/8514599/... - bchilders


İşte, komut isteminden başka bir şekilde, çıktıyı ayrıştırmanız gerektiğinden, nasıl otomatik olarak değiştirilebileceğinden emin değilsiniz:

Grup "genel güvenlik grubu" ise:

net group <your_groupname> /domain

"Etki alanı yerel güvenlik grubu" arıyorsanız:

net localgroup <your_groupname> /domain

209
2018-01-04 20:11



Bu durumun neden düşürüldüğünden emin değilsiniz ... çıktı küçük bir ayrıştırma gerektirebilir, ancak yalnızca temel pencerelerin bir parçası olan yardımcı programlara bağlı olarak avantajlıdır. - G-Wiz
Ama kesilmiş grup isimleri etrafında herhangi bir yolu var mı? - deed02392
Bu harika! Bir tedavi yaptı. - WOPR
Bunun tekrarlayıcı olmadığını ve bir gruptaki grupları listelemediğini unutmayın. İç içe geçmiş veya hiyerarşik gruplar varsa çok yararlı olmaz. - Mark
Bu benim için mükemmel çalışıyor (ve el ele iyi gidiyor. net user /domain). Teşekkürler! - xan


Burada, özellikle karmaşık bir OU yapısına sahipseniz ve grubun tam ayırt edici adını bilmediğinizde, daha kullanışlı bulduğum ds komutunun bir sürümü.

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

veya grubun CN'sini biliyorsanız, adında boşluk olması durumunda, genellikle SAM ID ile aynıdır:

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

Açıklamalarda belirtildiği gibi, varsayılan olarak ds * komutları (dsquery, dsget, dsadd, dsrm) yalnızca bir Etki Alanı Denetleyicisi'nde kullanılabilir. Ancak, Yönetici Araçları paketini Windows Server yükleme medyasındaki Destek Araçları'ndan yükleyebilir veya indir Microsoft İndir sitesinden.

Bu sorguları PowerShell kullanarak da yapabilirsiniz. PowerShell, Server 2008, 2008 R2 ve Windows 7 için yüklenebilir bir özellik olarak zaten mevcuttur, ancak ihtiyacınız olacak WinRM Framework'ü indirin XP veya Vista'ya yüklemek için.

PowerShell'de AD'ye özgü cmdlet'lere erişmek için AYRICA Aşağıdaki yüklemelerden en az birini gerçekleştirmesi gerekir:


48
2017-08-03 19:09



Her zaman ilk sorguyu kullanırım - Jim B
Bu komutu etki alanı denetçisinde çalıştırmanız gerektiğini unutmayın. - skolima
Sen YAPMA Bu komutu bir Domain Controller üzerinde çalıştırmak zorunda. Sen yine de YAP Windows 2003 Server CDROM'undaki Destek Araçları'nda bulunan Admin Support Pack .msi dosyasını yüklemiş olması gerekir. Ya da microsoft.com/downloads/en/... - Ryan Fisher


Quest AD eklentisi gerektirmeyen bir PowerShell çözümü için aşağıdakileri deneyin.

Import-Module ActiveDirectory

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

Bu iç içe geçmiş grupları da sıralayacaktır. Bunu yapmak istemiyorsanız, -Recursive geçin.


23
2018-03-24 16:41



ActiveDirectory modülünün Quest ActiveRoles AD ek bileşenini gerektirmediğinden emin olabilirsiniz, ancak RSAT araçlarının kurulu olmasını ve AD'nizin Active Directory Web Hizmeti'ne sahip en az bir DC'ye sahip olmasını gerektirir (2008 için). R2) veya Active Directory Yönetim Ağ Geçidi Hizmeti (2003, 2008 DC'ler için) yüklü. Ayrıntılar ve bağlantılar için yukarıdaki cevabımı görün. - Ryan Fisher


Sunucularda ve istemcilerde çalışan çok kolay bir yol:

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

Kullanıcı YOURGROUPNAME grubundaysa, 1 değerini döndürür.

Daha sonra% ERRORLEVEL% değerini kullanabilirsiniz (eğer gruptaki kullanıcı varsa 0, değilse)

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

14
2017-10-08 09:37



"Net grup" komutu, bilgisayarın birleştirildiği alanı (veya etki alanı ağacını) arar. Daha modern bir alternatif ise: whoami /groups | find /I /C "YOURGROUPNAME" - DavisNT


Active Directory için PowerShell ve Quest Software'in Ücretsiz ActiveRoles Yönetim Kabuğu'nu kullanarak şunları kullanabilirsiniz:

(Get-QADGroup "GroupName"). Üyeler

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


10
2017-08-03 20:51



Ayrıca: Get-QADGroupMember 'GroupName' - Gordon Bell


Buradaki cevaplar dsgetve dsquery Bu komutlar yalnızca Windows'un diğer sürümlerinde (örneğin Windows 7) gönderilmediğinden, Windows'un sunucu sürümlerinde çalışacaktır. Bu komutları olmayan makinelerde, kullanmak istediğiniz bilgiyi alabilirsiniz. AdFind komutu.

Grup üyeliği almak için örnek bir sorgu:

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

7
2018-03-31 10:34



ADFind.exe, zaten yüklemek zorunda olduğunuz üçüncü taraf bir araçtır. Ds * komutları, Yönetici Araçları paketi ile yüklenebilir. - Ryan Fisher


Yerel gruplar ve kullanıcılar nasıl listelenir?

Yerel grupları ve bu grupların üyelerini listelemek için aşağıdaki powershell komut dosyasını kullanın.

$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
}

Yukarıdaki metni not defterine kopyalayın ve farklı kaydet filename.ps1. Ardından dosyayı çalıştırın. Grupları ve Kullanıcıları her grupta görüntülemeliyim, yoksa bunu powershell'den çalıştırabilirsiniz.


4
2018-01-14 19:12



Alırım, cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters: ve sonra girdi sorar, Process[0] - Mike S