Sdílet prostřednictvím


Vytvoření proměnné kolekce v Configuration Manager

Proměnnou kolekce pro kolekci Configuration Manager vytvoříte přidáním instancí serverové třídy služby WMI SMS_CollectionVariable do CollectionVariables vlastnosti serverové třídy služby WMI SMS_CollectionSettings.

Vytvoření proměnné kolekce

  1. Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.

  2. Získejte instanci SMS_CollectionSettings.

  3. Pro každou proměnnou, která má být přidána, přidejte instance vloženého objektu SMS_CollectionVariable do CollectionVariables vlastnost pole.

  4. Potvrďte změny v SMS_CollectionSettings instanci třídy.

Příklad

Následující ukázková metoda vytvoří proměnnou kolekce a přidá ji do kolekce identifikované zadaným identifikátorem. SMS_CollectionSettings Pokud objekt pro kolekci neexistuje, vytvoří se.

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.

Sub CreateCollectionVariable( connection, name, value, mask, collectionId, precedence)

    Dim collectionSettings
    Dim collectionVariables
    Dim collectionVariable
    Dim Settings

    ' See if the settings collection already exists. if it does not, create it.
    Set settings = connection.ExecQuery _
      ("Select * From SMS_CollectionSettings Where CollectionID = '" & collectionID & "'")

    If settings.Count = 0 Then
        Wscript.Echo "Creating collection settings object"
        Set collectionSettings = connection.Get("SMS_CollectionSettings").SpawnInstance_
        collectionSettings.CollectionID = collectionId
        collectionSettings.Put_
    End If

    ' Get the collection settings object.
    Set collectionSettings = connection.Get("SMS_CollectionSettings.CollectionID='" & collectionId &"'" )

    ' Get the collection variables.
    collectionVariables=collectionSettings.CollectionVariables

    ' Create and populate a new collection variable.
    Set collectionVariable = connection.Get("SMS_CollectionVariable").SpawnInstance_
    collectionVariable.Name = name
    collectionVariable.Value = value
    collectionVariable.IsMasked = mask

    ' Add the new collection variable.
    ReDim Preserve collectionVariables (UBound (collectionVariables)+1)
    Set collectionVariables(UBound(collectionVariables)) = collectionVariable

    collectionSettings.CollectionVariables=collectionVariables

    collectionSettings.Put_

 End Sub
public void CreateCollectionVariable(
    WqlConnectionManager connection,
    string name,
    string value,
    bool mask,
    string collectionId,
    int precedence)
{
    try
    {
        IResultObject collectionSettings = null;

        // Get the collection settings. Create it if necessary.

         IResultObject collectionSettingsQuery = connection.QueryProcessor.ExecuteQuery(
                    "Select * from SMS_CollectionSettings where CollectionID='" + collectionId + "'");

         foreach (IResultObject setting in collectionSettingsQuery)
         {
             collectionSettings = setting;
         }

        if ( collectionSettings == null)
         {
             collectionSettings = connection.CreateInstance("SMS_CollectionSettings");
             collectionSettings["CollectionID"].StringValue = collectionId;
             collectionSettings.Put();
             collectionSettings.Get();
         }

        // Create the collection variable.
        List<IResultObject> collectionVariables = collectionSettings.GetArrayItems("CollectionVariables");
        IResultObject collectionVariable = connection.CreateEmbeddedObjectInstance("SMS_CollectionVariable");
        collectionVariable["Name"].StringValue = name;
        collectionVariable["Value"].StringValue = value;
        collectionVariable["IsMasked"].BooleanValue = mask;

        // Add the collection variable to the collection settings.
        collectionVariables.Add(collectionVariable);
        collectionSettings.SetArrayItems("CollectionVariables", collectionVariables);

        // Set the collection variable precedence.
        collectionSettings["CollectionVariablePrecedence"].IntegerValue = precedence;

        collectionSettings.Put();
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed to create collection variable: " + e.Message);
        throw;
   }
}

Ukázková metoda má následující parametry:

Parametr Typ Popis
Connection -Řízen: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
Name -Řízen: String
- VBScript: String
Název proměnné, která se má vytvořit.
Value -Řízen: String
- VBScript: String
Hodnota proměnné
Mask -Řízen: Boolean
- VBScript: Boolean
Určuje, jestli se hodnota zobrazí v konzole Configuration Manager.

true – hodnota proměnné se nezobrazí.

false – zobrazí se hodnota proměnné.
CollectionID -Řízen: String
- VBScript: String
Kolekce, do které je proměnná přidána.
Precedence -Řízen: Integer
- VBScript: Integer
Priorita proměnné před ostatními proměnnými v poli.

Kompilace kódu

Příklad jazyka C# má následující požadavky na kompilaci:

Obory názvů

Systém

System.Collections.Generic

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Shromáždění

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robustní programování

Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.

Zabezpečení rozhraní .NET Framework

Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.

Viz taky

Přehled objektůJak se připojit k poskytovateli serveru SMS v Configuration Manager pomocí spravovaného kóduJak se připojit k poskytovateli SMS v Configuration Manager pomocí rozhraní WMIJak vytvořit proměnnou počítače v Configuration ManagerJak vytvořit Configuration Manager objektu pomocí spravovaného kóduPostup vytvoření objektu Configuration Manager pomocí rozhraní WMIInformace o správě počítače nasazení operačního systému