如何通过mac机器上的ssh获取windows机器的GUI访问权限?

时间:2014-07-24 06:16:44

标签: windows ssh automation openssh

我正在尝试实现一个自动化框架,我想在python中运行一个脚本,通过在mac机器上使用ssh来启动windows .exe文件(例如记事本)。

我已经考虑过X11,openssh,freessh。

我可以运行python脚本,但由于我在Windows机器上没有GUI访问权限,因此无法看到记事本被启动。

此外,导出显示不是Windows的选项。

如果有人能让我知道如何实现这一点,我将非常感激。

提前致谢!

4 个答案:

答案 0 :(得分:1)

这解决了我的问题:

https://superuser.com/questions/531787/starting-windows-gui-program-in-windows-through-cygwin-sshd-from-ssh-client

感谢您的回答!

基本上只需要安装Cygwin SSH并使用屏幕来检索GUI。即使是基于Pyro / RPyC的架构也会有所帮助。

答案 1 :(得分:0)

一种选择是在OSX中使用Parallels,另一种是在服务器中使用RDP(Windows版本的SSH + VNC)。

(我不清楚你想要实现的目标)

答案 2 :(得分:0)

您可以使用AutoHotkey检测窗口是否存在。据我所知,你可以使用python中的AutoHotkey。我无法给出如何使用python中的AutoHotkey的确切链接(我不熟悉python)但是如果你搜索“autohotkey python”,谷歌中有很多链接。这是用于检测窗口是否存在的AutoHotkey代码,在这种情况下执行一些代码。

Loop
{
    SetTitleMatchMode, 2 ;sets to window's title can contain WinTitle anywhere inside it to be a match. So we can match Notepad Wintitle only with "Notepad". In that case we dont need Notepad exact Wintitle.
    IfWinExist, Notepad
    {
        ;Here should be any code that is executed if window exests.
    }
    Sleep, 1000 ; That command allows to check window every 1sec(1000 milliseconds). You can change that value or complitly remove that command.
}

始终使用http://ahkscript.org/的AutoHotkey(当前版本,新官方网站)!来自autohotkey.com的AutoHotkey已过时!

答案 3 :(得分:0)

最可靠的解决方案可能是使用Jenkins。设置步骤非常简单:

  • 在Mac上安装Jenkins服务器(它也适用于Linux)。
  • 在Windows VM上,安装Java并按照描述how to set up a Windows node
  • 的Jenkins文档进行操作
  • 将Windows VM连接到Jenkins服务器后,尝试在Jenkins Web UI中创建作业,并查看服务器是否可以在Windows VM上运行它。
  • 通过作业后,您可以使用Jenkins remote access API从另一个脚本(例如,来自您提到的Linux主机)远程启动它。或者,如果人类将远程启动该作业,他们可以简单地使用Web UI。

一个重要的注意事项:

根据所测试应用程序的需要,您可能需要永久地让用户登录到Windows计算机(以便存在交互式桌面),并确保Jenkins代理程序在该用户会话中运行。过去,这种设置对我来说非常适合在Windows上测试GUI应用程序并将结果报告给Linux主机。

Jenkins的优势在于它非常好地将Windows应用程序的退出状态和文本输出传送回Jenkins服务器,以便服务器可以在出现任何问题时通知您。当不使用Jenkins时,这种系统设置起来非常脆弱和耗时。