2

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

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

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

4

2 回答 2

1

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

类似的东西PsExec.exe -i -s "full path to program" args应该可以工作。-i在桌面上以交互模式运行程序,并-s在“系统”用户下运行它,这样您就不必输入用户凭据。

于 2013-04-19T18:03:16.273 回答
0

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

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

机器运行 cygwin sshd:win 7

Cygwin sshd 由“cyg_server”拥有,而不是本地用户,因此我无法选中“允许服务与桌面交互”框(尽管我听说该复选框无论如何都不起作用)。

我以一种非常丑陋的方式解决了这个问题。我使用了 tmux,它现在可以在 cygwin 上使用。在 win7 机器上,我在启动时启动了一个名为“launcher”的 tmux 会话。

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

于 2015-03-17T16:59:25.150 回答