Configuration Manager プログラミングを開始する

Configuration Manager のプログラミングを開始するには、Configuration Manager の基本的な機能とアーキテクチャを理解しておくと役立ちます。 さらに、ソリューションの検証とトラブルシューティングに不可欠な重要なツールとリソースが多数あります。 以下は、Configuration Manager のプログラミングを初めて行う人向けのヒントとリソースです。

重要

Configuration Manager、以前の Systems Management Server (SMS) には、製品として非常に長い歴史があることを認識する必要があります。 名前空間、クラス、メソッド、プロパティ、およびログ ファイルを確認すると、"SMS" を含む多くの参照が見つかります。実際、ほとんどの WMI クラスは "SMS_" で始まり、WMI 名前空間の主要なConfiguration Managerは "SMS" です。 何年にもわたって、多数のレガシークラス、メソッド、およびプロパティが蓄積されてきましたが、管理ユーザーには明らかではありませんが、履歴/レガシーをプログラミングすると混乱する可能性があります。

機能の理解

Configuration Manager を正常に自動化または拡張するには、製品の機能を理解することが非常に重要です。 Configuration Manager は多層の分散管理システムであり、多くの場合、多数のサーバーと多数の場所に分散されています。 詳細については、「Configuration Manager の基礎」を参照してください。

その他のリソース

ブック

ビデオ

フォーラム

アーキテクチャの理解

Configuration Manager は、多層の分散管理システムです。 Configuration Manager の一般的なアーキテクチャを理解することが重要です。 次に、Configuration Manager のアーキテクチャの概要へのリンクを示します。

アーキテクチャ情報に加えて、管理者や Configuration Manager を初めて使用するプログラマーを混乱させる共通の重要な点がいくつかあります。

  • サーバー:一般的な意味では、ほとんどのプログラミング操作 (特に自動化) は Configuration Manager サイト サーバーで行われます。 アクションまたは構成の変更は、ポリシーを介して Configuration Manager 階層全体でクライアントに伝達されます。 ポリシーは、構成可能なポーリング間隔でクライアントによってプルダウンされ、サーバーによってクライアントにすぐにプッシュ されるわけではありません 。 一般に、クライアントがインストールされると、サイト サーバーからクライアントまたはクライアントからサイト サーバーへの直接通信は行われず、すべての通信は中間サーバーの役割を介して行われます。

  • クライアント: Configuration Manager クライアントは、Configuration Manager によって管理されるシステムとデバイスです。 'サーバー' は構成マネージャー クライアントにすることができます。 Exchange サーバー、Active Directory サーバー、および Configuration Manager サーバーはすべて、Configuration Manager クライアントにすることができます。 さらに、Windows 10、Windows Phone、macOS デバイスはすべて Configuration Manager クライアントにすることができます。

Configuration Manager クライアントは、Configuration Manager 管理ポイントを定期的にポーリングすることでポリシーを受け取ります。 基本ポリシーを取得するためのポーリング間隔は、他の設定と同様に構成可能です。 このため、Configuration Manager サイト サーバーから開始されるクライアントを対象としたアクションには固有の遅延が発生します。

  • コンソール:リモート Configuration Manager コンソールのバイナリとファイルは、サイト サーバーで変更が加えられた場合、自動的には更新されません。 変更や拡張機能は、手動で、または Configuration Manager アプリケーション管理/ソフトウェア配布を使用して、Configuration Manager コンソールを実行しているシステムにコピーする必要があります。

  • SMS プロバイダーと SQL Server: Configuration Manager はデータ ストレージに SQL Server を利用しますが、SQL Server は Configuration Manager への主要なプログラミング インターフェイスではありません。 Configuration Manager の主要なプログラミング インターフェイスは SMS プロバイダー (WMI) です。オブジェクトの作成と変更は SMS プロバイダーを介して行う必要があります。 SQL Server は、クエリとレポートの目的で Configuration Manager データへの読み取り専用アクセスを提供すると見なす必要があります。 これは権限の問題ではなく、データの整合性を維持する問題です。

名前空間とクラス

サーバー

プライマリ WMI 名前空間: ROOT\SMS\SITE_<site code>

サーバー WMI クラス:Configuration Manager API リファレンス

クライアント

プライマリ WMI 名前空間: ROOT\CCM

クライアント WMI クラス:Configuration Manager API リファレンス

重要

