Configuration Manager プログラミングを開始する
Configuration Managerのプログラミングを開始するには、Configuration Managerに関する基本的な機能とアーキテクチャの理解を持つことが有益です。 さらに、ソリューションの検証とトラブルシューティングに重要な主要なツールとリソースがいくつかあります。 次に、Configuration Managerのプログラミングを初めて使用するユーザー向けのヒントとリソースを示します。
重要
以前の Systems Management Server (SMS) Configuration Managerには、製品としてかなり長い歴史があることを認識する必要があります。 名前空間、クラス、メソッド、プロパティ、ログ ファイルを確認すると、"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によって管理されるシステムとデバイスです。 'server' は、Configuration Manger クライアントにすることができます。 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_<サイト コード>
サーバー WMI クラス:Configuration Manager API リファレンス
Client
プライマリ 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 ベースのエンタープライズ管理 (WBEM) と呼ばれるインターネット標準のMicrosoft実装です。 WMI ツールは多数あります。 ただし、WBEMTEST は、最初にダウンロードする必要はなく、ほとんどのシステムですぐに使用できます。 Notepad.exeと同じように考えるかもしれません。豊富な機能を備えたテキスト エディターがありますが、テキスト ファイルを表示または作成する必要がある場合は、Notepad.exe常に存在します。
ヒント
内部的には、SMS プロバイダー関連の問題 (オブジェクトの作成、変更、削除) のトラブルシューティングに最も一般的に使用されるツールは WBEMTEST です。
CMTrace
CMTrace:CMTrace は、Configuration Managerの監視とトラブルシューティングに役立つカスタマイズされたログ ファイル ビューアーです。 CMTrace は、ログ ファイルの変更 (ログに記録されたアクティビティを監視するために再読み込みする必要はなく) の継続的なビューを提供し、SMS プロバイダーを介したオブジェクトの作成または変更の監視/トラブルシューティングを行う場合に特に便利です (以下の SMSProv.log を参照)。
CMTrace は、Configuration Manager サイト サーバーの "<Configuration Manager インストール ディレクトリ>\tools" フォルダーにあります。
SMSProv.log:SMS プロバイダー ログ ファイル (<Configuration Manager Installation Directory>\Logs\SMSProv.log) は、SMS プロバイダーのアクティビティをログに記録し、SMS プロバイダーを使用してConfiguration Managerオブジェクトをプログラムで作成または変更するときに問題を監視/トラブルシューティングするのに役立つ低レベルの情報を提供します。
クライアント スパイとポリシー スパイ
クライアント スパイ:System Center 2012 Configuration Manager クライアントでのソフトウェア配布、インベントリ、ソフトウェア測定に関連する問題のトラブルシューティングに役立つツール。
ポリシー スパイ:System Center 2012 Configuration Manager クライアントのポリシー システムを確認してトラブルシューティングするのに役立つポリシー ビューアー。
基本的なConfiguration Manager プログラムの例
以下は、多くのConfiguration Managerプログラムに共通するいくつかの基本的な操作を示す非常に単純なConfiguration Managerプログラムへのリンクです。
Connect
SMS プロバイダーに送信するList
すべてのプログラム新しいプログラムを作成する
既存のプログラムを変更する
既存のプログラムを削除する