主要组ID Powershell变量

时间:2018-06-14 16:37:00

标签: powershell active-directory windows-server-2012-r2

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

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

我知道我可能会过度思考问题而答案就在我面前,但缺乏睡眠(新生宝宝)并且整个星期盯着代码都让我感到精疲力竭。

...感谢名单

2 个答案:

答案 0 :(得分:0)

所以从我的原始代码,直接使用PrimaryGroupID(2131),工作。

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

所以我进入下一步并将主要组ID放入变量中。这起作用并给了我相同的结果。

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

我注意到" PrimaryGroup"和#34; DistinguishedName"条目具有相似的价值。

  • PrimaryGroup :CN =已停用用户,OU =已停用,OU =已禁用员工,DC = DOMAIN,DC = com
  • DistinguishedName :CN =已停用用户,OU =已停用,OU =已禁用员工,DC = DOMAIN,DC = com

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

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

答案 1 :(得分:0)

找到解决方案!它不是 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"}