Freigeben über


Erstellen einer Sammlungsvariablen in Configuration Manager

Sie erstellen eine Sammlungsvariable für eine Configuration Manager-Auflistung, indem Sie instanzen von SMS_CollectionVariable Server WMI Class zur CollectionVariables -Eigenschaft von SMS_CollectionSettings Server WMI Class 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. Rufen Sie eine instance SMS_CollectionSettings ab.

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

  4. Committen Sie die Änderungen an der SMS_CollectionSettings Klasse instance.

Beispiel

Die folgende Beispielmethode erstellt eine Auflistungsvariable und fügt sie der Auflistung hinzu, die durch den angegebenen Bezeichner identifiziert wird. Wenn das SMS_CollectionSettings Objekt für die Auflistung 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 verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
Connection -Gehandhabt: WqlConnectionManager
– VBScript: SWbemServices
Eine gültige Verbindung mit dem SMS-Anbieter.
Name -Gehandhabt: String
– VBScript: String
Der Name der zu erstellenden Variablen.
Value -Gehandhabt: String
– VBScript: String
Der Wert der Variablen
Mask -Gehandhabt: 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 -Gehandhabt: String
– VBScript: String
Die Auflistung, der die Variable hinzugefügt wird.
Precedence -Gehandhabt: Integer
– VBScript: Integer
Die Rangfolge der Variablen gegenüber anderen Variablen im Array.

Kompilieren des Codes

Für das C#-Beispiel gelten die folgenden Kompilierungsanforderungen:

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 Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.

Siehe auch

ObjektübersichtHerstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMIHow to Create a Computer Variable in Configuration ManagerHow to Create a Configuration Manager-Objekt mithilfe von verwaltetem CodeErstellen eines Configuration Manager-Objekts mithilfe von WMIInformationen zur Computerverwaltung für die Betriebssystembereitstellung