プロセッサーと、前記プロセッサーに複数のコンピューターの構成ドリフトを、一群の構造規則の各々が、プログラム、サービス、アプリケーション、データベース、オペレーティングシステムまたはウェブサイトを含む管理されたエンティティを含むターゲットに関連付けられた前記一群の構成規則を定義することにより、前記複数のコンピューターに対して構成ベースラインを定義し、少なくとも1つのコンピューターの実際の構成の前記構成ベースラインからの逸脱を含む構成ドリフトに関して、前記複数のコンピューターのうち前記少なくとも1つのコンピューターを評価し、前記管理されたエンティティのレベルで、前記少なくとも1つのコンピューターの前記構成ドリフトを評価した結果を報告することにより管理させるように構成したモジュールを含むメモリとを含むことを特徴とするシステム。既存のコンピューターから構成ベースラインを読み出すことにより、少なくとも1つのコンピューターに対するベースライン構成を定義することを特徴とする請求項1に記載のシステム。構成ドリフトが、前記一群の構成規則の特定の構成規則に関して前記複数のコンピューターのうち特定のコンピューターに対してのみ評価されることを特徴とする請求項1に記載のシステム。長期間にわたるサービスに対して行われた全ての修復を保持し、新たな前記サービスのインスタンスに適用して構成ドリフトを排除することを特徴とする請求項1に記載のシステム。前記少なくとも1つのコンピューターに対する前記ベースライン構成の第1の部分が、第1の管理されたエンティティに関する第1のコンピューターを含む前記既存のコンピューターの前記構成を読み取ることによって定義され、前記少なくとも1つのコンピューターに対する前記ベースライン構成の第2の部分が、第2の管理されたエンティティに関する第2の既存のコンピューターの構成を読み取ることによって定義されることを特徴とする請求項2に記載のシステム。データセンター管理コンピューターからの複数の管理されたコンピューターの構成ドリフトを、少なくとも1つのモジュールを前記データセンター管理コンピューターで実行することにより管理するステップであって、前記少なくとも1つのモジュールが、一群の構成規則の各々が、プログラム、サービス、アプリケーション、データベース、オペレーティングシステムまたはウェブサイトを含む管理されたエンティティを含むターゲットに関連付けられた、前記一群の構成規則を定義することによって前記複数の管理されたコンピューターに対して構成ベースラインを定義し、少なくとも1つのコンピューターの実際の構成の定義された前記構成ベースラインからの逸脱を含む構成ドリフトに関して、前記複数の管理されたコンピューターのうち前記少なくとも1つのコンピューターを評価し、前記少なくとも1つのコンピューターが、前記定義された構成ベースラインを含む前記一群の構成規則のうち少なくとも1つの構成規則からドリフトしたと判定し、ドリフトした前記少なくとも1つのコンピューターの前記少なくとも1つの構成規則に関連付けられた設定のみ、必要に応じて修復する、ステップを含むことを特徴とする方法。前記一群の構成規則のうち第1の構成規則と第2の構成規則の間に存在する依存性を決定して、特定の設定が前記第1の構成規則と前記第2の構成規則の両方に関連付けられるようにしたことに応答して、前記第1の構成規則と前記第2の構成規則の両方に対する妥当性検証条件に適合する、前記特定の設定に対する値を決定するステップをさらに含むことを特徴とする請求項6に記載の方法。前記構成ベースラインの第1の構成規則を第1のコンピューターに向けたことに応答して、第1のターゲットの設定値が前記第1の構成規則に対する前記第1のコンピューターの設定値に設定され、前記構成ベースラインの第2の構成規則を第2のコンピューターに向けたことに応答して、第2のターゲットの設定値が前記第2の構成規則に対する前記第2のコンピューターの設定値に設定されることを特徴とする請求項6に記載の方法。前記少なくとも1つのコンピューターを構成ドリフトに関してほぼ即座に必要に応じて評価するステップをさらに含むことを特徴とする請求項6に記載の方法。前記一群の構成規則のうち第1の構成規則の設定値を変更するステップと、前記一群の構成規則のうち前記第1の構成規則と第2の構成規則の間に存在する依存性を決定したことに応答して、前記第2の構成規則のターゲットを自動的に再開するステップとをさらに含むことを特徴とする請求項6に記載の方法。実行時に少なくとも1つのプロセッサーに、複数のコンピューターの構成ドリフトを、一群の構成規則の各々がターゲットに関連付けられた前記一群の構成規則を定義することによって、前記複数のコンピューターに対して構成ベースラインを定義し、少なくとも1つのコンピューターの実際の構成の前記構成ベースラインからの逸脱を含む構成ドリフトに関して、前記複数のコンピューターのうち前記少なくとも1つのコンピューターを評価し、前記複数のコンピューターのうち少なくとも1つのコンピューターが前記構成ベースラインの前記一群の構成規則のうち少なくとも1つの構成規則に適合しないと判定したことに応答して、前記少なくとも1つのコンピューターが適合しない前記少なくとも1つの構成規則に対する前記少なくとも1つのコンピューターの次のメンテナンスウィンドウにつき前記少なくとも1つのコンピューターの修復をスケジュールすることによって管理させるコンピューター実行可能命令を含むことを特徴とするコンピューター可読記憶媒体。実行時に前記少なくとも1つのプロセッサーに、前記複数のコンピューターのうち前記少なくとも1つのコンピューターが適合せず、前記少なくとも1つの構成規則に対する修復がスケジュールされたことを報告させるコンピューター実行可能命令をさらに含むことを特徴とする請求項11に記載のコンピューター可読記憶媒体。実行時に前記少なくとも1つのプロセッサーに、サービスの新たなインスタンスに対するベースライン構成を、前記サービスに対する既存のコンピューターの構成ベースラインの少なくとも1つの規則を読み取り、前記新たなインスタンスに対する前記サービスの設定値を前記既存のコンピューターの設定値に設定することによって、定義させるコンピューター実行可能命令をさらに含むことを特徴とする請求項11に記載のコンピューター可読記憶媒体。実行時に前記少なくとも1つのプロセッサーに、前記構成ベースラインに適合するコンピューターと前記構成ベースラインに適合しないコンピューターとを列挙させるコンピューター実行可能命令をさらに含むことを特徴とする請求項11に記載のコンピューター可読記憶媒体。実行時に前記少なくとも1つのプロセッサーに、サービスの新たなインスタンスを作成させるコンピューター実行可能命令であって、前記新たなインスタンスに対する構成ドリフトが、長期間にわたって前記サービスに行った全ての修復を保持し、全ての保持した修復を前記サービスの前記新たなインスタンスに適用することにより排除される、コンピューター実行可能命令をさらに含むことを特徴とする請求項11に記載のコンピューター可読記憶媒体。複数のコンピューターが同じように構成されていない場合は、これらのコンピューターの管理が急速に複雑化するおそれがある。当初は同一に構成されたコンピューターであっても、時間とともに構成が変化しうる。構成ドリフトが増大すると、問題を解決することがより困難となり、コンピューターを効果的に管理し維持することがより困難となる。望ましい構成は定義され、コンピューターの当該望ましい構成からの逸脱構成ドリフトは評価され、当該コンピューターを手動でまたは自動的に修復して当該構成ドリフトを除去することにより、コンピューターのソフトウェア構成のドリフトは管理することができる。望ましい構成は、良く構成されていると考えられる1つまたは複数の既存のコンピューターの構成を読み取ることによって定義することができる。構成ドリフトの修復は、自動的に、および、制御された形で行うことができる。サービス関連の展開ベースラインと修復を統合して、展開イメージ/資産と展開したシステムの間のドリフトを防止し、構成ドリフトのない、イメージベースのサービス提供、再展開、およびスケールアウトを可能とすることができる。本要約は、選択した概念を簡潔な形で導入するために与えたものである。その概念は、下記の発明を実施するための形態においてさらに説明する。本要約は、クレーム主題の主要な特徴または本質的な特徴を特定しようとするものではなく、特許請求された主題の範囲を限定するために使用しようとするものでもない。概要モデルベースのアプローチを使用して、システムの望ましい構成は管理することができる。構成マネージャが、構成ベースラインを定義することによりシステムの構成ドリフトを測定し管理するための機能を提供する。構成ベースラインは、オペレーティングシステム構成、ソフトウェアのアップデート、禁止および許可されているアプリケーション、ならびにカスタマイズされた設定に関する情報を含むことができる。構成ベースラインを定義することでデーターセンターの管理者は構成ドリフトを管理することができる。メンテナンスウィンドウを実装して、一群の物理マシンおよび仮想マシンのメンバに変更を適用する時点を組織が選択できるようにすることができる。本明細書で開示した主題では、構成の目的を定義し、構成ドリフトを評価し、構成ドリフトを修復することにより構成ドリフトを管理する機能を提供するための方法、システムおよびコンピュータープログラム製品について説明する。望ましい構成は、構成ベースラインを生成することにより定義することができる。構成ベースラインは、関連する一群の構成規則を含むことができる。例えば、セキュリティに関する構成ベースラインが、セキュリティ問題等に関する構成規則を含み得る。構成ベースラインは、コンピューターの管理者によって、または、ソフトウェアベンダーもしくは他のユーザによって定義することができる。コンピューターの管理者は多くは、ソフトウェアを自分のコンピューターにインストールし、複数の設定値を調節することにより、当該ソフトウェアを自分のニーズに合わせる。ソフトウェアベンダーが定義した構成ベースラインは、このようなケースでは有用でないことがある。なぜなら、ソフトウェアベンダーは管理者がどの値を変更する可能性があるかを予測できないからである。新たな構成ベースラインを定義するために、変更した設定を追跡し、設定の位置を発見するのは埒が明かないであろう。本明細書で開示した主題の態様によれば、ユーザが、1つまたは複数の所定の構成規則を含む構成ベースラインを定義することができる。管理されているコンピューターの適合性をチェックするユーザの目的が捉えられるように、構成規則を定義することができる。構成規則は構成設定と関連付けることができ、構成規則により、ターゲットタイプtargettype、構成設定の妥当性検証validation、および修復を定義することができる。構成設定は、任意の着目する設定例えば、レジストリ値の名前、バージョンまたは更新日のようなファイルプロパティの名前、プログラム要素プロパティの名前、等であることができる。ターゲットタイプは、設定が影響を及ぼす管理されたエンティティ例えば、プログラムまたはアプリケーション。その例としては、SQLサーバー、IISサーバー、データーベース、サービス、ウェブサイト、オペレーティングシステム等があるがこれらに限らない。のタイプを定義する。ターゲットタイプをより詳細なレベルで定義する例えば、コンピューターレベルのようなあまり詳細でないレベルではなくSQLサーバーまたはIISサーバーのレベルでターゲットを定義することが、幾つかの点で有用である。例えば、ターゲットタイプが規定されるので、特定のコンピューターには管理されたエンティティがない場合は、その構成規則に関して当該コンピューターを評価する必要はない。さらに、構成ドリフトをより詳細なレベル、即ち、管理されたエンティティのレベルで報告することができる。例えば、構成ドリフトのレポートでは、例えば、特定のコンピューターで何かが誤って構成されていると報告するのではなく、当該特定のコンピューターでSQLサーバーが誤って構成されているがIISサーバーはそうではないと報告することができる。妥当性検証では、特定のマシンまたは一群のマシンの設定の適合性または不適合性を決定できるように、所望の設定値または所望の設定値の範囲例えば、2より大きい、2009年11月23日に等しいなどを定義する。修復では、妥当性検証で定められたように、設定を取得するか当該設定をその所望の値に戻すために実行される1組のコマンドを定義する。本明細書で開示した主題の諸態様によれば、既存のコンピューターの構成を読み取ることによって、構成ベースラインを生成することができる。例えば、望ましく構成されたコンピューターの構成を読み取り、当該構成を使用して他のコンピューターに対する構成ベースラインを生成することができる。ソフトウェアベンダーが定義した構成ベースラインを、ソフトウェアで更新することができる。当該ソフトウェアは、予め構成したコンピューターを読み取り、ベンダー定義のベースラインを適切に修復して、新たなソフトウェアのインスタンスに対する構成ベースラインを生成する。構成ベースライン、規則および設定は構成データー記憶に格納することができる。構成ベースラインは定義されると、定義された構成は一群のコンピューターに割り当てることができる。定期的に、スケジュールに従って、または必要に応じて、当該一群のコンピューターまたは当該一群のコンピューターの部分集合に含まれる各コンピューターは、それに割り当てた構成ベースラインに対して評価することができる。当該評価により、同一の設定に対する構成規則で規定した値とマッチしない設定値をコンピューターが有することを確認し、当該コンピューターが望ましい構成からドリフトしたと判定される。本明細書で開示した主題の諸態様により、1つまたは複数のデーターセンターのコンピューターの適合性をチェックし、ユーザに適合性のドリフトを警告することができる。コンピューターの構成が当該コンピューターのベースライン構成から逸脱したとき、構成ドリフトが生じている。コンピューターが構成規則に関して望ましい構成からドリフトしたと判定されたとき、コンピューターの管理者は当該構成規則に関する修復動作を当該コンピューターに対して行うことができる。当該修復動作では、修復に関して規定された1組のコマンドを実行して、当該構成規則に関する当該コンピューターの構成ドリフトを除去する。同一のコンピューターに対して複数の構成規則を修復することができる。本明細書で開示した主題の諸態様によれば、修復を制御された形で行うことができる。例えば、管理者は次のコンピューターのサービス提供ウィンドウで修復を自動的に行うこととすることで、例えば、コンピューターのユーザに影響を及ぼさないようにすることができる。あるいは、管理者に、修復を必要に応じてほぼ即座に実施するという選択肢を提供する。管理パックは構成ベースラインから生成することができる。管理パックは、適合ポリシの生成を容易にし、管理されたコンピューターを生成された適合ポリシに対して評価することを容易にする、ユーザ規定の目的モデルを含むことができる。管理パックを管理されたコンピューターに送信して、管理されたコンピューターのポリシ処理エンジンが現在の状態例えば、実際の設定値とユーザ規定の目的モデルに基づいて適合レポートを生成し、目的の値または期待される値を表示できるようにすることができる。データーセンター内の管理されたコンピューターにつき、スケジュールされた形でまたは必要に応じての何れかにより、1つまたは複数の定義された構成ベースラインの適合性をチェックすることができる。必要に応じたスキャンのため、システムは、データーセンター内の特定の管理されたコンピューターに対して所定の構成ベースラインまたは構成規則を選択的に実行できるようにする。構成ドリフトがない場合でも、システムは、意図した着目する設定の値、実際の設定値、最終スキャン時刻、およびスキャン自体の状態例えば、スキャンが進行中か否か、または、スキャンが失敗したか成功したかを含みうるスキャン情報をユーザに提供する。適合状況は、分散的に計算することができる。即ち、データーセンター管理コンピューターで適合性を評価するのではなく、管理されたコンピューターの各々が、構成ポリシをその最新の状態に対して評価する適合ポリシ処理エンジンを実行することができる。全ての修復作業、即ち、構成ドリフトから復旧する作業は、データーセンター管理コンピューターでスケジュールすることができる。修復作業の状況スケジュール済、進行中、完了または失敗は構成規則の状態として設定することができる。構成ベースラインは、具体的なインスタンスと関連付けられ、または、サービステンプレート内のマシン層テンプレートの全てのインスタンスと関連付けられる。これにより、妥当性検証および修復を含む構成規則は、テンプレート展開の一部として展開されているかまたはマシン層のスケールアウトの最中に展開されている、新たにプロビジョニングされたマシンごとに適用することができる。修復はスケジュールすることができる、または、必要に応じて実行することができる。誘導型の適合動作は3段階で実施することができる。3段階は、設定のスキャン、適合スキャンの実施、および適合情報の報告である。着目する様々な設定を段階ごとに使用できるように、これらの3段階の各々を独立にモデル化することができる。構成ドリフトの管理図1は、本明細書で開示した主題の諸態様に従う構成ドリフトを管理するためのシステム100の一例を示している。システム100の全部または一部が、図5に関して後述するコンピューターのような1つまたは複数のコンピューターに存在してもよい。あるいは、システム100またはその一部をスタンドアロンのシステムとして、または、プラグインもしくはアドインとして提供してもよい。システム100の全部または一部が、データーセンターのシステムセンタコンピューターに存在してもよい。システム100の全部または一部が、管理されたコンピューターに存在することができる。システム100により管理されるコンピューターが、1つもしくは複数の物理マシン、1つもしくは複数の仮想マシンまたは物理マシンと仮想マシンの任意の組合せを備えることができる。図1では、管理されたコンピューター140が物理マシン122を表す。管理されたコンピューター134が仮想マシンのホスト120を表し、管理されたホストコンピューター132が2つの仮想ゲストマシン、即ち、ゲスト136およびゲスト138をホストする。VMvirtualmachineは、物理マシンのようにプログラムを実行するコンピューターを、ソフトウェアで実装したものである。データーセンターの仮想化では、アプリケーションとそれを支えるサーバー、記憶域およびネットワーク基盤の間に抽象層が生成される。仮想マシンにより、それを支える物理マシンのリソースを様々な仮想マシン間で共有することができる。仮想化により、1つの論理エンティティを複数の物理エンティティから生成することができ、または、多数の論理エンティティを、コンピューティング、記憶域、ネットワークまたはアプリケーション、のリソースを含む1つの物理エンティティから生成することができる。各仮想マシンが自己のオペレーティングシステムを実行してもよい。仮想化を提供するソフトウェア層は仮想マシンモニタまたはハイパーバイザと呼ばれる。ハイパーバイザを、ハードウェアで直接的に実行することができ、または、オペレーティングシステムの上で実行することができる。仮想マシンの環境では、複数のオペレーティングシステム環境が同一のコンピューター上で共存できるが、互いからの隔離は保たれる。仮想マシンは、別の物理ホストコンピューターシステムの領域内で追加の相違なるコンピューターシステムとして動作する、1組の電子ファイルを備えることができる。システム100が、コンピューター102のような1つまたは複数のコンピューターを備えてもよい。当該1つまたは複数のコンピューターが、プロセッサー142のようなプロセッサ、メモリー144のようなメモリー、および1つまたは複数のコンピューターで構成ドリフトを管理するための1つまたは複数のモジュール、のうち1つまたは複数を備えてもよい。当業界で良く知られた他のコンポーネントを含めてもよいが、ここではこれらのコンポーネントは示していない。構成ドリフトを管理するためのモジュール複数可をメモリー144にロードして、プロセッサー142のような1つまたは複数のプロセッサに、構成ドリフトを管理するためのモジュール複数可の動作を実施させてもよいことは理解されよう。構成ドリフトを管理するためのモジュール複数可が、構成マネージャー106のような構成マネージャを備えてもよい。構成マネージャ106が、構成サービス108のような構成サービスと、修復サービス110のような修復サービスを備えることができる。構成マネージャ106と修復サービス110とは、上述のように幾つかのコンピューター、物理または仮想のホストまたはゲストと通信することができる。本明細書で開示した主題の態様によれば、管理されたコンピューターまたは一群のコンピューターに関する構成情報は、コンピューター102のようなデータセンターのシステムセンタコンピューターに入力することができる。構成ベースラインを生成することができ、当該構成ベースラインをターゲットコンピューターまたは一群のターゲットコンピューター管理されたコンピューターに割り当てることができる。1組の構成規則112等を生成することにより、構成ベースラインを生成することができる。構成ベースラインは、データ記憶104のような構成データ記憶に格納することができる。構成規則112のような構成規則は、構成設定112aのような特定の設定を選択され、当該設定に対して値、値のリスト、または、値の範囲を与えることにより、作成することができる。検証112bのような検証アルゴリズムを作成することができる。当該検証アルゴリズムは、割り当てられた値が受入可能な値または値のリスト/範囲に従うか否かを判定することができる。構成規則は、対象112cのようなターゲットタイプの仕様を含むこともできる。例えば、ターゲットタイプが任意の管理されたエンティティであることができ、当該エンティティには、プログラム、アプリケーション、サービス、データベース、ウェブサイト、オペレーティングシステム等が含まれるがこれらに限らない。ターゲットシステムまたは一群のターゲットコンピューターを指定することができる。構成規則は、設定を所望の値に戻すためにとるべき1つの措置または1組の措置を含むことができる。1つまたは複数の設定を1つまたは複数の所望の値に戻すプロセスは修復と呼ばれる。修復112dは図1のこれらの措置を表す。設定の所望の値は、ユーザにより当該設定に割り当てることができ、または、当該設定に対する値を特定の管理されたコンピューターから、例えば、管理されたコンピューター134または管理されたコンピューター132または管理されたコンピューター140等から取得することによって、当該設定に割り当てることができる。どのように不適合の値を送信し誰に警告を送信するかを記述する警告規則を指定することもできる。他の情報を構成規則に追加してもよく、これを112eで表す。構成規則112、等のような1組の構成規則を作成し、構成ベースライン114のような1つまたは複数の構成ベースラインに集約することができる。構成ベースラインを、ターゲットコンピューター116のような1つまたは複数のターゲットコンピューターに割り当てることができる。構成ベースライン、規則およびターゲットグループを構成データ記憶またはデータベース例えば、データ記憶104に格納することができる。上述の情報を収集して管理パック118のような管理パックを生成することができる。管理パックは、当該情報の送信先である場所を特定し、管理されたコンピューターが適合しているか否かを判定するテストをどのように実行するかを記述することができる。次いで、構成サービス108のような構成サービスが管理パック例えば、管理パック118を、構成ベースラインのターゲットにおいて特定されたコンピューターに配布することができる。管理されたコンピューター134のような管理されたコンピューター上の健康サービス126のような健康サービスが、管理パックで記述された構成に関して作業を実施するように動作することができる。管理パックで記述された作業に、適合ポリシの生成を含めることができる。適合ポリシプロセッサー128のような適合ポリシプロセッサーが、管理されたコンピューター例えば、管理されたコンピューター134が1つまたは複数の構成ベースラインに適合しているか否かを判定することができる。種々のレポートを生成してもよい。当該レポートとしては例えば、図3および4に関して説明し下記でより完全に説明するレポートがあるがこれらに限らない。当該レポートを、モニタもしくは他の表示装置に表示することができ、または、印刷することができる。当該レポートが、提示された値に関する情報を含むことができる。当該値に対して、1つまたは複数の設定値を設定することができる。幾つかのプログラムが1つまたは複数の同一の設定を使用してもよいことは理解されよう。この場合、提示された値が複数のアプリケーションの要求に従うように、規則を組み合わせることができる。例えば、1つのアプリケーションが、特定の設定の値が3より大きいと規定し、第2のアプリケーションがその設定の値が7未満であると規定してもよい。適合レポートにより、設定の値が4、5、または6であると示唆することができる。さらに、適合レポートにより、5のような特定の選択肢を提示してもよい。構成ドリフト情報を含む適合結果は、データセンターのシステムセンタコンピューターに送信する、または、データセンターのシステムセンタコンピューターにより受け取ることができ、適合データ記憶124のような適合データ記憶に格納することができる。修復を、例えば次のメンテナンスウィンドウの間に、即座に必要に応じて、または、将来に向かってスケジュールして、自動的に行うことができる。それ以外にも、ユーザに修復の必要性を通知してもよく、修復を手動で実施することができる。コンピューターの適合状況とユーザが取った措置の両方を含む情報をユーザに提示することができる。例えば、特定のコンピューター上の特定のアプリケーションのインスタンスが特定の規則に適合しておらず、修復が次のメンテナンスウィンドウにスケジュールされているかまたはまだスケジュールされていないことを示す情報をユーザに提示することができる。長期間にわたって行われた全ての修復は修復データ記憶105のような修復データ記憶に保持されまたは格納され、別の同様なシステムまたはインスタンスが追加された場合に、保持された修復の全てを新たなシステムに適用できるようにすることができる。例えば、予め生成した動作システムイメージを用いてマシンがセットアップされ、続いて修復がマシンに適用されたと仮定する。同じイメージを使用して別のシステムを展開する場合は、修復により行われた変更が失われるであろう。本明細書で開示した主題の諸態様によれば、行われた全ての修復が保持される。オペレーティングシステムのイメージを使用して別のシステムを展開するときは、保持された修復を新たなシステムに適用して、構成ドリフトを排除する。図3は、作成できる適合レポートの一例である。図3は、WoodgroveITという企業WGIT302に対する適合レポートを表し、当該企業は2つのサイトを、1つはニューヨークにニューヨーク304、1つはサンフランシスコサンフランシスコ306に有する。ニューヨークのサイトは3つのマシングループ、即ち、開発グループDEV308、生産グループPROD310およびステージンググループstaginggroupSTAG312を有する。本例では、ユーザが生産グループのマシンを選択して生産グループを検索314という見出しで示す、それに関するレポートを受け取っている。レポートの本体316で列挙したマシンがニューヨークのサイトの生産マシンを表す。当該レポートから、識別子C1_NewYorkProd318を有するコンピューターが適合しており320、識別子Computer2_NYP2322を有するコンピューターが不適合である324ことが分かる。さらに、適合レポート300はどの種類のベースラインが不適合であるかを示す。図3では、パッチベースライン326が不適合である328。不適合である332Computer5_NYP2330を除いて、レポートに列挙された他の全てのコンピューターは適合している。Computer5_NYP2330を選択することで、Computer5_NYP2330に対する適合および不適合のアプリケーションベースラインのリストを生成することができる。したがって、このレポートにより、所与のコンピューターまたは一群のコンピューターの、これらのコンピューターに関連付けられた構成ベースラインの適合または不適合の状況に関する情報を提供することができる。特定のコンピューターまたは一群のコンピューターが適合していない場合は、当該レポートにより、どのマシンが適合しておりどのマシンが適合していないか、および、構成ベースライン内のどの特定の1つまたは複数の規則に関してマシンが不適合であるかを特定する情報を提供することができる。提示された他の情報には、最終スキャン日時334および次のスケジュールされたスキャン日時336を含めることができるがこれらに限らない。図2は、本明細書で開示した主題の諸態様に従う構成ドリフトを管理するための方法200の一例を示している。図1に関して上述したように、説明した方法またはその一部をシステム100またはその一部により行ってもよい。202で、設計の目的を定義することができる。コンピューターを構成することは、単に設定を選択して値を当該設定に割り当てることではなく、困難な作業でありうる。最初に、関係する非常に多くの設定が難題である。どのコンピューターにも、非常に多くの可能な設定が存在する。当該可能な設定の数は、ユーザが管理できる範囲を確実に超えている可能性があり、自動システムが検証できる範囲さえも超えているかもしれない。これらの設定の各々に複数の値を割り当てることができる。本明細書で開示した主題の諸態様によれば、1組の特定の設定を識別して監視する。次に、アプリケーションプロバイダもユーザも、自力では、構成ベースラインを効果的に作成することができないかもしれない。アプリケーションベンダーは、どの設定がそのアプリケーションに影響を及ぼすかを知っているかもしれないが、当該設定に対するどの値がユーザの環境において最も効果的に動作するかは知らないかもしれない。例えば、SQLアプリケーションのプロバイダは、アプリケーションの機能が特定のレジストリキーに依存することを知っているかもしれないが、当該レジストリキーがユーザの環境においてどの値に設定されるかは知らないかもしれない。同様に、ユーザは、どの設定が自分のシステムで実行されているアプリケーションに影響を及ぼすかを知らないかもしれないが、或る設定の値を、アプリケーションが当該ユーザの環境で良く動作することとなる値に設定することによってシステムを調整してしまう可能性はある。本明細書で開示した主題の諸態様によれば、どの設定が関係しているかまたは当該設定に対する値は何かを知らないかもしれないユーザが、望ましく構成されたマシンを特定することができる。自動機能が、良く動作するマシンの設定を読み取ることができ、特定したマシンの設定に対する値を使用してベースライン構成またはその一部を生成することができる。特定されたマシンから読み取った値と設定は、オペレーティングシステムの設定またはアプリケーションレベルの設定を含むことができる。生成したベースライン構成を使用して、新たなサービスのインスタンスまたは新たなマシンの適合性を評価することができる。最後に、上述の課題に加えて、別の課題は、各設定の間に1つまたは複数の依存性が存在しうることである。即ち、任意の所与の設定が複数のプログラムまたはアプリケーションによって使用されることがある。したがって、或る設定の値を変更する過程において、ユーザが別のプログラムまたはアプリケーションの実行に悪影響を及ぼしてしまうことがある。例えば、或る設定がアプリケーションAとアプリケーションBの両方により使用されていると仮定する。ユーザがアプリケーションAの設定を変更した場合、アプリケーションBを再起動する必要があるかもしれない。なぜならば、アプリケーションBがその実行中に不変であると期待する値が不意に変更されたからである。これはアプリケーション間の依存性がどのように構成管理に影響を及ぼすかの一例にすぎないことは理解されよう。したがって、本明細書で開示した主題の諸多様によれば、自動機能が、設定値の変更の影響を受けるアプリケーションを決定することができ、影響を受けた任意のプログラムまたはアプリケーションを自動的に再開することができる。さらに、複数のプログラムが特定の設定に依存し、第1のプログラムが第1の範囲にあるべき設定の値に依存し、第2のプログラムが第2の範囲にあるべき設定の値に依存する場合は、自動機能により、規則を組み合わせて、第1のプログラムおよび第2のプログラムの両方と連携する値を決定することができる。例えば、自動機能が、第1の範囲と第2の範囲の両方にある設定値を決定してもよい。上述の例では、両方とも特定の設定を使用する2つのプログラムが存在するが、自動機能は2つのアプリケーションに限定されず、任意数のアプリケーションの値の範囲を評価して、当該アプリケーションの全部または大部分と連携する値を決定することができる。設定の影響を受ける全てのプログラムを検証する妥当性検証を起こすことができる。自動機能が、影響を受けた任意の構成規則を調整してもよい。あるいは、構成すべき設定を選択し、当該設定に対する値を選択することができる。ベンダーのモデル設定を用いて構成設定を定義することができ、または、ベンダーのモデル設定から始めて、別のマシンの設定を読み当該ベンダーのモデル設定をマッチするように変更することで当該ベンダーのモデル設定を修復することにより、構成設定を定義することができる。上述のように、構成規則は、構成設定、妥当性検証、ターゲットタイプおよび、構成ドリフトを修復する1組の動作修復を含むことができる。本明細書で開示した主題の諸態様によれば、ターゲットタイプを規則ごとに、アプリケーション、プログラムまたはオペレーティングシステムの粒度レベルのような管理されたエンティティのレベルで定義することができる。例えば、ユーザは、特定の規則に関連付けられたターゲットが、特定のアプリケーションであり、ウェブサイトであり、データベースであると規定することができる。上記特定のアプリケーションとしては例えば、SQLサーバー、ExchangeサーバーまたはアプリケーションA、等があるがこれらに限らない。上記ウェブサイトには例えばIISのウェブサイトがあるがこれに限らない。上記データベースにはSQLデータベース等があるがこれらに限らない。この粒度レベルで定義されたターゲットにより、上述のより有益なレポートが可能となり、また、以下でより完全に説明するが、より対象を絞った評価が可能となる。204で、1つのマシンまたは1組のマシンを、当該1つのマシンまたは1組のマシンに対する構成ベースラインの適合に関して評価することができる。ユーザは、どのマシンまたは一群のマシンが評価されるかを制御することができる。ユーザは、どの構成規則に関して1つのマシンまたは一群のマシンを評価するかを制御することができる。評価のスケジューリングを制御することができ、あるいは、評価を必要に応じて即座に行うことができる。ターゲットが管理されたエンティティのレベルで定義されるので、評価プロセスが簡素化される。なぜならば、対象のアプリケーションまたはプログラムを有するマシンのみが評価されるからである。例えば、マシンAに対する構成ベースライン内の構成規則が、特定の設定に関して特定のタイプの電子メールアプリケーションのターゲットタイプのみを規定し、マシンAが当該特定のタイプの電子メールアプリケーションを有さない場合、その設定をそのマシンで評価する必要はない。206で、評価に関する情報をユーザに提示することができる。当該情報を、印刷したレポートまたはディスプレイ、等の形で提示することができる。ターゲットが管理されたエンティティのレベルで定義されるので、当該ユーザに提示された情報はより有益でありうる。例えば、特定のマシンが構成ベースラインに適合しないとだけレポートするのではなく、図3に関して上述したように、ユーザに提示する情報に、適合しない特定のアプリケーションまたはプログラムを含めることもできる。208で、修復を行うことができる。修復とは、修復されたマシンが構成ベースラインに適合する状態に戻るように構成ドリフトを補正するよう実施される1組の動作をいう。修復を手動で行うかまたは自動で行うことができる。修復を1つまたは複数のコンピューター例えば、選択したコンピューターまたは一群のコンピューターのみで行うことができる。修復を、1つまたは複数のコンピューターの1つまたは複数の選択された構成規則に関連する設定にのみ制限することができる。マシンがドリフトしていると判定された場合、ユーザは修復を自動で行わせることとするか、または、ユーザは修復を手動で行うこととすることができる。ユーザが自動修復を選択した場合、自動修復を即座に、または、マシンの次のメンテナンスウィンドウで実施することができる。例えば、何人かのユーザがマシンを使用する場合、メンテナンスウィンドウで修復を行うことで、ユーザが使用したいときにシステムが動作可能であることを保証することができる。210で、アプリケーション、プログラム、一群のアプリケーション、オペレーティングシステムまたはマシンの新たなインスタンスを、構成ドリフトなしに既存のオペレーティングシステムイメージから生成することができる。本明細書で開示した主題の諸態様によれば、適用される任意の修復が保持され、新たなインスタンスが生成されたときに使用される。図4は、作成できるレポート400の一例である。レポート400は、選択されたコンピューター、即ち、選択されたコンピューター402の構成を読み取った結果を表示している。規則ごとに例えば、規則1404から規則4406まで、当該レポートは状況例えば、規則の読み取りに成功した408または規則の読取準備が完了した410と検証規則例えば、5に等しい412を示している。図4で、選択されたコンピューター402が、新たなインスタンスを生成するためのモデルであるコンピューターを表してもよい。自動機能が、当該選択されたコンピューターと通じて、構成ベースラインで定義された設定ごとに値を読み取ることができる。この構成ベースラインを必要に応じて他のサーバーに適用することができる。妥当性検証規則列規則1404に関して、5に等しい412は、選択されたコンピューター402上の対応規則に対する構成設定の値を示す。各規則を異なるコンピューターに向けることができる。例えば、構成ベースラインにおける規則ごとに、規則1を、コンピューター1に向けるように設定することができ、規則2を、コンピューター2に向けるように設定することができる、等である。それに応答して、構成設定を、規則1の構成設定に対してコンピューター1から読み出し、規則2の構成設定に対してコンピューター2から読み出す。これにより、ユーザは構成ベースラインの一部を複数のマシンから生成することができる。即ち、構成ベースラインを、SQLアプリケーションのような第1のターゲットに対して良く構成された或るマシンの組合せ、オペレーティングシステムのような第2のターゲットに対して良く構成された第2のマシン、別のアプリケーションに対して良く構成された第3のマシン、等から生成することができる。適切なコンピューティング環境の例本明細書で開示した主題の様々な態様に対するコンテキストを提供するため、図5および以下の議論は、様々な実施形態を実装できる適切なコンピューティング環境510を簡潔かつ一般的に説明しようとするものである。本明細書で開示した主題を、プログラムモジュールのような、1つまたは複数のコンピューターまたは他のコンピューティング装置により実行されるコンピューター実行可能命令の一般的なコンテキストで説明するが、本明細書で開示した主題の一部を他のプログラムモジュールとの組合せおよび/またはハードウェアとソフトウェアの組合せで実装することもできることは当業者には理解されよう。一般に、プログラムモジュールは、特定のタスクを実施するかまたは特定のデータ型を実装するルーチン、プログラム、オブジェクト、物理アーチファクトphysicalartifact、データ構造、等を含む。一般に、プログラムモジュールの機能を様々な実施形態において必要に応じて組み合わせるかまたは分散させてもよい。コンピューティング環境510は適切な動作環境の一例にすぎず、本明細書で開示した主題の使用範囲または機能範囲を限定しようとするものではない。図5を参照すると、線形スタック上の共通ルーチンを効率的に再開するためのコンピューティング装置がコンピューター512の形で記載されている。コンピューター512は、演算装置514、システムメモリ516、およびシステムバス518を備えてもよい。演算装置514は、様々な利用可能なプロセッサーのうち任意のものであることができる。デュアルマイクロプロセッサーおよび他のマルチプロセッサーキテクチャを演算装置514として使用することもできる。システムメモリ516には、揮発性メモリ520と不揮発性メモリ522を含めてもよい。不揮発性メモリ522には、ROMreadonlymemory、PROMprogrammableROM、EPROMelectricallyprogrammableROMまたはフラッシュメモリを含めることができる。揮発性メモリ520には、外部キャッシュメモリとして動作しうるRAMrandomaccessmemoryを含めてもよい。システムバス518は、システムメモリ516を含むシステム物理アーチファクトを演算装置514に接続する。システムバス518は、メモリバス、メモリコントローラ、周辺バス、外部バス、またはローカルバスを含む幾つかの種類のうち任意のものであることができ、任意の様々な利用可能なバスアーキテクチャを利用してもよい。コンピューター512は一般に、揮発性および不揮発性の媒体、取り外し可能および取り外し不能な媒体のような、様々なコンピューター読取可能媒体を含む。コンピューター記憶媒体を、コンピューター読取可能命令、データ構造、プログラムモジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装してもよい。コンピューター記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CDROM、DVDdigitalversatilediskもしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピューター512がアクセス可能な他の任意の非一時的媒体non-transitorymediumが含まれるがこれらに限らない。図5はユーザとコンピューターリソースの間の中間体として動作できるソフトウェアを説明するものであることは理解されよう。当該ソフトウェアには、ディスク記憶524に格納できるオペレーティングシステム528を含めてもよい。オペレーティングシステム528は、コンピューターシステム512のリソースを制御し割り当てることができる。ディスク記憶524は、インターフェース526のような取外し不能なメモリインターフェースを介してシステムバス518に接続されるハードディスクドライブであってもよい。システムアプリケーション530は、システムメモリ516またはディスク記憶524の何れかに格納されたプログラムモジュール532とプログラムデータ534を通じて、オペレーティングシステム528によるリソース管理を利用する。コンピューターを様々なオペレーティングシステムまたはオペレーティングシステムの組合せで実装できることは理解されよう。ユーザは、入力装置複数可536を介してコマンドまたは情報をコンピューター512に入力することができる。入力装置536には、マウス、トラックボール、スタイラスペン、タッチパッド、キーボード、マイクロフォン、等のようなポインティングデバイスが含まれるがこれらに限らない。これらおよび他の入力装置は、インターフェースポート複数可538を介してシステムバス518により演算装置514に接続される。インターフェースポート複数可538は、シリアルポート、パラレルポート、USBuniversalserialbus等を表してもよい。出力装置複数可540が、入力装置を使用するのと同じ種類のポートを利用してもよい。特定のアダプタを要するモニタ、スピーカ、およびプリンタのような幾つかの出力装置540が存在することを示すために、出力アダプタ542が提供されている。出力アダプタ542には、出力装置540とシステムバス518の間の接続を提供するビデオカードおよびサウンドカードが含まれるがこれらに限らない。他の装置および/もしくはシステムまたはリモートコンピューター複数可544のような装置が、入力機能と出力機能の両方を提供してもよい。コンピューター512は、リモートコンピューター複数可544のような1つまたは複数のリモートコンピューターへの論理接続を用いてネットワーク環境で動作することができる。リモートコンピューター544は、パーソナルコンピューター、サーバー、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードであることができ、一般に、コンピューター512に関して上述した要素のうち多数または全部を含むが、図4ではメモリ記憶装置546のみ示してある。リモートコンピューター複数可544を、通信接続550を介して論理的に接続することができる。ネットワークインターフェース548は、LANlocalareanetworkおよびWANwideareanetworkのような通信ネットワークを包含するが、他のネットワークを含んでもよい。通信接続複数可550は、ネットワークインターフェース548をバス518に接続するために採用されるハードウェア/ソフトウェアを指す。接続550は、コンピューター512の内部または外部にあってもよく、電話、ケーブル、DSLおよび無線のモデム、ISDNアダプタ、イーサネットカード、等のような内部および外部の技術を含んでもよい。図示したネットワーク接続は例にすぎず、コンピューター間の通信リンクを確立するための他の手段を利用してもよいことは理解されよう。コンピューター512または他のクライアント装置をコンピューターネットワークの一部として展開できることは当業者には理解されよう。これに関して、本明細書で開示した主題は、任意数のメモリまたは記憶ユニット、および任意数の記憶ユニットまたはボリュームにわたって生ずる任意数のアプリケーションおよびプロセスを有する任意のコンピューターシステムに関するものであってもよい。本明細書で開示した主題の態様は、リモート記憶またはローカル記憶を有するネットワーク環境に展開したサーバーコンピューターとクライアントコンピューターを有する環境に適用してもよい。本明細書で開示した主題の態様は、プログラミング言語の機能、解釈実行機能を有する、スタンドアロンのコンピューティング装置に適用してもよい。本明細書で説明した様々な技法は、ハードウェアもしくはソフトウェアと関連して、または必要に応じてその両方の組合せで実装してもよい。したがって、本明細書で説明した方法および装置、またはその特定の態様もしくは部分が、フロッピディスク、CD-ROM、ハードドライブ、または他の任意の機械読取可能な記憶媒体のような有形の媒体で具体化されたプログラムコード即ち、命令の形式をとってもよく、プログラムコードがコンピューターのようなマシンにロードされ当該マシンにより実行されると、当該マシンは本明細書で開示した主題の態様を実施するための装置になる。プログラム可能コンピューター上でプログラムコードを実行する場合は、コンピューティング装置は一般に、プロセッサー、当該プロセッサーによる可読記憶媒体揮発性および不揮発性のメモリおよび/または記憶要素、少なくとも1つの入力装置、および、少なくとも1つの出力装置を含む。例えばデータ処理API等の利用を通じて、ドメイン固有のプログラミングモデルの態様の生成および/または実装を利用できる1つまたは複数のプログラムは、高レベルの手続型またはオブジェクト指向のプログラミング言語で実装してコンピューターシステムと通信してもよい。しかし、必要ならば、プログラム複数可をアセンブリ言語または機械語で実装することができる。いずれにせよ、言語はコンパイル型またはインタプリタ型の言語であってもよく、ハードウェア実装と組み合わせてもよい。本明細書で開示した主題を添付の図面と関連して説明したが、修正を加えて同じ機能を様々な方法で実施してもよいことは理解されよう。