ALE*_*LEX 8 ssh user-interface automation windows-10
我正在尝试执行labview VI,从另一台Windows机器上通过ssh调用的.bat文件启动它。所以我这样做
ssh myuser@IP
cd Desktop
launchVis.bat
Run Code Online (Sandbox Code Playgroud)
我使用用户名和密码进行连接。myuser 拥有启动批处理文件的所有权限。同时,我通过同一台计算机上的 RDP 连接检查执行情况。
如果我从远程计算机上的cmd行运行bat文件,VI将正常启动如果我从ssh连接运行bat文件,我可以在bat文件中看到回显的输出,但LabVIEW将在不同的会话中启动来自 RDP-TCP#1。结果是,我可以看到一个名为“Services”的会话中启动了一个“LabVIEW”进程,但我看不到 VI 正在执行,而且一般来说,我不知道 IF 是否正在执行。
谷歌搜索这个问题,似乎我无法避免在“服务”会话中启动进程,因此,我无法通过 SSH 启动任何 GUI 程序。建议的解决方案是使用 PsExec,或者可能是 ssh 服务器的第三部分(通过第三部分 ssh 服务器,我在 Windows 7 上实现了目标)
dom*_*mih 10
将 SSHd 作为服务运行会使启动桌面应用程序变得困难,因为服务无法访问用户桌面(Windows Station,WinSta0
)链接
选项 1:以用户身份启动 SSHd
fork of unprivileged child failed
,因为自 2017 年发布 OpenSSH 7.5 以来,不再可能以用户身份运行 SSHd链接选项 2:使用可以访问 Windows Station 的启动器
在 Windows 上,还有 2 个选项可以通过 SSH 启动桌面应用程序:链接到 Github OpenSSH 问题
用法:
ssh user@host "psexec -i 1 mydesktoplauncher.bat"
Run Code Online (Sandbox Code Playgroud)
有关可选参数,请参阅psexec 文档,例如-i 1
使用第三方 ssh 服务器的“解决方案”是这样的:
这样,ssh 服务器将以用户身份启动并可以执行 GUI 程序。
不幸的是,我没有设法使用 Windows 官方 OpenSSH 服务器实现相同的目标,因为它无法作为用户启动,但似乎只能作为服务运行