Запрос членов группы Active Directory
Таким образом, в активном каталоге есть группа WebSiteUsers, которая используется для разрешения доступа к папке, которую я размещаю через IIS. Мне было интересно (используя DSQuery, ADFind или любой свободно доступный инструмент), как сделать следующее:
Как запросить отличительное имя WebSiteUsers (предположим, что оно скрыто в нескольких подразделениях в AD)?
How do I query WebSiteUsers to produce a list of users (in human readable format) that I can compare against another group to make sure all of the people who need access to this resource have been added? For this example, assume WebSiteUsers has a few thousand accounts added to it so visual inspection is not an option. I would prefer to use excel to compare the lists of users, so exporting a CSV or some sort of text file I can manipulate in excel would be ideal.
1 ответ
Чтобы найти DN, запустите команду dsquery group -name WebSiteUsers
Если у вас есть контроллер домена, настроенный для PowerShell (вы должны, это здорово), вы можете запустить команду $WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
а также $WebSiteUsers | Export-CSV
для вывода в CSV. Вы также можете использовать Compare-Object
команда вроде так:
$WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
$OtherGroupUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=OtherGroups,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
Compare-Object -ReferenceObject $WebSiteUsers -DifferenceObject $OtherGroupUsers -Property Name
Это исключит список имен, которые не входят в ту или иную группу. (Добавлять -IncludeEqual
если вы хотите видеть всех.) Это значительно облегчит визуальный осмотр:
Jim Bob =>
Suzie Q <=
Harold Johnson <=
Если вы хотите добавить всех, кто входит в другую группу, в группу WebSiteUsers:
Compare-Object $OtherGroupUsers $WebSiteUsers | Where {$_.SideIndicator -eq '=>'} | foreach{Add-ADGroupMember -Identity WebSiteUsers -Members $_}
Не мешало бы добавить -WhatIf в команду Add-ADGroupMember, чтобы дважды проверить, что она будет делать то, что задумано.
Вы также можете получить этот список, используя оснастку "Active Directory - пользователи и компьютер". Для этого вам потребуется установить RSAT с вашей рабочей станции, в противном случае вы можете подключиться к контроллеру домена и открыть его.
Щелкните правой кнопкой мыши на Сохраненные запросы и выберите Новый, Запрос:
Дайте ему произвольное имя и краткое описание, затем нажмите "Определить запрос":
Под Find:
Выбрать Custom Search
, Нажмите на поле и выберите Пользователь, Член
Введите название группы, которую вы хотите включить, и нажмите Добавить:
Теперь вы можете просмотреть этот список в ADUC. Чтобы экспортировать его, нажмите кнопку "Экспорт списка". Это выведет в текстовый файл с разделителями табуляции.