2

Mac Lion vmware にインストールされたアプリケーションを、Windows OS で実行されているプログラムまたは Web アプリケーションから呼び出す方法はありますか?

ありがとう、

4

1 に答える 1

0

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 キーをセットアップします。

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 であると仮定します。

Mac VM で TextEdit が開きます。

セキュリティと注意事項...

これにより、ログインしたユーザーの特権レベルにあるすべてのコマンドが許可されます。アプリの起動には問題ありませんが、さらに操作が必要なコマンドには適していません。そのため、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 認証またはより高度な認証などのモジュールをセットアップできます。

于 2012-12-20T07:26:40.157 に答える