Считывание идентификаторов безопасности Active Directory в локальной группе администраторов при выключенном помещении - PullRequest
0 голосов
/ 03 января 2019

У меня довольно необычный вопрос относительно группы «Локальные администраторы» (LA) на ПК с Windows. Когда система может связаться с контроллером домена (DC) (предварительно), группы безопасности активного каталога (AD) (такие как «Администраторы домена») отображаются должным образом. Естественно, что в нерабочее время DC не может быть достигнут, поэтому просмотр группы LA показывает SID этой группы вместо имени. Просматривая эти данные через компьютерное управление, я, конечно, могу прочитать этот SID. Однако сценарии PowerShell для чтения группы LA не показывают ничего о группах безопасности AD, которые не могут быть разрешены.

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

Есть мысли?

Спасибо!

1 Ответ

0 голосов
/ 05 января 2019

Решение пришло благодаря упоминанию Эрика об ADSI. Я часто использовал его в своем коде, но не думал применять его здесь. Код ниже захватывает всех членов местных администраторов. Если контроллер домена доступен, группы безопасности AD и пользователи отображаются должным образом. Если контроллер домена недоступен, он выводит идентификаторы безопасности любого объекта домена. Идентификаторы безопасности могут быть преобразованы обратно для того, что нам нужно.

$Computer = $env:COMPUTERNAME
$ADSIComputer = [ADSI]("WinNT://$Computer,computer")
$group = $ADSIComputer.psbase.children.find('Administrators',  'Group')

$group.psbase.invoke("members")  | ForEach{

    $_.GetType().InvokeMember("Name",  'GetProperty',  $null,  $_, $null)

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...