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

Get-RDUserSession命令在Windows任务计划程序中运行失败问题咨询

问题核心原因
  • PowerShell架构不匹配:Remote Desktop Service 相关的PowerShell模块仅在64位版本的PowerShell中预装,若任务计划程序调用的是SysWOW64目录下的32位PowerShell,无法正常加载模块读取RDS部署信息,就会触发该报错。
  • 非交互式环境未自动加载模块:任务计划程序的非交互式运行上下文不会自动加载RemoteDesktop模块,导致cmdlet调用异常。
  • 会话0权限限制:如果任务计划配置为「不管用户是否登录都要运行」,任务会在0号非交互会话中执行,RDS模块的部分权限校验逻辑无法在会话0中正常读取部署配置,即使授予管理员最高权限也会报错。
修复方案
  1. 指定64位PowerShell运行路径
    在任务计划的「操作」配置页,不要直接填写powershell.exe作为启动程序,明确指定64位PowerShell的完整路径:
    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    注意不要选择C:\Windows\SysWOW64\路径下的32位版本。

  2. 脚本开头显式导入RDS模块
    在调用Get-RDUserSession之前,先添加模块导入代码,强制加载64位版本的RDS模块:

Import-Module RemoteDesktop -Force
# 如仍报错可使用完整路径加载
# Import-Module "C:\Windows\System32\WindowsPowerShell\v1.0\Modules\RemoteDesktop\RemoteDesktop.psd1" -Force
  1. 调整任务运行配置
    将任务计划的运行选项从「不管用户是否登录都要运行」改为「只在用户登录时运行」,保持「使用最高权限运行」的勾选,同时确认运行任务的账户拥有RDS部署管理员权限。

  2. 正确指定连接Broker参数
    调用Get-RDUserSession时明确传入连接Broker的完整FQDN:

$id = Get-RDUserSession -ConnectionBroker "OurServer.OurDomain.com"
备选方案(无需依赖RDS模块)

如果确实需要配置为后台不登录运行,可以改用原生命令读取RDS会话信息,避免模块加载问题:

  • 使用quser命令解析输出
  • 使用CIM调用获取会话信息:
Get-CimInstance -ClassName Win32_LogonSession -Filter "LogonType = 10"

内容的提问来源于stack exchange,提问作者A. Guattery

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:15:04