You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win Server 2022 AD:PowerShell建GPO将域用户加入Remote Desktop Users组

PowerShell自动化创建GPO实现域用户加入客户端本地Remote Desktop Users组

前置依赖

  • 域控制器需安装组策略管理RSAT组件,AD DS角色部署完成后可直接通过Import-Module GroupPolicy导入所需PowerShell模块
  • 执行脚本的账号需具备GPO创建、编辑、链接到目标OU的权限
  • 方案适配Windows Server 2022 AD环境,支持所有Windows 7/Server 2008R2及以上版本的域加入客户端

方案1:组策略首选项(GPP)本地组配置(推荐,不覆盖原有组成员)

该方案对应手动配置组策略首选项本地组规则的逻辑,仅向目标本地组追加指定成员,不会清空组内原有账号,适合绝大多数生产场景。
可直接复用以下PowerShell脚本,执行前替换参数区的环境相关值即可:

# -------------------------- 配置参数 按需修改 --------------------------
$gpoName = "GPO-自动追加域用户到本地RDP组"
$targetOUDN = "DC=corp,DC=local"  # 替换为需要应用GPO的目标OU可分辨名称,填域根DN则对所有域设备生效
$domainNetbiosName = "CORP"       # 替换为当前域的NetBIOS名称
$targetDomainUser = "rdp_allow"   # 替换为需要加入本地RDP组的域用户名
$localGroupName = "Remote Desktop Users"
$localGroupFixedSid = "S-1-5-32-555" # Remote Desktop Users组内置固定SID,无需修改
# ----------------------------------------------------------------------

# 创建空GPO
$newGpo = New-GPO -Name $gpoName -Comment "自动部署:追加指定域用户到所有域客户端本地Remote Desktop Users组"

# 构造GPP本地组配置XML,规则为更新组配置、追加成员
$gppGroupConfig = @"
<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}">
  <Group clsid="{6D4A79E4-529C-4481-ABD0-F5BD7EA93BA7}" name="$localGroupName" image="2" changed="$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" uid="{$(New-Guid)}" userContext="0" removePolicy="0">
    <Properties action="U" newName="" description="" deleteAllUsers="0" deleteAllGroups="0" removeAccounts="0" groupSid="$localGroupFixedSid" groupName="$localGroupName">
      <Members>
        <Member name="$domainNetbiosName\$targetDomainUser" action="ADD" sid="" />
      </Members>
    </Properties>
  </Group>
</Groups>
"@

# 写入配置到GPO对应的SYSVOL存储路径
$gpoConfigPath = "\\$env:USERDNSDOMAIN\SYSVOL\$env:USERDNSDOMAIN\Policies\{$($newGpo.Id)}\Machine\Preferences\Groups"
if (-not (Test-Path $gpoConfigPath)) {
    New-Item -Path $gpoConfigPath -ItemType Directory -Force | Out-Null
}
$gppGroupConfig | Out-File -FilePath (Join-Path $gpoConfigPath "Groups.xml") -Encoding UTF8 -Force

# 将GPO链接到目标OU并启用
New-GPLink -Guid $newGpo.Id -Target $targetOUDN -LinkEnabled Yes -Enforced No

配置说明:XML中action="U"代表更新本地组配置而非重建,action="ADD"代表仅追加指定成员。如需添加多个用户/域组,只需在<Members>节点下新增对应的<Member>条目即可。

方案2:受限组(Restricted Groups)配置

如果需要通过受限组策略实现,注意直接配置本地组的Members节点会强制覆盖组内所有原有成员,易引发权限故障,推荐通过配置域组的「隶属于」规则实现追加效果:提前创建一个专门用于RDP授权的域全局组,将需要授权的用户加入该域组,再通过GPO配置该域组自动加入所有客户端的本地Remote Desktop Users组,不会影响原有组成员。
对应实现脚本如下:

# -------------------------- 配置参数 按需修改 --------------------------
$gpoName = "GPO-受限组配置RDP权限"
$targetOUDN = "DC=corp,DC=local"
$authDomainGroupDN = "CN=RDP授权用户组,OU=权限组,DC=corp,DC=local" # 提前创建的域授权组
$localRDPGroupSid = "S-1-5-32-555"
# ----------------------------------------------------------------------

$newGpo = New-GPO -Name $gpoName
# 写入受限组配置
Set-GPRegistryValue -Guid $newGpo.Id -Key "HKLM\Software\Policies\Microsoft\Windows\RestrictedGroups" -ValueName "RestrictedGroups" -Type String -Value (
@"
<RestrictedGroups>
  <RestrictedGroup name="$authDomainGroupDN" sid="">
    <MemberOf>
      <Group sid="$localRDPGroupSid" name="Remote Desktop Users"/>
    </MemberOf>
  </RestrictedGroup>
</RestrictedGroups>
"@
)
New-GPLink -Guid $newGpo.Id -Target $targetOUDN -LinkEnabled Yes

配置验证

  • GPO部署完成后,在客户端执行gpupdate /force强制刷新组策略
  • 客户端执行net localgroup "Remote Desktop Users"查看成员列表,确认目标域用户已存在
  • 域控端可通过Get-GPResultantSetOfPolicy命令远程校验客户端策略应用状态

内容的提问来源于stack exchange,提问作者Victor Camargo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:02:16