云助手是专为云服务器ECS打造的原生自动化运维工具,可以免密码、免登录、无需使用跳板机执行命令。本文介绍Windows实例使用云助手与登录ECS实例本地执行命令的差异。

背景信息

云助手客户端作为一个服务运行在ECS实例中,直接与阿里云相关服务端通信,获取并执行命令脚本后上报结果。云助手客户端与用户使用SSH等方式远程连接到ECS实例上执行命令的通信链路不同,因此使用云助手与登录ECS实例执行命令的结果可能存在差异。

云助手不支持调用带有图形界面的程序

在ECS实例的操作系统内部可以通过PowerShell或者Bat脚本直接调用带有图形界面的程序,但是云助手不支持该功能。

云助手不能使用net use命令挂载NAS

云助手执行net use命令挂载NAS时会报错,例如使用云助手执行net use z: \\***.cn-zhang***.nas.aliyuncs.com\myshare命令时,云助手的命令输出框中提示如下错误信息。

系统错误

云助手执行命令和ECS实例本地执行命令的错误提示内容顺序不一致

问题现象

使用云助手执行命令和ECS实例本地执行命令,如果命令执行错误,错误提示的输出顺序会不一致。执行同一命令的错误示例如下:

  • 云助手执行命令云助手截图
  • ECS实例本地执行命令操作系统内部

可能原因

使用云助手执行命令,云助手客户端会轮询合并stdout和stderr,合并顺序为先合并stdout,再合并stderr,然后输出结果。而在ECS实例本地执行命令,按照命令执行过程输出结果。因此,当命令执行过程中有stderr时,云助手执行命令和ECS实例本地执行命令的错误提示内容顺序可能会不一致。