Получить членство в группе компьютеров без поиска в AD

Есть ли аналог для получения членства компьютера в группе AD без запуска поиска в AD? Мне нужно иметь возможность получить идентификаторы SID группы компьютеров, входящих в группу AD, даже если машина не имеет подключения к контроллеру домена, работающему под стандартной учетной записью пользователя.

По сути, ищем эквивалент этого, за исключением текущей учетной записи компьютера.

$groups = [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups

person Malcolm McCaffery    schedule 19.08.2016    source источник
comment
Поскольку эта информация находится в AD, нет, вы не можете получить ее без фактического общения с AD, боюсь...   -  person marc_s    schedule 19.08.2016
comment
Да, это возможно получить, потому что эта информация кэшируется, по крайней мере, SID, как в приведенном мной примере членства в группе пользователей, который показывает членство пользователя в группе AD (как SID групп) без подключения к AD. Пример для групп компьютеров: gpresult /h out.htm покажет SID для членства в группе домена компьютера без подключения к AD. Я проведу дальнейший анализ того, как это делает gpresult.   -  person Malcolm McCaffery    schedule 21.08.2016


Ответы (1)


Я придумал, как это сделать с помощью обратного проектирования gpresult. Для этого сначала в качестве администратора я предоставил обычным пользователям доступ к WMI пространству имен root\rsop\COMPUTER.

Я бы предпочел решение без необходимости делать это, но требует дальнейшего изучения.

Однократная настройка машины с помощью сценария Set-WmiNamespaceSecurity.ps1

Set-WmiNamespaceSecurity.ps1 root/rsop/COMPUTER add Users Enable 

Теперь я могу получить группу компьютеров Active Directory SIDs с компьютера, как обычный пользователь, даже если он не подключен к сети с помощью следующей оболочки PowerShell:

(Get-WmiObject -Namespace "root\rsop\COMPUTER" -Class RSOP_Session -Property SecurityGroups).SecurityGroups
person Malcolm McCaffery    schedule 02.09.2016