主要组 ID 电源外壳变量



我正在尝试修改我的Powershell脚本以更改/替换Active Directory用户主要组。 目前,PrimaryGroupID正在使用硬编码的数字,但我们宁愿有更多的东西......便携式。 有没有办法按名称查找特定组并将其作为变量输入到下面的代码中 - 替换">2131"主要组 ID?

# Set named users primary group to "Disabled Users"
Set-ADUser -Identity $User1 -Replace @{PrimaryGroupID="2131"}

我知道我可能想多了,答案就在我面前,但睡眠不足(新生儿(和整周盯着代码让我感到煎熬。

谢...

因此,从我的原始代码中,直接使用 PrimaryGroupID (2131( 即可工作。

Set-ADUser -Identity $User1 -Replace @{PrimaryGroupID = "2131"}

因此,我进行了下一步,将主要组 ID 放入一个变量中。这奏效并给了我相同的结果。

$group1 = "2131"
Set-ADUser -Identity $User1 -Replace @{PrimaryGroupID = $Group1}

我注意到"PrimaryGroup"和"DistinctedName"条目具有相似的值。

主要组:CN=禁用的用户,OU=禁用,
  • OU=员工禁用,DC=域,DC=COM
  • 可分辨名称:CN=禁用的用户,OU=禁用,OU=员工禁用,DC=域,DC=COM

所以我尝试在变量(失败(和直接(失败(中使用组可分辨名称。

$Group1 = (Get-ADGroup 'Disabled Users').DistinguishedName
Set-ADUser -Identity $User1 -Replace @{PrimaryGroup = $Group1}

找到了解决方案!而且它不是Set-ADUser。 需要改用设置对象

$groupSid = $group.sid $groupSid
[int]$GroupID = $groupSid.Value.Substring($groupSid.Value.LastIndexOf("-")+1)
Get-ADUser $User1 | Set-ADObject -Replace @{primaryGroupID="$GroupID"}

最新更新