コンテキスト オブジェクトは、Configuration Manager で SMS プロバイダーに追加情報を提供するために使用されます。 通常は、コンテキスト修飾子を使用して、アプリケーションの名前などのコンテキスト情報を SMS プロバイダーに指定します。 コンテキスト修飾子は、SMS プロバイダーに接続するとき、および個々の SMS プロバイダー オブジェクトに接続するときに使用できます。
マネージ コード
マネージド SMS プロバイダー ライブラリを使用する場合は、 ConnectionManagerBase.Context プロパティを使用してコンテキスト修飾子を指定します。 詳細については、「マネージド コードを使用して Configuration Manager コンテキスト修飾子を追加する方法」を参照してください。
VBScript
VBScript を使用する場合は、 SWBemNamedValue インターフェイス セットを使用して、名前付き値オブジェクトのコレクションとしてコンテキスト修飾子を指定します。 詳細については、「WMI を使用して Configuration Manager コンテキスト修飾子を追加する方法」を参照してください。
コンテキスト修飾子
次の表に、SMS プロバイダーによって使用されるコンテキスト修飾子 (名前付き値) を示します。
SessionHandle などのほとんどの修飾子は、SMS プロバイダーの特定の機能領域でのみ使用されますが、LocaleID、MachineName、および ApplicationName はアプリケーションで使用するためのものです。
| コンテキスト修飾子 | 説明 |
|---|---|
ApplicationName |
呼び出しを行ったアプリケーションを識別します。 |
ContextHandle |
SMS プロバイダーがキャッシュされたコンテキスト修飾子を格納した場所を識別します。 |
InstanceCount |
ExecQuery および CreateInstanceEnum から返されるインスタンスの数を制限します。 |
LimitToCollectionIDs |
リソース クエリの結果を、名前付きコレクションのメンバーに制限します。 |
LocaleID |
使用するコード ページを識別します。 |
MachineName |
アプリケーションを実行しているコンピューターを識別します。 |
QueryQualifiers |
セキュリティで保護されたオブジェクトに対してクエリを実行するときに SecurityVerbs ビット フラグを返します。 |
SessionHandle |
アプリケーションのサイト制御ファイルのコピーを Configuration Manager に対して識別します。 |
ApplicationName
ApplicationName コンテキスト修飾子は、呼び出しを行ったアプリケーションの名前を識別する文字列値です。
ApplicationName は監査に使用されるため、指定してください。 アプリケーションの名前を指定しない場合は、Unknown の値が使用されます。
SMS_StatusMessage::RaiseErrorStatusMsg などの発生ステータス メッセージ メソッドのいずれかを呼び出すときは、ApplicationName 値を指定する必要があります。そうしないと、呼び出しは失敗します。
ContextHandle
ContextHandle コンテキスト修飾子は、SMS プロバイダーがキャッシュされたコンテキスト修飾子を格納した場所を識別する文字列値です。 マネージド SMS プロバイダーは、データ転送を管理します。 VBScript を使用する場合は、次の手順を使用して、ネットワーク経由で渡されるデータの量を減らすことができます。
SWBemNamedValue 値セットを作成します。
コンテキスト オブジェクトに修飾子を追加します。 詳細については、「WMI を使用して Configuration Manager コンテキスト修飾子を追加する方法」を参照してください。
GetContextHandle メソッドを呼び出して、サーバー上の修飾子をキャッシュします。 SMS プロバイダーは、GetContextHandle を呼び出すときに ExecMethod のパラメーターとして渡したコンテキスト オブジェクトをキャッシュします。
コンテキスト オブジェクトからすべての修飾子を削除します。
ContextHandleの修飾子と値をコンテキスト オブジェクトに追加します。IWbemServices へのすべての呼び出しでコンテキスト オブジェクトを渡します。
アプリケーションを終了する前に、 ClearContextHandle メソッドを呼び出して、キャッシュされた修飾子を削除する必要があります。 必要な数の
ContextHandle値を作成でき、それぞれがアプリケーションに異なる情報を提供します。
注:
コンテキスト修飾子をキャッシュした後、異なる値を持つ同じコンテキスト修飾子をコンテキスト オブジェクトに追加することで、キャッシュされた値をオーバーライドできます。
InstanceCount
InstanceCount コンテキスト修飾子は、ExecQuery メソッドと CreateInstanceEnum メソッドから返されるインスタンスの数を制限するために使用される整数値です。
InstanceCountクエリまたは列挙子から返すインスタンスの最大数と等しくなります。 たとえば、 InstanceCount を 10 に設定すると、最大で 10 個のインスタンスが返されます。
LimitToCollectionIDs
LimitToCollectionIDs コンテキスト修飾子は、CollectionID値のリストを含む文字列配列です。 現時点では、指定できる CollectionID 値は 1 つだけです。 この修飾子を使用すると、リソース照会の結果を名前付きコレクションのメンバーに制限できます。 リソース クエリは、 SMS_Resource または SMS_Group から派生したクラスを含むクエリです。
ユーザーには、リソースが属するコレクションに対するインスタンス読み取りリソースのアクセス許可が必要です。 ユーザーがコレクションに対するクラス読み取りリソース権限を持っていない場合は、コレクション制限を使用する必要があります。それ以外の場合、データは返されません。 SMS 2.0 Service Pack 1 以降のバージョンの場合、この制限は SMS_Group から派生したクラスにのみ適用されます。
コレクションをクエリする場合、この修飾子は使用できません。
LocaleID
LocaleID コンテキスト修飾子は、MS\x の形式で 16 進数値または 10 進数値を受け入れる文字列値です。ここで、x はロケール ID です。 たとえば、英語の LocaleID 値は ms\0x0409 または ms\1033 として入力できます。 SMS プロバイダーは、Microsoft 形式を使用する LocaleID 値のみを受け入れます。
locale IDsの一覧は、「Microsoft によって割り当てられたロケール ID」にあります。
米国以外のロケールが必要な場合 SMS_Identification Server WMI ClassLocaleID プロパティから取得できます。
MachineName
MachineName コンテキスト修飾子は、アプリケーションを実行しているコンピューターを識別する文字列値です。
MachineName は監査に使用されるため、指定してください。 コンピューター名を指定しない場合は、[不明] の値が使用されます。
SMS_StatusMessage::RaiseRawStatusMsg などの発生ステータス メッセージ メソッドのいずれかを呼び出すときは、MachineName 値を指定する必要があります。そうしないと、呼び出しは失敗します。
QueryQualifiers
QueryQualifiers コンテキスト修飾子は、セキュリティで保護されたオブジェクト (SMS_Site や SMS_Package など) に対してクエリを実行するときに SecurityVerbs ビット フラグを返すために使用されるブール値です。 セキュリティで保護されていないオブジェクトをクエリするときに QueryQualifiers を使用すると、エラーが発生することに注意してください。 既定では、クエリでは SecurityVerbs フラグは返されません。 フラグを返す場合は、この修飾子を作成し、その値を true に設定する必要があります。
QueryQualifiersを作成しないことは、その値を false に設定することと同じです。
SessionHandle
SessionHandle コンテキスト修飾子は、GetSessionHandle メソッドの out パラメーターとして返される文字列値です。 文字列は、アプリケーションのサイト コントロール ファイルのコピーを Configuration Manager に識別する一意の GUID です。 このメカニズムを使用して、サイト コントロール ファイルを変更し、同時にサイト コントロール ファイルを変更する他のアプリケーションとのデータ競合を減らす必要があります。
SessionHandle値を指定しない場合、アプリケーションはサイト コントロール ファイルのグローバル コピーを変更します。これにより、アプリケーションが互いのデータを上書きすることからの保護はありません。
注:
マネージド SMS プロバイダーを使用している場合は、サイトコントロール ファイル セッション管理が自動的に管理されます。
関連項目
マネージド コードを使用して Configuration Manager コンテキスト修飾子を追加する方法WMI を使用して Configuration Manager コンテキスト修飾子を追加する方法SMS プロバイダーの基礎