Dela via


Kontextkvalificerare för Configuration Manager

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

Hanterad 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 How to Add a Configuration Manager Context Qualifier by Using Managed Code (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änssnittet SWBemNamedValue för att ange kontextkvalificerare som en samling namngivna värdeobjekt. Mer information finns i How to Add a Configuration Manager Context Qualifier by Using WMI (Så här lägger du till en Configuration Manager-kontextkvalificerare med hjälp av WMI).

Kontextkvalificerare

Följande tabell innehåller kontextkvalificerare (namngivna värden) som används av SMS-providern. De flesta kvalificerare, till exempel SessionHandle, används bara med specifika funktionella områden i SMS-providern, men LocaleID, MachineNameoch ApplicationName är för ditt programs användning.

Kontextkvalificerare 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 kodsida som ska användas.
MachineName Identifierar vilken dator som kör programmet.
QueryQualifiers Returnerar SecurityVerbs-bitflaggor när du kör frågor mot skyddade objekt.
SessionHandle Identifierar programmets kopia av platskontrollfilen till Configuration Manager.

ApplicationName

Kontextkvalificeraren 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å ditt program används värdet Okänd. Du måste ange ApplicationName värdet när du anropar någon av metoderna för att generera statusmeddelanden, till exempel SMS_StatusMessage::RaiseErrorStatusMsg, annars misslyckas anropet.

ContextHandle

Kontextkvalificeraren ContextHandle är ett strängvärde som identifierar var SMS-providern har lagrat dina cachelagrade kontextkvalificerare. Den hanterade SMS-providern hanterar dataöverföring. 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 SWBemNamedValue-värdeuppsättning .

  2. Lägg till dina kvalificerare i kontextobjektet. Mer information finns i How to Add a Configuration Manager Context Qualifier by Using WMI (Så här lägger du till en Configuration Manager-kontextkvalificerare med hjälp av WMI).

  3. Anropa metoden GetContextHandle för att cachelagrar dina kvalificerare 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. Lägg till kvalificeraren ContextHandle 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 som du vill, där var och en ger varierande 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 kontextkvalificerare, med olika värden, i kontextobjektet.

InstanceCount

Kontextkvalificeraren 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äknaren. Om du till exempel anger InstanceCount till 10 returneras högst 10 instanser.

LimitToCollectionIDs

Kontextkvalificeraren LimitToCollectionIDs är en strängmatris som innehåller en lista med CollectionID värden. För närvarande kan du bara 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 instansresurser för den samling som resursen tillhör. Du måste använda samlingsbegränsning när användaren inte har resursbehörighet 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 den här begränsningen endast för klasser som härletts från SMS_Group.

Du kan inte använda den här kvalificeraren när du kör frågor mot samlingar.

Språkvariant-ID

Kontextkvalificeraren LocaleID är ett strängvärde som antingen accepterar ett hexadecimalt värde eller ett decimalvärde i formatet 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. Du hittar en lista över locale IDsspråkvariant-ID:t som tilldelats av Microsoft.

Om du behöver nationella inställningar för icke-USA installationer kan du hämta den från egenskapen SMS_Identification Server WMI ClassLocaleID .

MachineName

Kontextkvalificeraren 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änd. Du måste ange MachineName-värdet när du anropar någon av metoderna för att generera statusmeddelanden, till exempel SMS_StatusMessage::RaiseRawStatusMsg, annars misslyckas anropet.

QueryQualifiers

Kontextkvalificeraren 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 QueryQualifiers du kör frågor mot oskyddade objekt genereras ett fel. Som standard returneras inte SecurityVerbs-flaggor med frågan. Du måste skapa den här kvalificeraren och ange dess värde till om du vill att true flaggorna ska returneras. Att inte skapa QueryQualifiers är detsamma som att ange värdet till false.

SessionHandle

Kontextkvalificeraren SessionHandle är ett strängvärde som returneras som en out-parameter för metoden GetSessionHandle. Strängen är ett unikt 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 samtidigt ändrar platskontrollfilen. 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 hantering av filsessioner för platskontroll åt dig.

Se även

Så här lägger du till en Configuration Manager-kontextkvalificerare med hanterad kod
Så här lägger du till en Configuration Manager-kontextkvalificerare med hjälp av WMI
Grunderna i SMS-providern