Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
主组ID Powershell变量_Powershell_Active Directory_Windows Server 2012 R2 - Fatal编程技术网

主组ID Powershell变量

主组ID Powershell变量,powershell,active-directory,windows-server-2012-r2,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"} 我知

我正在尝试修改Powershell脚本以更改/替换Active Directory用户主组。目前,PrimaryGroupID使用的是硬编码的数字,但我们希望有更多的。。。便携式。是否有办法按名称查找特定组并将其作为变量输入下面的代码中-替换“2131”主组ID

# Set named users primary group to "Disabled Users"
 Set-ADUser -Identity $User1 -Replace @{PrimaryGroupID="2131"}
我知道我可能想得太多了,答案就在我面前,但是缺乏睡眠(新生婴儿)和整个星期都盯着代码看让我发火


Thanx…

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

Set-ADUser -Identity $User1 -Replace @{PrimaryGroupID = "2131"}
因此,我进入下一步,将主要组ID放入一个变量中。这很有效,给了我同样的结果

$group1 = "2131"
Set-ADUser -Identity $User1 -Replace @{PrimaryGroupID = $Group1}
我注意到“PrimaryGroup”和“DifferentizedName”条目都有相似的值

  • PrimaryGroup:CN=禁用用户,OU=禁用,OU=禁用员工,DC=域,DC=com
  • DifferentizedName:CN=已禁用的用户,OU=已禁用,OU=已禁用的员工,DC=域,DC=com
因此,我尝试在变量(失败)和直接(失败)中使用组differentiedName


找到了解决办法!而且这并不是因为赛特·阿杜瑟。需要改用Set对象


我自己无法测试它,但我假设类似于
@{PrimaryGroupID=Get-ADGroup“name”}
的东西可以工作。为什么要更改用户的主组?它是“用户禁用”脚本的一部分。基本上,我删除了所有组成员资格,只留下一个禁用的用户。mklement0。。。谢谢你的建议。不幸的是,它似乎不起作用。我收到以下错误:无效类型“Microsoft.ActiveDirectory.Management.ADGroup”。参数名称:PrimaryGroupID+CategoryInfo:InvalidArgument:(user.test:ADUser)[设置ADUser],ArgumentException+FullyQualifiedErrorId:ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm and.SetADUser+PSComputerName:[域控制器]
$Group1 = (Get-ADGroup 'Disabled Users').DistinguishedName
Set-ADUser -Identity $User1 -Replace @{PrimaryGroup = $Group1}
$groupSid = $group.sid $groupSid
[int]$GroupID = $groupSid.Value.Substring($groupSid.Value.LastIndexOf("-")+1)
Get-ADUser $User1 | Set-ADObject -Replace @{primaryGroupID="$GroupID"}