gpt4 book ai didi

c# - Solaris 不使用 Renci.SshNet 通过远程 session 返回某些命令的输出

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:34 25 4
gpt4 key购买 nike

我正在使用 .NET 库 Renci.SshNet 连接到远程 Solaris 机器(它是 ESXi 上的 VM)。它连接良好。

我使用以下方法执行命令并获取标准输出。这在任何 Linux 机器和几乎所有 Solaris 上的命令上都能正常工作(除了少数 - 这是问题所在)

outstring = sshClient.RunCommand(command).Execute();

例如当 command = "cat/etc/release | grep Solaris" - 它工作正常。但是,当 command = "smbios -t SMB_TYPE_SYSTEM" - 它不返回任何内容。我尝试将它重定向到一个文件。文件已创建 - 但上面没有任何内容。

我使用 PuTTY 连接到系统并运行命令 - 它运行完美并提供了所需的输出。

我对这种行为感到困惑。我正在使用具有 root privilloginto 登录权限的用户名。因此排除了特权(无论如何,同一用户在 PuTTY 中获得输出)。

我想知道 Solaris(我运行的是 11.3 版)是否有任何设置或限制不允许 smbios 命令通过远程连接像这样运行?或者是别的东西?任何指导都将非常有帮助。如果需要任何进一步的信息,请告诉我。

最佳答案

嗯,原来是Path设置的问题。当您通过 Putty 登录时,将设置定义的 $PATH。因此 smbios 从 Putty 运行。

但是在 SSH session 中,不会应用 $PATH 环境变量。所以它无法找到要运行的 smbios。如果您提供 smbios 的完整路径 - 例如/usr/sbin/smbios,它可以在 Renci.SshNet 上正常执行。

关于c# - Solaris 不使用 Renci.SshNet 通过远程 session 返回某些命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39697624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com