WindowsとUNIXの大きな違いを1つだけ挙げるよう求められたら,筆者は「コマンド・ライン」と答えるだろう。UNIXが元々コマンド・ライン・インターフェース(CLI)をベースに構築されたのに対し,WindowsのCLIは後から付加されたものであることに議論の余地はない。WindowsはUNIXと違い,まずGUIがあった。

 この相違は,なによりも開発時期と深い関係がある。Windowsは,MacintoshがもたらしたGUI時代に登場したOSであり,当然UNIXはGUI以前の時代の産物だ。現在,経験豊富なUNIX管理者とはある種のCLI専門家のことであり,複雑なスクリプトを寝言ですらすら唱えたり,奇妙なCLI環境と癖の強いテキスト・エディタを使いこなしたりしている。これらはすべてUNIXの文化だ。

 一方Windowsの世界では,ほとんどの管理者がWindowsに同こんされた管理者用ツールと,米Microsoftやサード・パーティから提供される様々な管理ツールに親しんでいる。本当に経験の豊かなWindows管理者だけが,WindowsのCLIと各種スクリプト環境に多少のなじみがある程度だ。しかしWindowsの管理者が,WindowsにあるMS-DOSベースのCLIが素朴なインターフェースでしかないことに困惑してきた。それにWindowsのCLIは,10年以上もまともに更新されていない。

 しかし,これからは違う。Microsoftは,UNIX用CLIの強力さと,Microsoft .NETベースのプログラミング言語に備わる読みやすさと使いやすさを組み合わせ,いいとこ取りをして新しいCLI「Windows PowerShell」(開発コード名「Monad」)を作った。簡単にいえば,PowerShellは出来のよいCLIだ。管理用ツール・セットは強化されており,管理者として自分の価値を高めたいのなら詳しく調べてみる価値のあるツールになっている

 最近のMicrosoftの技術は,主要製品と無関係に開発されたものが多い。PowerShellもその例外ではないのだが,それでも様々な製品に組み込まれ,最終的にはWindowsにも統合される予定だ。当面PowerShellを使うには,最終版に近いものをダウンロードして「Windows Server 2003」の各種エディション(x64やR2を含む)や「Windows Vista」「Windows XP」にインストールすることになる。動かすには「.NET Framework 2.0」が必要だ。

 PowerShellは独立した製品として2006年中に出荷されるはずだが,大々的な初登場は「Microsoft Exchange Server 2007」への同こんになるだろう。MicrosoftはExchange 2007を,UNIXサーバーであるかのように開発している。Exchange 2007の管理用GUIは,PowerShell上で動くコマンド・ライン・ツールのサブセットとなる。これには驚いた。

 今のところPowerShellは,2007年下半期リリース予定の次期Windowsサーバー「Longhorn Server」(開発コード名)にも搭載される可能性がある。恐らくWindows Vista以降のクライアントOSとサーバーOSに組み込まれるのだろう。

PowerShellには一貫性がある

 PowerShellに興奮している理由を説明しよう。第一に,一貫性と論理性がある点だ。読者の中には.NETのことを思い浮かべる方も多いと思うが,.NET Frameworkも一貫性のあるモデルであり,PowerShellは.NETベースのプログラミング言語(.NET用言語の算術演算子,代入演算子,変数,メソッドを網羅し,スクリプト言語やソフトウエア開発言語に存在するであろうその他機能をすべて備える)と,オブジェクト指向の名前空間というと同じ手法を採用した。PowerShellはUNIX用CLIを改善し,一貫した出力を行うようにした。あらゆるPowerShellの出力が予測可能であるため,複雑なスクリプトの開発はこれまでよりも容易になる。さらにPowerShellは,目的とするものを見つけやすい。例えばあるメソッドのプロパティについて知らなくても,PowerShellはプロパティを並べて表示するので,正しいものを見つけられる。さらに,タブ・キー入力によるキーワード補完機能も備えている。

 PowerShellに関する情報が必要なら,Microsoft PowerShellチームのブログ(英語)を読むのがいいだろう。Windows PowerShell製品候補版(RC:Release Candidate)1はMicrosoftのWebサイトでダウンロードできる。このほかMicrosoftは,PowerShellを使ったExchange Server 2007のスクリプト・コンテストを開催している。