2012年2月11日土曜日

共有フォルダにあるEXEを起動する方法

以前のVB6の時代では、サーバ上にあるEXEのショートカットを
ローカル端末に作成し、簡単に起動できていた。

.NETになってからは、セキュリティが厳しくなり、いくつか設定が必要である。

手順は以下の通りである。

まず起動させたいEXEのショートカットをローカルに作成する。

■実行してみると、以下のエラーが出る場合がある

「発行元を確認できませんでした。このソフトウェアを実行しますか?」
「このファイルには、発行元を検証できる有効なデジタル署名がありません。
信頼できる発行元のソフトウェアのみ実行して下さい。」

対処方法は、以下の2点

1.対象のEXEのパスは、IPアドレスでなく、PC名で指定する
  ショートカットを右クリックして、プロパティを選択
  リンク先が「\\192.168.XXX.XXX\・・・」となっている箇所を
  「\\自分のPC名\・・・」のように変更する

 ※自分のPC名とは、マイコンピュータを右クリックして
プロパティを選択し、コンピュータ名のタブを選択する。
   フルコンピュータ名のところに表示されている名称のことである。
    「.」が付いているがこれは不要

2.EXEがある場所をゾーン追加する
  コントロールパネル→インターネットオプション
  「セキュリティ」のタブを選択
  「ローカルイントラネット」を選択
  「サイト」のボタンを押下
  「詳細設定」のボタンを押下
  このWEBサイトをゾーンに追加する欄に、EXEがあるパス
  「\\自分のPC名\・・・」を貼り付けて追加ボタンを押下する。
  登録されると「file://自分のPC名」と表示される。

■再度、EXEを実行してみると、以下のエラーが出る場合がある

「System.Security.Policy.PolicyException: 必要なアクセス許可を取得できません。」

これは、.NETのセキュリティポリシー設定が不足している場合である。

対処方法は、以下の通り

  ・コマンドプロンプトを起動する

  ・以下のコマンドを実行する
   「cd c:\Windows\Microsoft.NET\Framework\v2.0.50727」

 ・以下のコマンドを実行する
  「caspol -m -ag 1 -url file://\\\自分のPC名\EXEがあるパス\* FullTrust」

以上の手順が完了すると、ローカル端末から無事EXEが起動するはずである。

今回の手順は、閉じたネットワークを想定しており、インターネットに接続できる
ような端末では、セキュリティ設定を十分考慮する必要がある。