如何从cygwin ssh运行win32 gui程序?

时间:2013-04-19 17:20:16

标签: windows cygwin nsis

我有一个(nsis)安装程序,我以静默模式运行。我想通过ssh运行它,以便我可以针对已安装的代码库自动运行我们的测试套件。不幸的是,当我运行该程序时,它只是启动并坐在那里,实际上并没有做任何事情。

我的猜测是,这是由于Windows服务(在这种情况下ssh)无法与桌面交互。因此,即使安装程序是静默的,它也会分配一些对象或东西并永远阻塞。

如何强制安装程序运行?请注意,它无声,不应要求任何用户输入。有没有办法可以说“在桌面上运行”还是什么?

2 个答案:

答案 0 :(得分:1)

尝试使用Sysinternals中的PsExec。如果您要通过ssh在远程计算机上执行它,请确保从桌面运行一次,以便您可以接受许可条款。

PsExec.exe -i -s "full path to program" args这样的东西应该有效。 -i在桌面上以交互模式运行程序,-s在“系统”用户下运行它,因此您无需打入用户凭据。

答案 1 :(得分:0)

尝试在我的64位win 7机器上启动交互式程序时遇到了类似的问题。

打算远程启动程序的机器:Win 8,Ubuntu

机器运行cygwin sshd:win 7

Cygwin sshd归" cyg_server"而不是本地用户,所以我无法选中框"允许服务与桌面交互" (虽然我听说复选框无论如何都不起作用。)

我以一种非常丑陋的方式解决了这个问题。我使用了tmux,现在可以在cygwin上找到。在win7框中,我启动了一个名为"启动器"的tmux会话。在启动时。

稍后,当我从另一个框中输入时,我将命令发送到tmux会话。 tmux会话是本地用户,因此它将以交互方式启动程序。