Insider's Eye

GUIを超えて進化するWindows管理ツール(1)

―― コマンドラインとスクリプト・ベースの管理を重視したWindows Server 2003のメリット  ――

Michael Cherry
2003/05/27
Copyright(C) 2003, Redmond Communications Inc. and Mediaselect Inc

 
本記事は、(株)メディアセレクトが発行する月刊誌「Directions on Microsoft日本語版」 2003年5月15日号 p.9の「GUIを超えて進化するWindows管理ツール」を、許可を得て転載したものです。同誌に関する詳しい情報は、本記事の最後に掲載しています。

 Windows Server 2003では、GUIベースの管理に対する依存度を減らし、コマンドラインとスクリプト・ベースの管理をさらに重視している。管理者はこの方針転換によって恩恵を受けることになるだろう。

 管理者は、複数のデスクトップPCやノートPC、サーバのハードウェア/ソフトウェア・リソースを監視したり、設定したりする必要がある。だがこの際、GUIベースの管理ツールは反復的な管理タスクにおいてスクリプトに比べて効率的ではない。それも、管理者がWindows XPおよびWindows Server 2003用の強力な非GUIの管理手段を手にすることで変わるだろう。しかし、この新しい選択肢を利用するには、新しいスクリプト言語に対する習熟と、管理に的を絞ったさらに優れた編集ツールとデバッグ・ツールが必要である。

 Windowsは、複数の管理モードを用意している。GUI(本稿では扱わない)とコマンドライン、そして2種類のスクリプティング(基本的なバッチとWindows Script Host)である(基本情報については、コラム「Windowsの管理モード」を参照)。Windows Server 2003では、コマンドライン、基本的なバッチ・スクリプティング、Windows Script Hostベースのスクリプティングによる管理がより実用的である。なぜならMicrosoftは多数の管理テクノロジ(Windows Management Instrumentationなど)を改良・追加し、新しいツール(Windows Management Instrumentation Command Lineなど)を用意し、より多くのタスク(Active Directory移行ツール経由によるWindows NT 4.0ドメインからのアカウントのインポートなど)をスクリプトで処理可能にしたからである。

Windowsの管理モード
 Windowsは、GUIとコマンドライン、スクリプティングという3種類の管理モードを用意している。さらに管理用のスクリプティングは、コマンドライン管理を拡張する基本的なバッチ・スクリプティングと、Windows Script Host(WSH)スクリプトの2形式をサポートする。

●コマンドライン
 コマンドラインはユーザーとOS間の直接的なコミュニケーションを実現する。管理者はコンソール上でコマンドラインを用いてOSコマンドやユーティリティ・プログラムを呼び出し、コマンドの出力を見る。管理者は、素早く1回限りの管理タスクを実行する際に、コマンドラインを好む傾向にある。例えば、あるコンピュータがネットワーク上で応答しているか否かを確認する必要がある場合、「ping」を使ってコンピュータにパケットを送り、応答を待つといった具合だ。もう1つのポピュラーなコマンドである「ipconfig」は、ネットワーク・インターフェイスの構成を示し、DHCP(Dynamic Host Configuration Protocol)が提供するアドレスの更新ないしはリリースが可能である。比較的難解なコマンドライン・ユーティリティとして「cipher」コマンドがある。これを/Wオプションとともに使用すると、ディスクの空き領域にランダムなビット・データを書き込み、削除されたファイルをデータ復元ユーティリティで復活できないようにする(このcipherコマンドを利用したディスク・ホワイトニングの方法は別稿「Windows TIPS:ディスクの内容を完全に消去する」を参照)。コマンドラインは強力だが、コマンドとその実行を制御するオプションやフラグを覚えておくのは管理者にとって面倒なことかもしれない。

●基本的なバッチ・スクリプティング
 バッチ・ファイルとは、コマンドラインで1個ずつ発行できる1個以上のコマンドを含むテキスト・ファイル(ファイル拡張子は.batまたは.cmd)である。管理者がファイル名をコマンド・プロンプトで入力すると、OSは通常、バッチ・ファイルのコマンドを順番に実行する。コマンドラインをバッチとして1つのファイルにまとめることで、コマンドラインを管理しやすくなる。ワークステーションにログオン中のファイル・サーバおよびプリント・サーバのリソースへの接続の自動化や、夜間バックアップの実行といった反復性の高いタスクに向いている。バッチ・ファイルを用いれば、管理者はコマンドが必要となるたびに複雑なコマンドの構文を思い出す必要がなくなるからだ。例えば、「logon.bat」といったファイル名によって、複雑なシーケンスやほかのコマンドを実行することができる。しかしバッチ・ファイルは、その基盤となるコマンドライン・コマンドの可用性と機能性の両面によって、機能的な制約を受けることになる。さらにWindowsのバッチ・ファイル言語は、エラー処理とフロー制御(ある変数の値といった特定の条件下でバッチ・ファイルの別の部分にジャンプする能力)が限られている。

