Configuration Manager Kontextqualifizierer

Kontextobjekte werden im Configuration Manager verwendet, um dem SMS-Anbieter zusätzliche Informationen bereitzustellen. In der Regel verwenden Sie Kontextqualifizierer, um dem SMS-Anbieter Kontextinformationen zu geben, z. B. den Namen Ihrer Anwendung. Sie können Kontextqualifizierer verwenden, wenn Sie eine Verbindung mit dem SMS-Anbieter herstellen und mit einzelnen SMS-Anbieterobjekten.

Verwalteter Code

Wenn Sie die verwalteten SMS-Anbieterbibliotheken verwenden, verwenden Sie die ConnectionManagerBase.Context-Eigenschaft , um Kontextbegrenzungszeichen anzugeben. Weitere Informationen finden Sie unter Hinzufügen eines Configuration Manager-Kontextqualifizierers mithilfe von verwaltetem Code.

VBScript

Wenn Sie VBScript verwenden, verwenden Sie die SWBemNamedValue-Schnittstelle , um Kontextqualifizierer als Auflistung von benannten Wertobjekten anzugeben. Weitere Informationen finden Sie unter Hinzufügen eines Configuration Manager-Kontextqualifizierers mithilfe von WMI.

Kontext-Qualifizierer

Die folgende Tabelle enthält die Kontextbegrenzungszeichen (benannte Werte), die vom SMS-Anbieter verwendet werden. Die meisten Qualifizierer, wie z. B SessionHandle. , werden nur mit bestimmten Funktionsbereichen des SMS-Anbieters verwendet, aber LocaleID, MachineNameund ApplicationName sind für die Verwendung in Ihrer Anwendung vorgesehen.

Kontextbegrenzungszeichen Beschreibung
ApplicationName Identifiziert die Anwendung, die den Aufruf getätigt hat.
ContextHandle Gibt an, wo der SMS-Anbieter Ihre zwischengespeicherten Kontextqualifizierer gespeichert hat.
InstanceCount Schränkt die Anzahl der Instanzen ein, die von ExecQuery und CreateInstanceEnum zurückgegeben werden.
LimitToCollectionIDs Schränkt die Ergebnisse einer Ressourcenabfrage auf die Mitglieder der benannten Sammlungen ein.
LocaleID Identifiziert die zu verwendende Codepage.
MachineName Gibt an, auf welchem Computer die Anwendung ausgeführt wird.
QueryQualifiers Gibt die SecurityVerbs-Bitflags zurück, wenn Sie Abfragen für gesicherte Objekte ausführen.
SessionHandle Identifiziert die Kopie der Standortsteuerungsdatei Ihrer Anwendung für den Configuration Manager.

ApplicationName

Der ApplicationName Kontextqualifizierer ist ein Zeichenfolgenwert, der den Namen der Anwendung identifiziert, die den Aufruf durchgeführt hat. Sie sollten dies für Ihre Anwendung angeben ApplicationName , da sie für die Überwachung verwendet wird. Wenn Sie den Namen Ihrer Anwendung nicht angeben, wird der Wert Unbekannt verwendet. Sie müssen den ApplicationName Wert angeben, wenn Sie eine der Methoden zum Auslösen status Nachricht aufrufen, z. B. SMS_StatusMessage::RaiseErrorStatusMsg, oder der Aufruf schlägt fehl.

ContextHandle

Der ContextHandle Kontextqualifizierer ist ein Zeichenfolgenwert, der angibt, wo der SMS-Anbieter Ihre zwischengespeicherten Kontextqualifizierer gespeichert hat. Der verwaltete SMS-Anbieter verwaltet die Datenübertragung. Wenn Sie VBScript verwenden, können Sie die folgenden Schritte ausführen, um die Datenmenge zu reduzieren, die über das Netzwerk übertragen wird.

  1. Erstellen eines SWBemNamedValue-Wertsatzes .

  2. Fügen Sie Ihre Qualifizierer zum Kontextobjekt hinzu. Weitere Informationen finden Sie unter Hinzufügen eines Configuration Manager-Kontextqualifizierers mithilfe von WMI.

  3. Rufen Sie die GetContextHandle-Methode auf, um die Qualifizierer auf dem Server zwischenzuspeichern. Der SMS-Anbieter speichert das Kontextobjekt zwischen, das Sie als Parameter von ExecMethod übergeben, wenn Sie GetContextHandle aufrufen.

  4. Entfernen Sie alle Begrenzungszeichen aus dem Kontextobjekt.

  5. Fügen Sie den Qualifizierer und den ContextHandle Wert zu Ihrem Kontextobjekt hinzu.

  6. Übergeben Sie das Kontextobjekt bei allen Aufrufen von IWbemServices.

    Sie müssen die ClearContextHandle-Methode aufrufen, um die zwischengespeicherten Qualifizierer zu entfernen, bevor Sie die Anwendung beenden. Sie können beliebig viele ContextHandle Werte erstellen, wobei jeder Wert unterschiedliche Informationen für Ihre Anwendung bereitstellt.

Hinweis

