Windows PowerShell によるリモート制御 ~その2 セッション編(基礎)~

Windows PowerShellにおけるリモート制御を行うにはセッションについて理解しておくことをお勧めします。

ここでのセッションとは、Window PowerShell がl実行される環境のことを指します。 と言ってもなんだか理解しがたいですね。

通常 PowerShellを起動すると、コマンドを実行できる環境が自動で1つ作成されます(図1)。

普段はここで作業を行っているのですが、これがセッション(PSSessionと呼ばれます)です。


図1 PowerShell環境が1つ起動している状態

次に、前回紹介した Enter-PSSessionコマンドレットで、リモートマシンに接続してみます。

この場合は、PowerShellの起動時に作成されたセッション(コマンド実行環境)とは別に、リモートマシンと対話をする専用のセッション(リモート上のコマンド実行環境)が作成されます。

つまり、リモート接続専用のPowerShell環境が作成されます(図2)。。

このセッションで実行したコマンドは、リモートコンピュータ上で実行されることになります。

目に見えるPowerShellコンソールは1つですが、内部では2つのPowerShell環境が動いているというわけです


図2 Enter-PSSessionコマンドでリモート接続専用のセッションが作成される

ちなみに、Enter-PSSessionで作成したセッションは一時的なものなので、ExitとするかExit-PSSessionコマンドレットを実行するとリモートセッションは消えます。

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

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で検証しております。

Windows XP SP3 に Windows PowerShell RC2.0をインストールする方法

マイクロソフト エバンジェリスト田辺さんのブログでも紹介されている通り、

Windows XP SP3 と Windows Server 2003 SP3 用のWindos PowerShell RC2が公開されました。

私のWindows XP SP3の環境にインストールしましたので、スクリーンショット付きで紹介します。

リリースノートには「このビルドは RC リリースであるため、セルフホスト システム上に展開することは避けてください。」の注意書きがありました。

インストールする際は、ご自身の責任の下で行ってください。

の順で紹介します。


Windows PowerShell 2.0 RCの入手

入手先はMicrosoft Connect

Windows Management Framework

https://connect.microsoft.com/windowsmanagement/Downloads

からダウンロードできます。

Windows XP SP3 X86系は、Core (PowerShell and WinRM) for XP (Localized) のリンクをクリックします(図1)。


図1 Core (PowerShell and WinRM) for XP (Localized) のリンク

次に、ダウンロード可能なファイルのリストが表示されるので、

  1. WMF_RC_Release_Notes_Japanese.doc
  2. How to Provide Feedback.htm
  3. ja-JP_Core_XP_x86_KB968930.exe

にチェックを付け、[ダウンロード]ボタンをクリックします。

(1. 2. は必須ではありません。 3.だけでもOKです)


図2 ダウンロードするファイルの選択


Windows PowerShell 前バージョンのアンインストール

Windows PowerShell 2.0 RC は前のバージョンとは共存することができません。

もしも、Windows PowerShell 1.0 がインストールされている場合にはアンインストールを先に行う必要があります。

Windows PowerShellがインストールされていない環境であれば、ここは読み飛ばして、Windows PowerShell 2.0 RCのインストール へ進んでください。

まずは、[コントロールパネル]-[プログラムの追加と削除]をクリックします。

以前のバージョンのPowerShellをリストに表示させるには[更新プログラムの表示]にチェックを付ける必要があります。

削除対象の「Windows PowerShell」を選択して[削除]ボタンをクリックします(図3)。


図3 Windows PowerShellのアンインストール


Windows PowerShell 2.0 RCのインストール

ダウンロードしてきた ja-JP_Core_XP_x86_KB968930.exe を実行して、Windows PowerShell 2.0 RC のインストールを開始します(図4)。


図4 「Windows 管理フレームワーク コア」のインストール

使用許諾契約をよく読んで[同意する]を選択し[次へ]ボタンをクリックします。


図5 使用許諾を読んで[次へ]をクリック

インストールが始まります(図6)。


図6 インストールの開始

インストールが完了したら[完了]ボタンをクリックします(図7)。


図7 インストール完了


Windows PowerShell 2.0 RC

インストールが完了すると[アクセサリ]に[Windows PowerShell]グループが追加されます(図8)。


図8 [アクセサリ]に追加されたWindows PowerShell

Windows PowerShell 2.0 RC の起動画面は図9の通りです。


図9 Windows PowerShell 2.0 RC

Windows PowerShell ISEの起動画面は図10の通りです。

残念なことにヘルプは英語でした。


図10 WIndows PowerShell ISE