it-swarm-ru.tech

Командная строка для просмотра списка пользователей в группе Windows Active Directory?

Есть ли способ командной строки для перечисления всех пользователей в определенной группе Active Directory?

Чтобы узнать, кто входит в группу, перейдите в Управление компьютером -> Локальный пользователь/группы -> Группы и дважды щелкните группу ,.

Мне просто нужен способ командной строки для извлечения данных, чтобы я мог выполнять некоторые другие автоматизированные задачи.

138
Flyer

пытаться

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

Вот еще один способ из командной строки: не уверен, насколько это автоматизируемо, поскольку вам придется анализировать вывод:

Если группа является "глобальной группой безопасности":

net group <your_groupname> /domain

Если вы ищете "локальная группа безопасности домена":

net localgroup <your_groupname> /domain
243
asdasddfg

Вот версия команды ds, которую я нашел более полезной, особенно если у вас сложная структура OU и вы не обязательно знаете полное отличительное имя группы.

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

или если вы знаете CN группы, обычно такой же, как идентификатор SAM, который указывается в случае пробелов в имени:

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

Как указано в комментариях, по умолчанию команды ds * (dsquery, dsget, dsadd, dsrm) доступны только на контроллере домена. Однако вы можете установить пакет инструментов администратора из средств поддержки на установочный носитель Windows Server или загрузить его с сайта загрузки Microsoft.

Вы также можете выполнить эти запросы с помощью PowerShell. PowerShell уже доступен в качестве устанавливаемой функции для Server 2008, 2008 R2 и Windows 7, но вам нужно загрузить WinRM Framework , чтобы установить его на XP) или виста.

Чтобы получить доступ к любым специфичным для AD командлетам в PowerShell, вам [~ # ~] также [~ # ~] необходимо выполнить хотя бы одну из следующих установок:

49
Ryan Fisher

Для решения PowerShell, для которого не требуется надстройка Quest AD, попробуйте следующее

Import-Module ActiveDirectory

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

Это будет перечислять и вложенные группы. Если вы не хотите этого делать, удалите переключатель - - recursive.

25
pk.

Очень простой способ, который работает на серверах и клиентах:

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

Возвращает 1, если пользователь находится в группе YOURGROUPNAME, иначе вернет 0

Затем вы можете использовать значение% ERRORLEVEL% (0, если пользователь в группе, 1, если нет), например

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

Используя PowerShell и бесплатную командную консоль ActiveRoles для Active Directory от Quest Software, вы можете использовать:

(Get-QADGroup "GroupName"). Члены

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

10
Gordon Bell

Здесь ответы с использованием dsget и ​​dsquery будут работать только на серверных версиях Windows, поскольку эти команды не поставляются в других версиях Windows (например, Windows 7). На машинах без этих команд вы можете получить необходимую информацию, используя команда AdFind .

Вот пример запроса для получения членства в группе:

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

Как составить список локальных групп и пользователей?

Используйте следующий скрипт powershell, чтобы перечислить локальные группы и членов этих групп.

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

Скопируйте приведенный выше текст в блокнот и сохраните как filename.ps1. Затем запустите файл. Я должен отобразить группы и пользователей в каждой группе, или вы можете просто запустить это из powershell.

4
Sysadmin

Для отображения членов UserGroup1 пытаться:

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