从父Windows操作系统调用在mac vmware上运行的应用程序

时间:2012-12-20 07:12:37

标签: windows macos virtual-machine

我们是否可以通过Windows操作系统上运行的程序或Web应用程序调用mac lion vmware上安装的应用程序?

谢谢,

1 个答案:

答案 0 :(得分:0)

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

sharing settings

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

e.g。如果您的VMWare实例位于10.0.0.1且登录名为username。

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 VM上打开。

安全&笔记...

这将允许任何处于登录用户权限级别的命令,适用于启动应用程序,但不适用于需要进一步交互的任何内容,因为您最好在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 auth,或者你认为合适的更高级的身份验证。