●WSHスクリプト
 WSHスクリプトは、MicrosoftのVBScript(Visual Basic Scripting edition)などのスクリプト言語によって書かれており、WSH(Windows Script Host)のコントロール下で実行される。バッチ・ファイルとの違いは、OSユーティリティとサービスのCOMインターフェイスを呼び出せるため、コマンドラインよりも広範な種類のOS機能にアクセスできることだ。さらに、WSHスクリプトはCOMインターフェイスをサポートするアプリケーション(Microsoft Officeなど)の機能を呼び出すことも可能だ。例えば、Microsoft Desktop Engine(MSDE)を稼働中のコンピュータを探し出してワーム対策のパッチを施そうとしている管理者は、Active Directory Service Interface(ADSI)経由ですべてのコンピュータの所在を突き止めるVBScriptを書けばよい。次に、そのスクリプトでWindows Management Instrumentation(WMI)を用いてMSDEをインストールしたコンピュータを判断する。WSHには、WindowsベースのバージョンであるWscriptと、コマンド・プロンプト・ベースのバージョンであるCscriptの2つがある。Wscriptはスクリプト・プロパティを設定するためのプロパティ・シートがあり、出力をメッセージ・ボックス([OK]ボタン付きの小型ウィンドウで、ボタンを押さなければメッセージは消えない)に表示する。Cscriptはスクリプト・プロパティを設定するためのコマンドライン・スイッチを用意し、出力をコンソール上に表示するが、ユーザーの応答は要求しないというものだ。

●GUI管理
 GUI管理はMicrosoft管理コンソール(MMC)と特定の管理タスクを実行する各種のスナップインを使用する。例えば、デスクトップで「マイ コンピュータ」アイコンを右クリックして「管理」を選択すると、MMCコンソールが開く。同コンソールにはロードされた多数のスナップインがあらかじめ設定されており、ローカル・ユーザーとグループの管理、イベント・ログの検査、そのほかさまざまな管理タスクが実行できる。MMCとスナップインは、グループ・ポリシーの設定の調整など、管理者が比較的まれにしか実行しない複雑なタスクに使うと効果的だ。こうしたタスクの場合、GUIではコマンドのパラメータを思い出す必要がなく、タスク専用のヘルプ情報が用意されていて処理手順を導いてくれるので、管理者は個々のユーザーやコンピュータには集中しやすい。しかし、多数の新規ユーザーの追加といった繰り返しの多いタスクの場合、GUIコンソールは極めて非効率なことがあり、管理者にとってはスクリプティングの方が望ましいだろう。

WSHスクリプティングの改良

 Windows Script HostベースのWindows管理は、Windows Script Host(WSH)とWindows Management Instrumentation(WMI)の2つのテクノロジに依存している。WSHはスクリプティング・エンジンの実行を制御し、JScriptおよびVBScriptで記述したスクリプトがOSサービスとユーティリティにアクセスすることと、COMインターフェイス経由でアプリケーション・プログラムにアクセスすることを可能にする。管理用のCOMインターフェイスの中で最も重要な一群は、WMIである。WMIは、Desktop Management Task Forceが定義した標準管理フレームワークであるWeb-Based Enterprise ManagementのMicrosoftの実装である(WMIに関する基本情報は、図「WMIアーキテクチャ」を参照)。

WMIアーキテクチャ
 Windows Management Instrumentation(WMI)は、スクリプトなどの管理アプリケーションが、コンピュータのリソースに関する情報の入手や設定をできるようにする。コンピュータのリソースには、Windows OSサービス、ユーティリティ、パフォーマンス・カウンタ、イベント・ログ、物理的ハードウェア(ディスク・ドライブなど)、論理的ハードウェア(ディスク・ボリュームなど)、アプリケーションがある。
 
  WMIの主要なアーキテクチャ・コンポーネント(図中の灰色部分)は、WMIプロバイダ、Common Information Model(CIM)Object Manager(CIMOM)、CIMリポジトリである。

●WMIプロバイダ(下部)
 プロバイダはハードウェア・デバイス・ドライバと同様に、Windows OSサービスとユーティリティ、ハードウェア(ハードディスクなど)、ネットワーク・インターフェイス・カード、アプリケーションといった物理的/論理的なコンピュータ・コンポーネントと通信し、それを監視する。

●CIMOM

 CIMOMはWMIプロバイダとCIMリポジトリ、管理アプリケーション間のコミュニケーションを管理する。利用可能なプロバイダとそれらが提供する機能を登録し、情報リクエストを適切なプロバイダにルーティングし、SQLに似たWMI Query Language(WQL)で書かれた情報クエリーを処理し、セキュリティの検証を行い、イベント監視に必要なインフラを提供する。

