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

PowerShell创建Active Directory用户时设置Remote Desktop Services权限报错

问题原因

你遇到的报错本质是两个问题:

  1. dsquery返回的用户DN自带双引号和多余的换行/空白字符,直接拼接LDAP路径会导致[ADSI]绑定对象无效,触发「服务器未运行」类的连通性报错
  2. 用InvokeSet操作终端服务属性属于旧版兼容方案,依赖本地Terminal Services服务运行,且属性名匹配规则严格,容易触发参数未指定报错

解决方案

无需使用InvokeSet,直接修改AD用户原生的终端服务属性即可,两种实现方式如下:

方式1:保留ADSI实现(无需额外安装模块)

# 清理dsquery返回的DN格式,移除引号和空白字符
$userpath = (dsquery user -samid $username).Trim('"').Trim()
$userp = [ADSI]"LDAP://$userpath"

# 设置远程控制权限:值2代表允许远程控制无需用户确认
$userp.msTSAllowRemoteControl = 2
# 设置终端服务用户配置路径
$userp.msTSProfilePath = "\\documentsf\profiles\$username"

# 保存所有修改
$userp.SetInfo()

方式2:使用AD模块实现(更稳定,推荐)

如果已安装RSAT工具的ActiveDirectory模块,代码更简洁不易出错:

Set-ADUser -Identity $username -Replace @{
    msTSAllowRemoteControl = 2
    msTSProfilePath = "\\documentsf\profiles\$username"
}

注意事项

  • 运行脚本的账号需要持有目标OU的用户属性修改权限
  • 域功能级别需为Windows Server 2003及以上,支持msTS前缀的终端服务属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:48:03