有一个轻量级的方式来启动从远程win7机器上的应用程序从Linux?

我试图find一个轻量级的方式来启动从远程Windows7机器上的应用程序从Linux。

以下是我的边界条件:

  • Windows7系统与Linux机器位于同一LAN的同一子网中。
  • 如果需要,具有pipe理员权限的本地用户帐户在该机器上可用,并且密码是已知的。
  • 应该在Windows机器上启动的应用程序需要显示一个窗口。 这不仅仅是一个过程。
  • 在windows7系统上不需要进一步的交互。
  • 我不想在该系统上安装完整的cygwin。
  • 我试图使用相当于psExec(winexe)的Linux,但我仍然需要在Windows7机器上确认一些警告。

从另一台Windows7机器使用psExec的作品,但我必须从一台Linux主机在Windows机器上启动一个进程

编辑:

我可以自由安装额外的软件,但我不想安装mysys或cygwin。

应用程序需要立即启动(即一旦linux机器触发“启动应用程序”)。 IMO轮询不是一个选项。

正如我发现的那样,警告窗口7显示了什么时候它应该从winexe调用命令是一个称为“会话0隔离”的function ,并没有find一个方法来把它closures。

RSHD将做你正在寻找的东西。 它可以在当前login用户的上下文中运行,并监听端口上的来自预授权主机的传入连接。 你可以发送一个命令(如calc.exe),并让应用程序出现在用户的桌面上。

请注意,有很多的实现,我不想推荐一个在另一个,一些作为服务运行,但您可能需要find一个在login用户的上下文中运行,以执行您所要求的。

编辑回应评论:

我以前用过这个 ,就像你问的那样。 它是轻量级的,只是一个独立的二进制文件。

首先,在Windows PC上创build一个rhosts文件,并将其保存为c:\windowsrhosts (注意,这不是一个错字,这个文件存在于C盘的根目录下)。 该文件应该包含您要连接的远程Linux计算机的FQDN,然后是用户名,例如

 remotepc.example.com bryan 

接下来,使用以下命令创build一个在login时执行的batch file

 rshd.exe -d 

这将留下一个命令提示符窗口,您可以将其最小化。

在你的Linux PC上下载一个RSH客户端(我只使用Windows RSH客户端进行testing)

我刚刚testing过,并使用以下命令启动了calc

 rsh windowspc.example.com -l bryan calc 

…并在Windows桌面上popupcalc.exe。

我知道这个线程是3岁,但这是我find的解决scheme。

出于某种原因,winexe的“–interactive = 1”不像psexec的“-i”选项。 使用winexe,用户仍然必须接受“交互式服务检测”对话框。

可能的解决scheme是:

1 – 使用smbclient或CIFS共享将psexec上传到Windows机器。 2 – (可选)上传要运行的GUI程序。 3 – 通过winexe通过psexec运行GUI程序。 喜欢这个:

 winexe --uninstall --interactive=0 -U 'WinAdmin%WinAdminPasswd' //1.2.3.4 '\windows\temp\psexec.exe -i \\127.0.0.1 -u WinAdmin -p WinAdminPasswd notepad.exe 

记事本将成功显示在login用户的桌面上。

如果仍然出现“交互式服务检测”对话框,则必须先禁用该服务,然后重新启用:

 winexe --interactive=0 -U 'WinAdmin%WinAdminPasswd' //1.2.3.4 'cmd /c sc config UI0detect start= disabled > NUL & sc stop UI0detect > NUL' // (do your stuff) winexe --interactive=0 -U 'WinAdmin%WinAdminPasswd' //1.2.3.4 'cmd /c sc config UI0detect start= manual > NUL & sc start UI0detect > NUL' 

你说你不想安装cygwin,但是你是否愿意在Windows电脑上安装其他的东西? 您可以在Windows计算机上安装SSH服务器,或者安装Telnet服务器function(不是非常安全,除非计算机安全防火墙才会提示)。

另一个select将是更多的一个kludge。 然后在某个地方发布一个空白的batch file,在你的linux电脑上说一个samba共享,具有读/写权限。 然后在Windows 7计算机上创build一个每5分钟执行一次batch file的任务。 在所述脚本中,将第一行下载空白脚本到Windows 7计算机,第二行将该batch file作为脚本调用另一个脚本。 通常这个文件是空白的,所以当任务运行的时候下载一个空白的脚本,然后调用那个脚本(什么也不做)然后退出。 当你想“运行一个命令”时,只需要改变你的脚本,把第一行的第一行和第二行的脚本(通常是空白)压在共享上,用一个空白文件覆盖(为了防止你的命令第二次执行)。

我只是安装了一个SSH服务器和SSH,但是可能是一个“开箱即用”的方式来完成,而不需要在Windows PC上安装一个软件。

如何从Linux的RDP或VNC客户端 – 例如Remmina(您可以定义屏幕颜色深,甚至Windows凭据)或krdc对于RDP你不需要安装任何东西 – 只要启用远程桌面