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

通过OpenSSH在Windows Server 2022运行PsExec仅显示前三行求助

问题:Windows Server 2022 SSH会话中PsExec仅显示部分输出

我有一台安装了Windows Server 2022的测试机,已从官网下载包含PsExec.exe的PsTools文件夹,且启用了OpenSSH服务器。从另一客户端SSH连接到该测试机,切换到PsTools目录后无参数运行.\PsExec.exe,正常情况下程序应显示全部可用参数,但仅能看到前三行内容:

PS C:\Tools\PSTools> .\PsExec.exe

PsExec v2.43 - Execute processes remotely
Copyright (C) 2001-2023 Mark Russinovich
Sysinternals - www.sysinternals.com

尝试将Command Line和PowerShell设为OpenSSH的默认Shell,结果依旧相同。Windows 10上执行相同操作时,程序可正常显示全部内容。请问遗漏了什么配置?


可能的原因及解决方法

1. 控制台输出缓冲/分页问题

Windows Server 2022的SSH会话可能默认启用分页,导致PsExec输出被截断。可尝试以下操作:

  • 强制读取stderr输出(PsExec帮助信息默认输出到stderr):
    .\PsExec.exe 2>&1 | type
    
  • 临时禁用PowerShell分页:
    $Env:PAGER = ''
    
    执行后再运行.\PsExec.exe即可查看完整输出。

2. OpenSSH服务TTY配置

Windows Server 2022的OpenSSH服务器可能限制了TTY交互,修改配置解决:

  • 打开C:\ProgramData\ssh\sshd_config文件,添加或修改:
    AllowTTY yes
    
  • 保存后重启OpenSSH服务:
    Restart-Service sshd
    
    重新连接SSH后测试PsExec输出。

3. 输出流适配处理

PsExec的帮助信息走stderr流,SSH会话对其处理可能存在差异,强制输出到控制台:

.\PsExec.exe 2>&1 | Out-Host

Out-Host会绕过缓冲直接输出全部内容。

4. 终端窗口缓冲区调整

SSH客户端终端宽度不足可能导致换行异常,调整缓冲区大小:

$Host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size(120, 500)

设置后再运行PsExec,查看完整输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:21:00