Nachdem Sie Ihre Kontextbegrenzungszeichen zwischengespeichert haben, können Sie Ihre zwischengespeicherten Werte überschreiben, indem Sie die gleichen Kontextbegrenzungszeichen mit unterschiedlichen Werten zu Ihrem Kontextobjekt hinzufügen.

InstanceCount

Der InstanceCount Kontextqualifizierer ist ein ganzzahliger Wert, der verwendet wird, um die Anzahl der Instanzen zu begrenzen, die von den Methoden ExecQuery und CreateInstanceEnum zurückgegeben werden. Sie legen die maximale Anzahl von Instanzen fest InstanceCount , die von der Abfrage oder dem Enumerator zurückgegeben werden sollen. Eine Einstellung InstanceCount auf 10 gibt z. B. maximal 10 Instanzen zurück.

LimitToCollectionIDs

Der LimitToCollectionIDs Kontextqualifizierer ist ein Zeichenfolgenarray, das eine Liste von CollectionID Werten enthält. Derzeit können Sie nur einen CollectionID Wert angeben. Sie verwenden diesen Qualifizierer, um die Ergebnisse einer Ressourcenabfrage auf die Mitglieder der benannten Sammlung zu beschränken. Eine Ressourcenabfrage ist eine Abfrage, die Klassen enthält, die von SMS_Resource oder SMS_Group abgeleitet wurden.

Der Benutzer muss über instance-Leseressourcenberechtigungen für die Sammlung verfügen, zu der die Ressource gehört. Sie müssen die Sammlungseinschränkung verwenden, wenn der Benutzer nicht über Klassenleseressourcenrechte für Sammlungen verfügt. Andernfalls werden keine Daten zurückgegeben. Für SMS 2.0 mit Service Pack 1 und neueren Versionen gilt diese Einschränkung nur für Klassen, die von SMS_Group abgeleitet werden.

Sie können diesen Qualifizierer nicht verwenden, wenn Sie Sammlungen abfragen.

LocaleID

Der LocaleID Kontextbezeichner ist ein Zeichenfolgenwert, der entweder einen Hexadezimalwert oder einen Dezimalwert im Format MS\x akzeptiert, wobei x die Gebietsschema-ID ist. Beispielsweise können Sie den englischen LocaleID Wert als ms\0x0409 oder ms\1033 eingeben. Der SMS-Anbieter akzeptiert LocaleID nur Werte, die das Microsoft-Format verwenden. Eine Liste der locale IDsvon Microsoft zugewiesenen Gebietsschema-IDs finden Sie hier.

Wenn Sie das Gebietsschema für nicht-US-amerikanische können Sie sie aus der Eigenschaft SMS_Identification Server WMI-KlasseLocaleID abrufen.

MachineName

Der MachineName Kontextqualifizierer ist ein Zeichenfolgenwert, der angibt, auf welchem Computer die Anwendung ausgeführt wird. Sie sollten dies für Ihre Anwendung angeben MachineName , da sie für die Überwachung verwendet wird. Wenn Sie den Computernamen nicht angeben, wird der Wert "Unbekannt" verwendet. Sie müssen den MachineName-Wert angeben, wenn Sie eine der Methoden zum Auslösen status Nachricht aufrufen, z. B. SMS_StatusMessage::RaiseRawStatusMsg, da der Aufruf andernfalls fehlschlägt.

QueryQualifiers

Der QueryQualifiers Kontextbezeichner ist ein boolescher Wert, der verwendet wird, um die SecurityVerbs-Bitflags zurückzugeben, wenn Sie Abfragen für gesicherte Objekte wie SMS_Site oder SMS_Package ausführen. Beachten Sie, dass die Verwendung QueryQualifiers beim Abfragen ungesicherter Objekte einen Fehler generiert. Standardmäßig werden SecurityVerbs-Flags nicht mit der Abfrage zurückgegeben. Sie müssen diesen Qualifizierer erstellen und seinen Wert festlegen, wenn true die Flags zurückgegeben werden sollen. Nicht zu erstellen QueryQualifiers ist dasselbe wie das Festlegen des Werts auf false.

SessionHandle

Der SessionHandle Kontextqualifizierer ist ein Zeichenfolgenwert, der als out-Parameter der GetSessionHandle-Methode zurückgegeben wird. Die Zeichenfolge ist eine eindeutige GUID, die die Kopie Ihrer Anwendung der Standortsteuerungsdatei für Configuration Manager identifiziert. Sie sollten diesen Mechanismus verwenden, um die Standortsteuerungsdatei zu ändern und Datenkonflikte mit anderen Anwendungen zu reduzieren, die gleichzeitig die Standortsteuerungsdatei ändern. Wenn Sie keinen SessionHandle Wert angeben, ändert Ihre Anwendung die globale Kopie der Websitesteuerungsdatei, die keinen Schutz vor Anwendungen bietet, die die Daten der anderen Anwendungen überschreiben.

Hinweis

Wenn Sie den verwalteten SMS-Anbieter verwenden, wird die Websitesteuerungsdatei-Sitzungsverwaltung für Sie verwaltet.

Siehe auch

So fügen Sie mithilfe von verwaltetem Code einen Configuration Manager-Kontextqualifizierer hinzu Hinzufügen eines Configuration Manager-Kontextqualifizierers mithilfe von WMIGrundlagen des SMS-Anbieters