Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 在Windows上通过OpenSSH启动GUI程序?_User Interface_Ssh_Automation_Windows 10 - Fatal编程技术网

User interface 在Windows上通过OpenSSH启动GUI程序?

User interface 在Windows上通过OpenSSH启动GUI程序?,user-interface,ssh,automation,windows-10,User Interface,Ssh,Automation,Windows 10,我正在尝试执行labview VI,从另一台Windows机器上的.bat文件(通过ssh)启动它。 我也是 我用用户和密码连接。myuser拥有启动批处理文件的所有权限。 同时,我在同一台机器上通过RDP连接检查执行情况 如果我从远程机器上的cmd行运行bat文件,VI将正常启动 如果我从ssh连接运行bat文件,我可以在bat文件中看到回声的输出,但是LabVIEW将在RDP-TCP#1的不同会话中启动。 结果是,我可以看到在名为Services的会话中启动了一个“LabVIEW”进程,但我

我正在尝试执行labview VI,从另一台Windows机器上的.bat文件(通过ssh)启动它。 我也是

我用用户和密码连接。myuser拥有启动批处理文件的所有权限。 同时,我在同一台机器上通过RDP连接检查执行情况

如果我从远程机器上的cmd行运行bat文件,VI将正常启动 如果我从ssh连接运行bat文件,我可以在bat文件中看到回声的输出,但是LabVIEW将在RDP-TCP#1的不同会话中启动。 结果是,我可以看到在名为Services的会话中启动了一个“LabVIEW”进程,但我看不到VI正在执行,一般来说,我不知道VI是否正在执行

在谷歌上搜索这个问题,我似乎无法避免在“服务”会话中启动进程,因此,我无法通过SSH启动任何GUI程序。 建议的解决方案是使用PsExec,或者可能是第三部分ssh服务器(使用第三部分ssh服务器,我通过Windows 7实现了我的目标)

使用第三部分ssh服务器的“解决方案”如下:
1) 卸载Windows10的可选功能“OpenSSH服务器”
2) 下载并安装第三部分ssh服务器。我用了freeshd
3) 不要将此软件作为服务安装。
4) 在软件设置中设置允许的用户。
5) 在shell::startup文件夹中放置一个指向此软件exe的链接,以便在启动时运行。

这样,ssh服务器将作为用户启动,并可以执行GUI程序


不幸的是,我没有达到与Windows官方OpenSSH服务器相同的目标,因为它无法作为用户启动,但似乎只能作为服务运行

将SSHd作为服务运行会使启动桌面应用程序变得困难,因为服务无法访问用户桌面(Windows Station,
WinSta0

选项1:以用户身份启动SSHd

  • 这在最新的OpenSSH实现中失败,因为2017年发布了OpenSSH 7.5之后,不再可能以用户身份运行SSHd
  • 使用旧的实现或OpenSSH的分支,例如dropbear、Freesh或类似工具
选项2:使用可访问Windows工作站的启动器

在Windows上,通过SSH启动桌面应用程序还有两个选项:

  • 施塔克斯
  • 本地主机上的psexec
用法:

ssh user@host "psexec mydesktoplauncher.bat"

看起来,如果您想启动GUI界面,那么应该以用户而不是服务的身份启动sshd服务器。不幸的是,如果您尝试以用户身份启动它,即使具有管理员权限,也会失败。您好,Domih-我尝试了上面的psexec命令,但它似乎卡住了-我正在尝试一些非常基本的操作-C:\psexec>sshAdministrator@xx.xxx.xxx.xx“psexec c:\windows\regedit.exe”psexec v2.34-远程执行进程版权所有(c)2001-2021 Mark Russinovich Sysinternals-www.Sysinternals.com我应该期待regedit用这个打开吗?身份验证是基于密钥的,并且在没有psexec命令的情况下可以正常工作。服务器有OpenSSH、任何指针吗?您尝试调用需要提升权限的程序。我想,如果您直接使用命令行调用UAC,它会要求您输入管理员密码。我的经验是在用户上下文中以及如何将应用程序带到用户桌面。您可以尝试调用runas,但这基本上是真正丑陋的事情开始的地方。。
ssh user@host "psexec mydesktoplauncher.bat"