我正在寻找一种干净简单的解决方案(One-Liner?),以将众所周知的域组Domain 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动态。
谢谢
答案 0 :(得分:1)
我看不到任何 short 方式-例如,某些东西可以“自然地”排列在一行中(如果您确实愿意,可以总是将其涂抹在一起,当然)。困难的部分似乎是获取域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
答案 1 :(得分:1)
从dNC根中获取域SID:
$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