通过RDS RemoteApp运行PS1脚本:-FilePath参数配置求助
解决RDS RemoteApp运行PowerShell脚本的配置问题
正确命令配置
RemoteApp的-FilePath参数仅支持指向可执行文件(.exe),不能直接填.ps1脚本路径,也不能在该参数里附加运行参数。正确的写法是把PowerShell主程序作为目标文件,脚本路径和参数放到-RequiredCommandLine中:
New-RDRemoteApp -ConnectionBroker cb -CollectionName Applications -Alias Testing -DisplayName "Testing" -FilePath "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -UserGroups "usergroup\username" -CommandLineSetting Require -RequiredCommandLine "-ExecutionPolicy Bypass -File C:\pw.ps1 argument1" -IconPath "c:\icon.ico"
核心注意点
- 选对PowerShell版本:64位系统优先用
System32下的64位PowerShell,若脚本依赖32位组件,再改用SysWOW64路径下的32位版本。 - 强制绕过执行策略:必须加
-ExecutionPolicy Bypass,RemoteApp会话的执行策略可能和本地不同,即使本地能运行,会话里也会被拦截。 - 检查权限:确保RDS主机上的目标用户组(比如Remote Desktop Users)对
C:\pw.ps1有读取和执行权限,别只依赖管理员权限。 - 参数格式:如果脚本路径带空格,要给路径加引号,比如
-File "C:\My Scripts\pw.ps1",参数直接跟在后面即可。
额外排查步骤
如果仍报错,试试这些操作:
- 用目标用户身份在RDS主机上手动运行
powershell.exe -ExecutionPolicy Bypass -File C:\pw.ps1 argument1,确认脚本本身能正常执行。 - 检查集合内所有会话主机的脚本路径、权限是否一致。
- 查看RDS服务器事件日志(
事件查看器 > 应用程序和服务日志 > Microsoft > Windows > RemoteApp and Desktop Connections),获取更具体的错误详情。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

