【发布时间】:2012-12-20 07:12:37
【问题描述】:
有没有一种方法可以从运行在 Windows 操作系统上的程序或 Web 应用程序调用安装在 mac lion vmware 上的应用程序?
谢谢,
【问题讨论】:
标签: windows macos virtual-machine
有没有一种方法可以从运行在 Windows 操作系统上的程序或 Web 应用程序调用安装在 mac lion vmware 上的应用程序?
谢谢,
【问题讨论】:
标签: windows macos virtual-machine
在 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 无需密码挑战即可执行此操作。
只需进行 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 身份验证,或更高级的身份验证,如果您认为合适。
【讨论】: