如何在Windows SSH会话中以管理员权限运行程序
Windows SSH会话中以管理员权限启动程序的解决方案
问题背景
在Windows 10搭建的OpenSSH服务器中,通过手机Jucy SSH以普通用户身份登录后,无法直接以管理员权限启动特定程序:
- 直接运行程序路径无响应
- 使用
runas /user:Administrator "C:\Program Files (x86)\program.exe"输入密码后无反应 - 本地可正常运行的PowerShell启动脚本,在SSH会话中触发安全限制
下面提供几种可行的解决方法:
方法1:调整PowerShell执行策略(解决脚本安全限制)
SSH会话默认的PowerShell执行策略可能为Restricted,禁止运行脚本。可临时调整当前用户的执行策略:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
调整完成后,即可执行你的管理员启动脚本。但注意:此方法仅解决脚本运行限制,若程序启动需要UAC弹窗,仍会因SSH无桌面环境导致失败,需配合后续方法。
方法2:禁用交互式UAC(解决runas/脚本无响应)
SSH会话为无桌面(headless)环境,UAC弹窗无法交互是导致程序启动失败的核心原因。可通过本地安全策略调整:
- 本地打开
本地安全策略(按下Win+R输入secpol.msc) - 依次展开
本地策略→安全选项 - 找到以下两项并修改设置:
用户账户控制: 用于内置管理员账户的管理员批准模式→ 设置为已禁用用户账户控制: 提示提升时切换到安全桌面→ 设置为已禁用
- 重启OpenSSH服务(命令行:
net stop sshd && net start sshd)或重启电脑
之后,无论是使用runas命令还是PowerShell脚本,都可以无交互式启动管理员权限的程序:
使用runas命令:
runas /user:Administrator "C:\Program Files (x86)\program.exe"
使用你的PowerShell脚本:
直接执行脚本即可,无需额外调整。
方法3:通过任务计划启动管理员程序
若不想修改UAC设置,可创建任务计划实现无交互启动:
- 本地打开
任务计划程序(按下Win+R输入taskschd.msc) - 点击
创建任务,在常规选项卡勾选使用最高权限运行 - 切换到
操作选项卡,点击新建,设置:- 操作:
启动程序 - 程序或脚本:
C:\Program Files (x86)\program.exe
- 操作:
- 保存任务,记好任务名称(比如
StartAdminProgram) - 在SSH会话中触发任务:
schtasks /run /tn "StartAdminProgram"
方法4:直接启动管理员权限的PowerShell会话
若需要执行多个管理员命令,可先通过runas启动管理员PowerShell:
runas /user:Administrator powershell.exe
输入管理员密码后,即可在新的PowerShell会话中直接运行程序,无需额外权限提升。
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