Configuration Manager のクライアント側プログラミングのストーリーは、主に WMI ベースのものへと進化しています。 以前は、クライアント機能にアクセスするために使用される主なメソッドはクライアント側の COM クラスのセットでしたが、追加のクライアント側 WMI クラス/メソッドも使用されていました。 System Center 2012 Configuration Manager のリリースに伴い、焦点は名前空間の WMI クラスのセット (root/ccm/ClientSDK) に移っています。 当然のことながら、COM または特定の SDK クラスの形式の抽象化は、製品の更新の過程で基になるアーキテクチャの変更から有用な抽象化を提供します。

コンソール

コンソール関連のマネージド クラス:

  • Microsoft.configurationmanagement.exe

  • Microsoft.configurationmanagement.managementprovider.dll

  • Microsoft.ConfigurationManagement.DialogFoundation.dll

  • AdminUI.DialogFoundation.dll

Configuration Manager コンソールの概要トピック:

プログラミングの基礎

SDK の「Configuration Manager プログラミングの基礎」セクションでは、Configuration Manager で使用できるさまざまな種類のオブジェクトと構造体を操作する方法の例を示します。 Configuration Manager には、最初はわかりにくいオブジェクト/概念が含まれています。 特に興味深いのは、埋め込みプロパティ (サイト コントロール ファイルでプライマリ使用) と遅延プロパティ (Configuration Manager クラス全体で使用) です。 以下は、SDK のプログラミングの基礎 (およびその他のサブセクション) へのリンクです。 これらのセクションには、さまざまなオブジェクト タイプの操作方法を示すコード例が含まれています。

重要

SDK では、ほとんどの場合、VBScript と C# でコード例が提供されます。 これは、他の言語が SMS プロバイダーで動作しないという意味ではありません。 SMS プロバイダーは、正しいオブジェクトと構造を交換できる限り、言語に依存しません。 使用している環境に最も適した言語 (ツール) を使用します。 C# は、SDK コード スニペットをテストするためのベースラインとして内部的に使用されるため、オブジェクト操作とコード構造の例はほとんどの場合、C# で提供されます。 別の言語を使用している場合は、C# から選択した言語に快適に翻訳できる必要があります。

基本ツール

WBEMTEST

Configuration Manager の周りに多くの時間を費やすと、その多くが WMI を介して実行されていることに気付くでしょう。 WMI は "Windows Management Instrumentation" の略で、Web Based Enterprise Management (WBEM) と呼ばれるインターネット標準を Microsoft が実装したものです。 世の中には多くの WMI ツールがあります。 ただし、WBEMTEST は、最初にダウンロードしなくても、ほとんどのシステムですぐに使用できます。 Notepad.exe のように考えるかもしれませんが、より豊富な機能を備えたテキスト エディターがありますが、テキスト ファイルを表示または作成する必要があるときには Notepad.exe 常にあります。

WBEMTEST の概要

ヒント

内部的には、SMS プロバイダー関連の問題 (オブジェクトの作成、変更、削除) のトラブルシューティングで最も一般的に使用されるツールは WBEMTEST です。

CMTrace

CMTrace:CMTrace は、Configuration Manager の監視とトラブルシューティングに役立つ、カスタマイズされたログ ファイル ビューアーです。 CMTrace は、ログ ファイルの変更を継続的に表示でき (ログに記録されたアクティビティを監視するために再読み込みする必要はありません)、SMS プロバイダーを介してオブジェクトの作成または変更を監視/トラブルシューティングする場合に特に便利です (下記SMSProv.logを参照してください)。

CMTrace は、Configuration Manager サイト サーバーの "<Configuration Manager Installation Directory>\tools" フォルダーにあります。

SMSProv.log:SMS プロバイダーのログ ファイル (<Configuration Manager インストール ディレクトリ>\ログ\SMSProv.log) は、SMS プロバイダーのアクティビティを記録し、SMS プロバイダーを使用してプログラムで Configuration Manager オブジェクトを作成または変更する際の問題の監視/トラブルシューティングに役立つ低レベルの情報を提供します。

クライアント スパイとポリシー スパイ

クライアント スパイ:System Center 2012 Configuration Manager クライアントでのソフトウェアの配布、インベントリ、およびソフトウェア測定に関連する問題のトラブルシューティングに役立つツール。

ポリシー スパイ:System Center 2012 Configuration Manager クライアントのポリシー システムの確認とトラブルシューティングに役立つポリシー ビューアー。

基本的な Configuration Manager プログラムの例

次に、非常に単純な Configuration Manager プログラムへのリンクを示します。このリンクでは、多くの Configuration Manager プログラムに共通するいくつかの基本的な操作が示されています。