PowerShell でのリモート管理

かめがわ かずし



1 | 2 | 3 | 4 | 5


リモート管理スクリプトを実行する

ではいよいよリモートで実行してみましょう。PowerShell 2.0 ではコマンド レット (命令) が 1.0 よりもかなり増えています。リモート ホストでコマンドを実行するには PowerShell 2.0 で追加された Invoke-Command を使用します。
図 21 ではリモート サーバー (w2k8R2srv) で get-service コマンド レットを実行した結果になります。

図 21

図 21 リモート サーバーのサービス一覧を取得す[拡大図]

上記のコマンド レットを分解すると、以下の形式になります。invoke-command は他の形式も用意されていますので、詳しくは PowerShell 付属のヘルプを読んでください。リモートの対象コンピューター名は , で区切れば複数台指定することができます。

invoke-command -computername w2k8r2srv -scriptblock {get-service}: nvoke-command: コマンドレット、w2k8r2srv: 対象コンピューター名、w2k8r2srv: リモート実行される命令

スクリプト ブロック とは複数の コマンド レット をまとめたものになります。プログラム的にいえば、名前のない一時的な関数と考えてください。

ヒント
ヘルプは get-help (help という別名も用意されています) というコマンド レットで表示されます。

PS C:\Users\Administrator>helpinvoke-command

上の例では一回限りの命令ですが、リモート管理にはセッションという考えがあり、対話的に実行することもできます。リモート接続コマンド レットのうちよく使うであろうものだけですが列挙します。

コマンド レット 説明
New-PSSession リモート コンピューターとのセッションを確立します
Get-PSSession 現在の PowerShell でインスタンスで作成されたリモート セッション一覧を取得します。
Enter-PSSession 作成されたリモートセッションに接続して、リモート コンピューターとの対話処理を始めます。
Exit-PSSession 接続した対話セッションを終了し、リモート コンピューターから切断します。

簡単に導入部分だけ触れましたが、いかがでしたでしょうか? WinRM と PowerShell をうまく使えばコマンドからリモート セッションを開いて、PowerShell からバッチ処理ということも可能になります。

ようやくコマンド ベースでの管理も実用になってきたと思いますので、ぜひ活用してください。

PowerShell 参考リソース

本コラムでは PowerShell の基礎から書くスペースはないので、参考リソースをいくつかご紹介します。

今後の管理には PowerShell が重要になるので、ぜひ役立ててください。現在でも Exchange Server 2007 や SQL Server 2008 といったサーバー プロダクトではすでに PowerShell を使って管理することができます。

上記のサイトおよび書籍以外にもたくさんの書籍やオンライン情報が存在します。



前のページへ | 1 | 2 | 3 | 4 | 5

ブックマーク

ブログにコピー

([Ctrl] + [C] でコピーしてください)