2011年12月13日火曜日

◆リモート処理の環境を作る

PowerShell: ◆コマンドレットの難易度を調べるで「Invoke-Command」が難易度の高いコマンドと判ったので、その使い方を少し確認してみようかと思う。

「Invoke-Command」はパラメータに「ComputerName」を持っていてリモートでコマンドを実行することできるのだが、若干事前準備が必要なのでその方法について、まずは纏めておこうと思う。

実は、自宅の環境では特に問題なくリモート処理が使えていたのだが、なぜか会社の環境ではことごとく接続できない事象に暫くの間挫折していた。(というか特に必要性が無かったので調べていなかった)
ヘルプを斜め読みしてドメイン環境だと何かしら設定が必要なのかしらん?と放置していたのだが、先の記事をきっかけに今回原因を調べてみたのでその理由も合わせてメモしておく。

リモート処理用にコンピューターを構成する方法
(リモート処理を提供する側の設定)

  1. 「PowerShell」を「管理者として実行」
  2. 「Enable-PSRemoting」コマンドレットを実行し、
    2011-12-13 10h46_35
    「すべて続行」

ドメイン環境であれば、これだけでリモート処理が可能になるはずだ。
Windowsファイアウォールの設定などもこのコマンドが面倒を見てくれるようなので特に設定変更は必要なさそうだ。

なお、ワークグループ環境の場合は上記に加えて、リモート操作する側が相手を「信頼されたホストの一覧」に追加する必要がある。

Set-Item wsman:localhost\client\trustedhosts コンピュータ名

コンピュータ名にはワイルドカードも使用できる。

基本的にはこれだけでリモート処理が可能になるので非常に簡単だ。(接続時には管理者として実行する必要があるのかな)
上手くいかない場合は「about_Remote_Troubleshooting」に対応方法が記載されている。

さて、此の様に簡単な設定にも関わらず、

エラー: アクセスが拒否されました。
- または -
エラー: リモート ホストへの接続が拒否されました。WS-Management サービス
がリモート ホストで実行されており、適切なポートおよび HTTP URL で要求を
リッスンするように構成されていることを確認してください。

こんなエラーが出続けていた理由はと言うと、実はプロキシー設定にあった。

どうも、このリモート処理はIEのプロキシー設定ではなく、「WinHTTP」のプロキシー設定を使用するようなのだ。
会社の環境は、以前WSUSが導入されていなかったのでWindowsUpdateする為にWinHTTPのプロキシー設定がされていた。
悪いことに、WinHTTPのプロキシー設定を使うのがWindowsUpdate位しか存在していなかったのでバイパス設定もされていなかったのが今回のトラブルの原因だったようだ。

既に、WinHTTPの設定は必要無いのでプロキシーをクリアして無事接続できるようになった。

半年間悩み続けた問題が解決し、ちょっとすっきり!!

0 件のコメント:

コメントを投稿