Kontextkvalificerare för Configuration Manager

Kontextobjekt används i Configuration Manager för att ge ytterligare information till SMS-providern. Vanligtvis använder du kontextavgränsare för att ge SMS-providern sammanhangsbaserad information, till exempel programmets namn. Du kan använda kontextkvalificerare när du ansluter till SMS-providern och med enskilda SMS-providerobjekt.

Förvaltad kod

När du använder de hanterade SMS-providerbiblioteken använder du egenskapen ConnectionManagerBase.Context för att ange kontextkvalificerare. Mer information finns i Så här lägger du till en Configuration Manager kontextkvalificerare med hjälp av hanterad kod.

VBScript

När du använder VBScript använder du gränssnittsuppsättningen SWBemNamedValue för att ange kontextkvalificerare som en samling namngivna värdeobjekt. Mer information finns i Så här lägger du till en Configuration Manager kontextkvalificerare med hjälp av WMI.

Kontextkvalificerare

Följande tabell innehåller kontextavgränsare (namngivna värden) som används av SMS-leverantören. De flesta kvalificerare, som SessionHandle, används bara med specifika funktionsområden i SMS-providern, men LocaleID, MachineName, och ApplicationName är avsedda för ditt programs användning.

Kontextavgränsare Beskrivning
ApplicationName Identifierar programmet som gjorde anropet.
ContextHandle Identifierar var SMS-providern har lagrat dina cachelagrade kontextkvalificerare.
InstanceCount Begränsar antalet instanser som returneras från ExecQuery och CreateInstanceEnum.
LimitToCollectionIDs Begränsar resultatet av en resursfråga till medlemmarna i de namngivna samlingarna.
LocaleID Identifierar den teckentabell som ska användas.
MachineName Identifierar vilken dator som kör programmet.
QueryQualifiers Returnerar bitflaggor för säkerhetsverb när du kör frågor mot skyddade objekt.
SessionHandle Identifierar programmets kopia av platskontrollfilen för Configuration Manager.

Programnamn

Kontextavgränsaren ApplicationName är ett strängvärde som identifierar namnet på programmet som gjorde anropet. Du bör ange ApplicationName för ditt program eftersom det används för granskning. Om du inte anger namnet på programmet används värdet Okänt. Du måste ange ApplicationName värdet när du anropar någon av metoderna för att höja statusmeddelanden, till exempel SMS_StatusMessage::RaiseErrorStatusMsg, annars misslyckas anropet.

ContextHandle (Sammanhangshanterare)

Kontextkvalificeraren ContextHandle är ett strängvärde som identifierar var SMS-providern har lagrat dina cachelagrade kontextavgränsare. Den hanterade SMS-providern hanterar dataöverföringen. När du använder VBScript kan du använda följande steg för att minska mängden data som skickas via nätverket.

  1. Skapa en SWBemNamedValue-värdeuppsättning .

  2. Lägg till avgränsarna i kontextobjektet. Mer information finns i Så här lägger du till en Configuration Manager kontextkvalificerare med hjälp av WMI.

  3. Anropa metoden GetContextHandle för att cachelagra kvalificerarna på servern. SMS-providern cachelagrar kontextobjektet som du skickar som en parameter för ExecMethod när du anropar GetContextHandle.

  4. Ta bort alla kvalificerare från kontextobjektet.

  5. ContextHandle Lägg till kvalificeraren och värdet i kontextobjektet.

  6. Skicka kontextobjektet för alla anrop till IWbemServices.

    Du måste anropa metoden ClearContextHandle för att ta bort dina cachelagrade kvalificerare innan du avslutar programmet. Du kan skapa så många ContextHandle värden du vill, och vart och ett ger olika information för ditt program.

Obs!

När du har cachelagrat dina kontextkvalificerare kan du åsidosätta dina cachelagrade värden genom att lägga till samma kontextavgränsare, med olika värden, i kontextobjektet.

InstanceCount

Kontextavgränsaren InstanceCount är ett heltalsvärde som används för att begränsa antalet instanser som returneras från metoderna ExecQuery och CreateInstanceEnum . Du anger InstanceCount lika med det maximala antalet instanser som du vill ska returneras från frågan eller uppräkningen. Om du till exempel anger InstanceCount 10 returneras högst 10 instanser.

LimitToCollectionIDs

Kontextavgränsaren LimitToCollectionIDs är en strängmatris som innehåller en lista med CollectionID värden. För närvarande kan du endast ange ett CollectionID värde. Du använder den här kvalificeraren för att begränsa resultatet av en resursfråga till medlemmarna i den namngivna samlingen. En resursfråga är en fråga som innehåller klasser som härletts från SMS_Resource eller SMS_Group.

Användaren måste ha behörighet att läsa instansen för den samling som resursen tillhör. Du måste använda samlingsbegränsning när användaren inte har resursrättigheter för klassläsning för samlingar. Annars returneras inga data. För SMS 2.0 med Service Pack 1 och senare versioner gäller denna begränsning endast klasser härledda från SMS_Group.

Du kan inte använda den här kvalificeraren när du frågar samlingar.

LocaleID

Kontextavgränsaren LocaleID är ett strängvärde som accepterar antingen ett hexadecimalt värde eller ett decimalvärde i formen MS\x, där x är språkvariant-ID. Du kan till exempel ange det engelska LocaleID värdet som ms\0x0409 eller ms\1033. SMS-providern accepterar LocaleID endast värden som använder Microsoft-format. En lista över locale IDsspråkvariant-ID:n som tilldelats av Microsoft finns här.

Om du behöver språkinställningen för icke-U.S. installationer kan du hämta den från WMI-klassegenskapenLocaleID SMS_Identification Server.

MachineName (på engelska)

Kontextavgränsaren MachineName är ett strängvärde som identifierar vilken dator som kör programmet. Du bör ange MachineName för ditt program eftersom det används för granskning. Om du inte anger datornamnet används värdet Okänt. Du måste ange MachineName värdet när du anropar någon av metoderna för att höja statusmeddelanden, till exempel SMS_StatusMessage::RaiseRawStatusMsg, annars misslyckas anropet.

Frågekvalificerare

Kontextavgränsaren QueryQualifiers är ett booleskt värde som används för att returnera SecurityVerbs-bitflaggor när du kör frågor mot skyddade objekt, till exempel SMS_Site eller SMS_Package. Observera att när du QueryQualifiers frågar oskyddade objekt genereras ett fel. Som standard returneras inte SecurityVerbs-flaggor med frågan. Du måste skapa den här avgränsaren och ange dess värde true om du vill att flaggorna ska returneras. Att inte skapa QueryQualifiers är samma sak som att ange värdet till false.

SessionHandle (SessionHandle)

Kontextkvalificeraren SessionHandle är ett strängvärde som returneras som en out-parameter för GetSessionHandle metoden . Strängen är en unik GUID som identifierar programmets kopia av platskontrollfilen till Configuration Manager. Du bör använda den här mekanismen för att ändra platskontrollfilen och minska datakollisioner med andra program som ändrar platskontrollfilen samtidigt. Om du inte anger något SessionHandle värde ändrar programmet den globala kopian av platskontrollfilen, som inte har något skydd mot att program skriver över varandras data.

Obs!

Om du använder den hanterade SMS-providern hanteras sessionshantering för platskontrollfilen åt dig.

Se även

Så här lägger du till en Configuration Manager kontextkvalificerare med hanterad kodSå här lägger du till en Configuration Manager kontextkvalificerare med WMISMS Provider Fundamentals