主要组 ID Powershell 变量

Primary Group ID Powershell Variable

我正在尝试将我的 Powershell 脚本修改为 change/replace 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" 和 "DistinguishedName" 条目的值相似。

  • PrimaryGroup:CN=禁用用户,OU=禁用,OU=禁用员工,DC=DOMAIN,DC=com
  • DistinguishedName: CN=Disabled Users,OU=Disabled,OU=Employees DISABLED,DC=DOMAIN,DC=com

所以我尝试在变量中使用 Group DistinguishedName(失败)和直接使用(失败)。

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

找到解决方案!而且它与 Set-ADUser 无关。需要改用 Set-Object

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