Как добавить известную доменную группу в локальную группу? - PullRequest
0 голосов
/ 07 ноября 2019

Я ищу простое и понятное решение (One-Liner?) Для добавления хорошо известной доменной группы Domain Users в локальную группу, такую ​​как «Пользователи с прямым доступом».

  • Команда / скрипт будет выполняться на Win10-клиенте.
  • Для этого не следует использовать дополнительный модуль, такой как "RSAT-AD-PowerShell".
  • Код должен работать независимо от языка ОС.

Я использовалследующий код для добавления «Authenticated Users» (= Хорошо известный SID S-1-5-11) в локальную группу:

Add-LocalGroupMember -Group "Direct Access Users" -Member S-1-5-11 -Verbose

Это работает нормально, потому что SID статический, ноSID для «пользователей домена» выглядит следующим образом S-1-5-21Domain-513, и я хочу получить динамический SID домена.

Спасибо

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Получение SID домена из корня dNC:

$RootDSE = [adsi]"LDAP://RootDSE"
$dNC = [adsi]"LDAP://$($RootDSE.defaultNamingContext)"
$domainSID = [System.Security.Principal.SecurityIdentifier]::new($dNC.Properties['objectSID'].Value, 0)
$domainUsers = [System.Security.Principal.SecurityIdentifier]::new('AccountDomainUsersSid', $domainSID)

Add-LocalGroupMember -Group "Direct Access Users" -Member $domainUsers.Value
1 голос
/ 07 ноября 2019

Я не вижу никакого короткого способа сделать это - например, что-то, что поместится в одну строку "естественно" (вы всегда можете просто сделать это вместе, если действительно хотите, изкурс). Трудная часть, кажется, получение доменного SID;как только вы это сделаете, создать известный SID группы «Пользователи домена» достаточно просто. Ниже используется учетная запись компьютера для этого;код может быть сокращен, если вам позволят предположить, что пользователь домена запускает это.

$qualifiedComputerName = [DirectoryServices.ActiveDirectory.Domain]::GetComputerDomain().Name + "\" + [Environment]::MachineName + "$"
$computerAccount = [Security.Principal.NTAccount]::new($qualifiedComputerName)
$domainSid = $computerAccount.Translate([Security.Principal.SecurityIdentifier]).AccountDomainSid
$domainUsersSid = [Security.Principal.SecurityIdentifier]::new("AccountDomainUsersSid", $domainSid).Value

Add-LocalGroupMember -Group "Direct Access Users" -Member $domainUsersSid -Verbose
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...