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

通过OpenSSH连接Windows主机打开Word文档失败求助

远程SSH执行PowerShell打开Word文档失败问题

问题情况

  • 本地运行以下PowerShell代码,能正常打开Word文档,$doc不为空:
$word.Visible = $false    
$doc = $word.Documents.Open($file.Fullname) 
$null -ne $doc
  • 通过OpenSSH远程连接Windows主机执行相同代码时,$doc为空,而且$error里也没错误提示
  • 试过用psexec远程执行脚本,同样没成功,命令是:
ssh user@172.18.0.2 "psexec -i 1 -d powershell.exe 'opendoc.ps1'"

原因

SSH远程会话默认是无桌面的服务会话,而Word这类Office软件哪怕设了Visible = $false,也依赖桌面会话的UI组件才能正常运行。另外psexec指定的会话ID可能不对,或者权限不够切换到用户桌面会话。

解决办法

  1. 确认远程主机的用户会话ID
    在远程主机本地执行query session,找到当前登录用户的会话ID(通常是1,但可能有变化,以实际输出为准)
  2. 修正psexec命令
    替换占位符后执行:
    ssh user@172.18.0.2 "psexec -i <会话ID> -u <用户名> -p <密码> powershell.exe -ExecutionPolicy Bypass -File \"C:\脚本绝对路径\opendoc.ps1\""
    
    注意:脚本里的$file.Fullname必须用绝对路径,别用相对路径
  3. 给OpenSSH服务开启桌面交互(仅测试环境用)
    远程主机打开services.msc,找到「OpenSSH SSH Server」服务,右键属性→登录,勾选「允许服务与桌面交互」,重启服务。这个方法有安全风险,生产环境别用
  4. 改用Open XML SDK处理文档(推荐)
    直接用Word COM对象依赖桌面会话,换用Open XML SDK不需要启动Word进程,更稳定。先安装模块:
    Install-Module -Name DocumentFormat.OpenXml -Scope CurrentUser
    
    然后用这段代码打开文档:
    $doc = [DocumentFormat.OpenXml.Packaging.WordprocessingDocument]::Open($file.Fullname, $false)
    $null -ne $doc
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:15:02