it-swarm-tr.com

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

Belirli bir Active Directory grubundaki tüm kullanıcıları listelemenin bir komut satırı yolu var mı?

Bilgisayarı Yönet -> Yerel Kullanıcı/Gruplar -> Gruplar 'a gidip gruba çift tıklayarak grupta kimlerin olduğunu görebiliyorum .

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

138
Flyer

deneyin

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

Prompt komutundan başka bir yol, çıktıyı ayrıştırmak zorunda kalacağınızdan nasıl otomatikleştirilebileceğinden emin değilim:

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
243
asdasddfg

İşte özellikle karmaşık bir OU yapınız varsa ve grubun tam ayırt edici adını bilmiyorsanız, daha tipik olarak yararlı bulduğum ds komutunun bir sürümü.

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

veya adda boşluk olması durumunda belirtilen, genellikle SAM Kimliği ile aynı olan grubun CN'sini biliyorsanız:

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

Yorumlarda 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 ortamındaki Destek Araçları'ndan veya karşıdan yükle Microsoft Yükleme sitesinden yükleyebilirsiniz.

Bu sorguları PowerShell kullanarak da gerçekleştirebilirsiniz. PowerShell zaten Server 2008, 2008 R2 ve Windows 7 için yüklenebilir bir özellik olarak kullanılabilir, ancak XP) üzerine yüklemek için WinRM Framework'ü indirmeniz gerekir. veya Vista.

PowerShell'de AD'ye özgü herhangi bir cmdlet'e erişmek için [~ # ~] ayrıca [~ # ~] aşağıdaki yüklemelerden en az birini gerçekleştirmeniz gerekir:

49
Ryan Fisher

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

Import-Module ActiveDirectory

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

Bu yuvalanmış grupları da numaralandıracaktır. Bunu yapmak istemiyorsanız, - özyinelemeli anahtarını kaldırın.

25
pk.

Sunucular ve istemciler üzerinde çalışan çok kolay bir yol:

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

Kullanıcı YOURGROUPNAME grubundaysa 1 döndürür, aksi takdirde 0 döndürür

Daha sonra% ERRORLEVEL% değerini (gruptaki kullanıcı 0 ise, 1 değilse) beğenebilirsiniz

IF %ERRORLEVEL%==0 Net Use %LOGONSERVER%\YOURGROUPSHARE
17
deajan

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

(Get-QADGroup "GroupName"). Üyeler

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

10
Gordon Bell

Burada dsget ve dsquery kullanan yanıtlar, Windows'un diğer Windows sürümlerinde (örneğin Windows 7) gönderilmediğinden, yalnızca Windows sunucu sürümlerinde çalışır. Bu komutları olmayan makinelerde AdFind komut kullanarak istediğiniz bilgileri alabilirsiniz.

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

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

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 filename.ps1. Sonra dosyayı çalıştırın. Her gruptaki Grupları ve Kullanıcıları görüntülemeliyim, yoksa bunu powershell'den çalıştırabilirsiniz.

4
Sysadmin

UserGroup1 Deneyin:

dsquery group -name UserGroup1 | dsget group -members | dsget user -display
3
vadim