●CIMリポジトリ
 CIMリポジトリはCIMOMが使用する中央ストレージ・エリアであり、WMIプロバイダとアプリケーションに関する登録情報を格納し、一部の管理データをキャッシングする。しかしたいていの場合、CIMOMはWMIプロバイダにクエリーを行って動的に変化するデータ(例えば空きディスク・スペース)を取得する。CIMリポジトリにデータを格納してもすぐに古くなるため、そうすることはあまりない。


 WMIはWMI Scripting Libraryも用意している。これはCOMオブジェクトの1つのセットで、スクリプトとWMIインフラの連携、管理情報の列挙、セキュリティなどのほかの問題の処理を可能にする。
 

  WMI情報を最も利用するのは管理アプリケーションである。これらのアプリケーションは、管理者が特定の管理問題(例えばハードディスクの空き容量の確認など)を解決するために記述するスクリプトのように簡単なものもあれば、Microsoftの管理製品であるSystems Management Server(SMS)やMicrosoft Operations Manager(MOM)のように複雑なものもある。管理アプリケーションは管理情報の読み取りとレポートが可能で、多くの場合実際に管理パラメータ(例えばユーザーがアクセスできるディスク・スペース、つまり割り当て量など)を設定する。

 管理者はWMIを用いて、ファイル・システム、プリンタ、ネットワーク共有を監視・設定するとともに、パフォーマンス・データを検索できる。またWMIは、DNS(Domain Name Service)およびDHCP(Dynamic Host Configuration Protocol)といったネットワーク・サービスを監視するメカニズムを備え、イベント・ログ、ファイル・システム、レジストリの変化や、OSのほかのリアルタイムな変化を監視し応答する。WMIは、管理者が個々のリソースのAPI(例えばWindows OSサービスのWin32 APIなど)の詳細に深入りせずに、コンピュータを管理する手段を提供する、各種の管理アプリケーション・エージェントの基本インフラである。管理アプリケーションには、Microsoft自身のSystems Management Server(SMS)やMicrosoft Operations Manager(MOM)などがある。

■WMIの改良
 Windows XPとWindows Server 2003では、WMIに2つの重要な改良が加えられた。まず、これらのOSではさらに多くのWMIプロバイダで、管理者が管理オブジェクトのプロパティ(例えばあるユーザーのディスク割り当て量)の確認だけでなく、プロパティの変更や設定(例えば新しいディスク割り当て量の設定)を行えるようになった。Windows 2000では、WMIによって管理リソースの約4000のプロパティが管理者に公開されていたが、これらのプロパティのうちWMI経由で変更・設定できるのは約40に過ぎなかった。Windows XPではWMIによって監視できる管理リソースは6000以上あり、140以上のプロパティがWMIを用いて設定できる。

 次に、MicrosoftはADレプリケーションの健全性と信頼関係を監視するプロバイダや、管理者がボリューム・シャドウ・コピーを管理できるプロバイダなどの新プロバイダを開発した。新規プロバイダは管理者にとって便利だ。さらに多くのリソースが、WSHベースのスクリプトやほかの管理ツールで監視・設定できるようになるからである(既存および新規WMIプロバイダの一部は表「WMIプロバイダ」を参照)。

プロバイダ 説明
Active Directory Active Directoryオブジェクト(ユーザーとコンピュータ)をWMIに公開する
Active Directory Replication and Trust ドメイン・コントローラ間の複製(および信頼関係)を監視する
Disk Quota ドライブと特定ユーザーのディスク割り当ての監視と設定を行う
Domain Name Service(DNS) DNSの監視と設定を行う
Event Log イベント・ログの監視と設定を行う
Internet Information Services(IIS) WMI経由でIISの完全な管理を行う
Performance Counter パフォーマンス・データをそのまま、もしくは表示形式を変更して公開する
Printing プリンタの監視と設定を行う
Registry レジストリ・キーとその値へのアクセスを提供する
Terminal Server(TS) and TS Time Zone Redirection ターミナル・サービス(タイム・ゾーン・リダイレクションを含む)の設定の監視と制御を行う
Volume Shadow Copy Service(VSS) シャドー・コピーと仮想ディスク・サービスを管理する
Win32 コンピュータのハードウェアとOSの監視・設定を行う
Windows Installer(MSI) ソフトウェアのインストールを監視する
WMIプロバイダ

 

 INDEX
  Insider's Eye
  GUIを超えて進化するWindows管理ツール(1)
    GUIを超えて進化するWindows管理ツール(2)
 
 「Insider's Eye」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間