【问题标题】:Invoking an application running on mac vmware from parent Windows OS从父 Windows 操作系统调用在 mac vmware 上运行的应用程序
【发布时间】:2012-12-20 07:12:37
【问题描述】:

有没有一种方法可以从运行在 Windows 操作系统上的程序或 Web 应用程序调用安装在 mac lion vmware 上的应用程序?

谢谢,

【问题讨论】:

    标签: windows macos virtual-machine


    【解决方案1】:

    在 Mt Lion 实例上配置远程登录,

    现在您可以通过 SSH 连接并调用命令。 (在 Windows 上使用 Putty / Plink

    例如如果您的 VMWare 实例在 10.0.0.1 上并且登录名是用户名。

    plink 10.0.0.1 -l username "open -a Chromium.app http://google.com"
    

    设置 ssh keys 无需密码挑战即可执行此操作。

    如果您没有运行 Windows...

    只需进行 ssh 调用。

    ssh username@10.0.0.1 "open -a Chromium.app http://google.com"
    

    或者

    在 Mac 上运行一个非常简单的 Web 服务,并让它运行本地提供的命令。

    如果您使用Sinatra 或类似的轻量级工具(节点的 sammy.js 显然基于 sinatra),这将非常容易。

    从 Mac 终端执行以下操作:

    sudo gem install sinatra
    

    创建一个名为app.rb的文件

    require 'sinatra'
    
    get '/' {
       `#{params[:command]`
    }
    

    然后启动它:

    ruby app.rb
    

    现在在 windows 框中打开以下 URL

    http://10.0.0.1:4567/?command=open%20-a%20TextEdit.app
    

    再次假设 VM 实例 IP 地址为 10.0.0.1

    TextEdit 将在 Mac 虚拟机上打开。

    安全和注意事项...

    这将允许任何处于登录用户权限级别的命令,适用于启动应用程序,但不适用于需要进一步交互的任何命令,因为你最好在 Mac VM 上编写本地脚本并通过与我描述的类似的方式调用它。

    保护它...

    这当然没有安全性,但如果 ssh 不可行,您可以合理地简单地添加它,这取决于您的要求。

    向请求中添加一个简单的安全令牌:

    get '/' {
       `#{params[:command]` if params[:token] == "awSomEl3yS3cuReP4ssK3y"
    }
    

    发送请求为:

    http://10.0.0.1:4567/?token=awSomEl3yS3cuReP4ssK3y&command=open%20-a%20Safari.app
    

    您可以通过各种方式进一步加强它,但这足以让您继续前进。 Rack(sinatra 使用它来提供 http 服务,将允许您设置模块,即基本 http 身份验证,或更高级的身份验证,如果您认为合适。

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 2020-08-09
      • 2021-06-03
      • 2020-05-29
      • 2016-02-04
      • 1970-01-01
      • 2012-11-17
      • 2015-12-08
      • 1970-01-01
      相关资源
      最近更新 更多