Windows Server 2008 R2で初めてのメジャーバージョンアップを遂げたCUIツール「Windows PowerShell」(以下、PowerShell)。新版(PowerShell 2.0)では、コマンドの数が大幅に増やされ、マイクロソフト製GUI管理ツールからも呼び出されるほど、利便性が高まっています。
とは言え、GUIツールによる管理が主流であるWindowsプラットフォームの管理者の皆さんは、PowerShellに対してそれほど馴染みがないはず。これでは、せっかく追加された便利なコマンドも役立てることはできません。
そこで、本連載では、PowerShellの使い方について基本的から紹介していきます。
Windows PowerShellとは
WindowsのコマンドプロンプトはUNIX系OSの環境に比べると貧弱なものです。特にバッチコマンドはスクリプトと呼ぶには原始的すぎ、複雑なプログラムを記述できません。
これまでにマイクロソフトはWSH(Windows Scripting Host)をリリースしましたが、WSHはコマンドライン環境と互換性がないという欠点がありました。こうした問題に対する新しい回答がPowerShellです。
PowerShellは、高機能なコマンドライン操作体系と本格的なプログラミングに耐えられる言語体系を両立し、コマンドライン操作とスクリプトに対して同じ環境を提供します。PowerShellを活用することで、伝統的なコマンドプロンプト環境よりも簡単に複雑な作業を行ったり、バッチコマンドでは実現不可能な複雑な処理の自動化、プログラミングを実現できます。
ただし、コマンドプロンプトを機能拡張したものではなく、従来のコマンドプロンプトとは全く互換性がありません。
PowerShellの入手とセットアップ
PowerShellの入手方法とセットアップ方法はWindowsのバージョンによって違います。
(1) Windows Server 2008 R2/Windows 7
PowerShell 2.0を標準実装しています。ただし、ServerCoreではセットアップ作業が必要です。
(2) Windows Server 2008
サーバーマネージャの「機能の追加」ウィザードを使用して、PowerShell 1.0を追加インストールします。
(3) Windows Server 2003/2003R2、Windows Vista/XP
マイクロソフトのダウンロードセンターから、Windowsの種類に応じたPowerShell 1.0をダウンロード、インストールします。インストール時に.NET Frameworkが必要と表示されたときは、必要な.NET Frameworkをダウンロードセンターからダウンロード、インストールして下さい。
ダウンロードセンターで「PowerShell」をキーワードに検索すると、すぐに見つかります |
PowerShellを使ってみる
さっそく、PowerShellに触れてみましょうスタートメニューからWindows PowerShellを実行します。ウィンドウは、従来のコマンドプロンプトとほとんど区別がつきません。「dir」コマンドを入力すれば...コマンドプロンプトとはちょっと表示が違いますが...ファイル一覧を表示します。
しかし、実はPowerShellにはdirコマンドはありません。また、PowerShellでは実行する命令をコマンドではなくコマンドレットと呼びます。dirコマンドに近いコマンドレットはGet-ChildItemですが、コマンドプロンプトに慣れたユーザーのために、Get-ChildItemをdirという名前で別名(エイリアス)定義してあるのです。
別名定義を確認するためには、Get-Aliasコマンドレットを実行します。多くのコマンドレットがコマンドプロンプトやUNIX系OSのコマンドと同じ名前、あるいは短縮形で別名登録してあります。
Get-ChildItemやGet-Aliasを見てもわかるように、PowerShellのコマンドレットは、フルスペルの単語の「動詞-目的語」の形式をとっており、例外はありません。長ったらしくて面倒に思えますが、何をするコマンドレットか一目瞭然という大きなメリットがあります。また、PowerShellには強力なコマンドライン補完機能がありますので、すべてキー入力する必要はありません。途中まで入力したら、Tabキーを押すと該当するコマンドレットやオプション、ファイル名などを検索して入力補完します(ただし、コマンドレットの場合、少なくとも動詞の後ろのハイフンまでは入力してからTabキー)。頻繁に使用するコマンドレットに使いやすい別名をつけるのもいいでしょう。
なお、Get-Helpコマンドレット(別名はhelp)を実行すると、詳細なヘルプを表示します。
当記事では、基本的にWindows Server 2008のPowerShell 1.0環境を例に紹介し、折に触れてPowerShell 2.0についても紹介します。2.0での主な追加機能は、PowerShellの開発環境であるISEと、リモート管理機能の装備です。次回はコマンドレットのパイプ処理について紹介します。