首页 > 解决方案 > 如何将知名域组添加到本地组?

问题描述

我正在寻找一个干净简单的解决方案(One-Liner?)将众所周知的域组添加Domain Users到本地组,如“直接访问用户”。

我使用以下代码将“Authenticated Users”(= Well-known-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 动态。

谢谢

标签: powershell

解决方案


我看不出有什么捷径可以做到这一点——比如,可以“自然地”放在一行中的东西(当然,如果你真的想的话,你总是可以把它放在一起)。困难的部分似乎是获取域 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

推荐阅读