So erstellen Sie eine Sammlungsvariable in Configuration Manager

Sie erstellen eine Sammlungsvariable für eine Configuration Manager Sammlung, indem Sie der Eigenschaft SMS_CollectionSettings Server WMI-Klasse Instanzen SMS_CollectionVariable Server WMI-KlasseCollectionVariables hinzufügen.

So erstellen Sie eine Sammlungsvariable

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.

  2. Verschaffen Sie sich eine instance von SMS_CollectionSettings.

  3. Fügen Sie für jede hinzuzufügende Variable Instanzen des eingebetteten Objekts SMS_CollectionVariable zur Arrayeigenschaft CollectionVariables hinzu.

  4. Führen Sie einen Commit der Änderungen in der SMS_CollectionSettings Klassen-instance durch.

Beispiel

Die folgende Beispielmethode erstellt eine Auflistungsvariable und fügt sie der durch den angegebenen Bezeichner identifizierten Auflistung hinzu. Wenn das SMS_CollectionSettings Objekt für die Sammlung nicht vorhanden ist, wird es erstellt.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager-Codeausschnitten.

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;
   }
}

Die Beispielmethode hat die folgenden Parameter:

Parameter Typ Beschreibung
Connection - Verwaltet: WqlConnectionManager
- VBScript: SWbemDienste
Eine gültige Verbindung mit dem SMS-Anbieter.
Name - Verwaltet: String
- VBScript: String
Der Name der zu erstellenden Variablen.
Value - Verwaltet: String
- VBScript: String
Der Wert der Variablen
Mask - Verwaltet: Boolean
- VBScript: Boolean
Gibt an, ob der Wert in der Configuration Manager-Konsole angezeigt wird.

true - Der Variablenwert wird nicht angezeigt.

false - Der Variablenwert wird angezeigt.
CollectionID - Verwaltet: String
- VBScript: String
Die Sammlung, der die Variable hinzugefügt wird.
Precedence - Verwaltet: Integer
- VBScript: Integer
Die Rangfolge der Variablen vor anderen Variablen im Array.

Kompilieren des Codes

Für das C#-Beispiel gelten die folgenden Anforderungen für die Kompilierung:

Namespaces

System

System.Collections.Generic

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager-Fehlern.

.NET Framework-Sicherheit

Weitere Informationen zum Sichern von Configuration Manager-Anwendungen finden Sie unter rollenbasierte Verwaltung von Configuration Manager.

Siehe auch

Objekte – ÜbersichtHerstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von WMISo erstellen Sie eine Computervariable in ConfigurationManagerSo erstellen Sie eine Configuration Manager-Objekt mithilfe von verwaltetem CodeErstellen eines Configuration Manager-Objekts mithilfe von WMI Informationen zurBetriebssystembereitstellung Computerverwaltung