Windowsの世界では今まさに,2つのコマンド・ライン環境による「決闘」が行われようとしている。現在のチャンピオンは,われわれが愛してやまないWindows NTベースのOSの世界でもMS-DOSが未だに生き残っているという苦い現実を思い出させてくれる「コマンド・プロンプト」または「cmd.exe」。血気盛んな若き挑戦者は,.NETをベースに他のコマンド・ライン環境の利点を取り入れた「PowerShell」だ。

 米Microsoftがコマンド・ラインに本腰を入れ始めたのは喜ばしいことだが,1つ問題がある。それは,Micrsoftがシステム管理者やITプロフェッショナル,開発者,ユーザーに対して,2つの競合するコマンド・ライン環境を提供しているということだ。1つは古く,1つは新しい。1つは暗い過去を持っており,1つはMicrosoftの現代的な開発フレームワークの豊富な機能と優れた性能を備えている。これだけを読むと,どちらを選べばいいのかは簡単な問題のように思えるだろう。

 しかし,現実はそう簡単ではない。例えば「Wikipedia」によれば,「古いコマンド・プロンプトは,2007年にPowerShellに主役の座を奪われるが,『下位互換性』という目的のためだけにWindows Vistaの中に生き残っている」ことになっている。ああ,これが本当なら,どれだけ素晴らしいことだろう。しかし残念ながら,現実はこれより複雑なのだ。

 確かに,「Longhorn」という開発コード名だった「Windows Server 2008」(2007年内に登場予定の次期Windows Server)で,Microsoftはユーザーにコマンド・プロンプトとPowerShellの両方を提供している。しかし,ここに重要な点がある。PowerShellがWindows Server 2008に追加されたのは,つい最近のことなのだ。実は,2006年12月に丸一日をかけて行われたWindows Serverの説明会で,Microsoftは筆者と他の出席者に「PowerShellはLonghorn Serverに含まれない」と話していたのだ。

サーバー・コアもコマンド・プロンプト・ベース

 この主張を裏付けるかのように,Longhorn Serverには,PowerShellではなくコマンド・プロンプト・ベースの素晴らしい新ユーティリティがいくつか含まれている。その中で最も重要なのは,「servermanagercmd.exe」だ。Microsoftによると,「servermanagercmd.exe」はGUIベースのサーバー管理コンソールである「Server Manager」が備える100%の全機能を,スクリプト可能であり自動化が可能なコマンド・ライン・バージョンで提供するコンポーネントであるという。

 また,Longhorn Serverの新機能の中で最も刺激的と言われている「サーバー・コア」も,コマンド・プロンプト・ベースである。むしろサーバー・コアでは,コマンド・プロンプトだけがネイティブのインターフェースとして使用される。さらにMicrosoftは,サーバー・コアの事実上すべてのワークロードを管理することを目的に,サーバー・コア専用のコマンド・プロンプト・ユーティリティである「oclist.exe」までも作成している(新バージョンの「dcpromo.exe」は,応答ファイルを使ってサーバーをドメイン・コントローラとしてセットアップするのに使用される)。

ベータ3で,PowerShellが突然復活

 その一方でMicrosoftは,コマンド・プロンプトの重要性を高めようとする動きに逆らうかのように,最近リリースしたLonghorn Serverベータ3で爆弾を投下した。何とMicrosoftは前言を撤回して,Longhorn Serverベータ3にPowerShellを搭載したのだ。

 悲しいことにPowerShellのLonghornへの追加は,例えばPowerShell版の「servermanagercmd.exe」を実現するには,少し遅すぎた。それでもMicrosoftはPowerShellマニアのために,PowerShell版の「servermanagercmd.exe」や,それ以外の管理関連の未完成部分について,これから埋め合わせをしていく予定だ。同社はいかなる詳細も明らかにしていないが,現在サーバー・コアでPowerShellを動作させるのに必要な.NETランタイムのサブセットを作る作業に取り組んでいる。完成するのは,時間の問題だ。

 従って現在,一時的に復活したコマンド・プロンプトと,それよりもはるかに便利なPowerShellの両方が存在しているのだ。従って,技術的に複雑ではあるが,Windowsは最終的に,現在UNIXで利用できるものさえも大幅に上回る,最高級のコマンド・ラインとスクリプティングの環境を手にするだろう。

 さらに,MicrosoftがUNIX方式によるWindows Serverのコンポーネント構築を開始する,という噂がある。つまり最初にコマンド・ラインありきで,コマンド・ラインの上にGUIツールが構築されるというのだ。何と素晴らしいことだろうか。

 それでも問題がある。読者の皆さんが,今も膨大な量の仕事をこなしていることは,筆者が取り立てて言うまでもないだろう。それに加えてLonghorn Serverでは,2つのコマンドライン環境に頭を悩ませなければならないとしたら,皆様の人生はさらに過酷なものになるだろう。はっきり言って,タイミングが悪い。Longhorn Serverにおけるコマンドライン環境の両立という問題と,他の大きな変更点のせいで,Longhorn Serverの普及が遅れることを筆者は危惧している。結論を言うと,PowerShellが将来主役の座を勝ち取ることを筆者は確信しているが,それは近い将来ではない。少なくとも向こう数年間は,2つのコマンド・ライン環境を常に意識しておいた方がいいだろう。

■変更履歴
当初タイトルで「PowerSell」としていましたが,「PowerShell」です。お詫びして訂正します。本文は修正済みです。 [2007/06/08 17:30]