Windows PowerShell によるリモート制御 ~その1 準備編~

Windows PowerShell 2.0 からリモート制御がサポートされます。

Windows PowerShell 2.0がインストールされているだけではリモート処理を行うことはできません。

リモート制御を行う側とされる側の双方にPowerShell 2.0がインストールされ、リモート処理用に構成されている必要があります。

本記事は

について説明します。


リモート処理用に構成する

PowerShell でリモート処理が行えるようにするには、下記条件が必要になります。

  1. ローカルマシンとリモート制御するマシンの双方にPowerShellがインストールされていること
  2. リモート処理用の構成がされていること
  3. リモート接続するマシンのPowerShellは管理者モードで起動すること(PM4:00頃追記
  4. リモート接続を確立して、リモートコマンドを実行するには、現在のユーザーがリモートコンピューター上のAdministratorグループに属する必要がある。もしくは、現在のユーザーが管理者資格情報を提供できる必要がある(PM4:15頃追記

1.ですが、Windows7の場合はPowerShell 2.0がインストール済みですので、関係ありません。 もしもWindows XPにインストールする場合は、前回の記事を参照ください。

ここでは、2.について説明します。

まずは、Windows PowerShell 2.0 を起動します。

次に、Enable-PSRemoting というコマンドレットを実行します。(このコマンドレットは、内部的には Set-WSManQuickConfig を呼んでいるようです。Set-WSManQuickConfigを実行してもOKです。)

Enable-PSRemoting というコマンドレットを実行すると

PS > Enable-PSRemoting
WinRM クイック構成
Set-WSManQuickConfig コマンドを実行すると、WinRM
サービスによるこのコンピューターのリモート管理が有効になるため、セキュリティ面で重大な影響があります。
このコマンドには次の処理が含まれます:
 1. WinRM サービスが実行されているかどうかを確認します。WinRM サービスが実行されていない場合は、サービスを開始します。
 2. WinRM サービスのスタートアップの種類を自動に設定します。
 3. どの IP アドレスでも要求を受け付けるリスナーを作成します。既定では、トランスポートは HTTP です。
 4. WS-Management トラフィック用のファイアウォール例外を有効にします。
WinRM サービスによるこのコンピューターのリモート管理を有効にしますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

というメッセージが表示されます。

“Y”と入力して[Enter]キーを押すと図1の用に構成処理が開始されます。


図1 Enable-PSRemotingコマンドレットの実行

準備はたったこれだけです。

次は、リモートコンピューターに接続してみましょう。


ローカルマシンからリモート接続する

ローカルマシンの PowerShell からリモートマシンに接続するには

Enter-PSSession 接続先のコンピューター名

という構文でコマンドを実行します(接続先のPowerShellは起動されていなくても問題ありません。)

たとえば、接続先のコンピューター名が MyServ01 だとしたら

PS> Enter-PSSession MyServ01

と入力します。

もしも接続できない場合は

  • ネットワークに接続されていない
  • リモート処理の構成がされていない

可能性がありますので、見直してください。

上手く接続できた場合は

[MyServ01]: PS C:\Documents and Settings\MyServ01\My Documents>

のように、先頭の[]の中に接続されたマシン名が表示されます。

[マシン名]が表示されている間は、コマンドはリモートマシン上で実行されることになります。

たとえば次のように dir コマンドを実行すると、リモートマシン上でdirコマンドが実行されたことになります。

[MyServ01]: PS C:\Documents and Settings\MyServ01\My Documents> dir

リモート接続を解除する

リモート接続を解除する、つまり切断するには、Exitと入力するか、次のように Exit-PSSession コマンドレットを実行します。

PS > Exit-PSSession

*本記事はWindows XPにインストールしたWindows PowerShell 2.0 RCで検証しております。

コメント

  1. www.yzc777.com より:

    天道酬勤。也许你付出了不一定得到回报,但不付出一定得不到回报。

タイトルとURLをコピーしました