Windows PowerShellは、Windows XPで導入されたコマンドの実行機能。MS-DOSの操作環境を引き継いだ「コマンドプロンプト」と基本的な役割は同じだ。

 大きな違いの1つは、実行できるコマンドの種類が多い点(図(a))。1000種類を超えるコマンド(コマンドレットと呼ぶ)を実行できる。コマンドプロンプトでは、あらかじめ用意された80個強の内部コマンドと、コマンドプロンプトから呼び出して実行するプログラム(外部コマンド)を利用できる。

 内部コマンドは例えば「dir」や「copy」など。外部コマンドはexe形式の実行ファイルなどである。PowerShellではこれらに加えて、Windowsにおける各種設定など、管理業務に必要な操作のほとんどすべてをカバーする。

 例えば、「Add-WindowsFeature」コマンド1つでActive Directoryをインストールできる。

図●PowerShellの概要と開発環境
図●PowerShellの概要と開発環境

 もう1つの大きな違いが実行できるスクリプトだ。コマンドプロンプトではコマンドを逐次実行する「バッチ」しか利用できないが、PowerShellではコマンドレットや内部コマンドを組み合わせたPowerShellスクリプトを使える。例えば、Active DirectoryのユーザーアカウントをExcel上のデータから自動的に作成するといった比較的複雑な処理を記述できる。

 こうした高度な処理をするスクリプト開発を手助けするため、Windowsでは標準でPowerShellスクリプトを編集する専用のソフトウエア(開発環境)「PowerShell ISE(Integrated Scripting Environment)」が付属する(図(b))。

 例えば文字をある程度入力すると、そこに合致するPowerShellコマンドの一覧を表示したり、入力する候補となる文字列を表示したりしてスクリプトの記述を支援してくれる。コマンドを実行するウインドウで、動作をチェックしながら記述できる。

 ただしOSのバージョンアップに合わせ、PowerShellも変わってきたため、バージョン間の違いに注意したい。特にWindows 7/Windows Server 2008世代のPowerShell 2.0と、Windows 8/Windows Server 2012世代のPowerShell 3.0ではコマンド数などが大きく違う。ISEも大幅に変わっている。