Udostępnij przez


Jak utworzyć zmienną kolekcji w Configuration Manager

Zmienną kolekcji dla kolekcji Configuration Manager można utworzyć, dodając wystąpienia klasy WMI serwera SMS_CollectionVariable do CollectionVariables właściwości klasy WMI serwera SMS_CollectionSettings.

Aby utworzyć zmienną kolekcji

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.

  2. Pobierz wystąpienie SMS_CollectionSettings.

  3. Dla każdej zmiennej do dodania dodaj wystąpienia obiektu osadzonego SMS_CollectionVariable do właściwości tablicy CollectionVariables .

  4. Zatwierdź zmiany w wystąpieniu SMS_CollectionSettings klasy.

Przykład

Poniższa przykładowa metoda tworzy zmienną kolekcji i dodaje ją do kolekcji zidentyfikowanej przez podany identyfikator. SMS_CollectionSettings Jeśli obiekt kolekcji nie istnieje, zostanie utworzony.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.

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

Przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
Connection -Zarządzane: WqlConnectionManager
- VBScript: SWbemServices
Prawidłowe połączenie z dostawcą programu SMS.
Name -Zarządzane: String
- VBScript: String
Nazwa zmiennej do utworzenia.
Value -Zarządzane: String
- VBScript: String
Wartość zmiennej
Mask -Zarządzane: Boolean
- VBScript: Boolean
Określa, czy wartość jest wyświetlana w konsoli Configuration Manager.

true — wartość zmiennej nie jest wyświetlana.

false — zostanie wyświetlona wartość zmiennej.
CollectionID -Zarządzane: String
- VBScript: String
Kolekcja dodawana do zmiennej.
Precedence -Zarządzane: Integer
- VBScript: Integer
Pierwszeństwo zmiennej nad innymi zmiennymi w tablicy.

Kompilowanie kodu

Przykład języka C# ma następujące wymagania dotyczące kompilacji:

Przestrzenie nazw

System

System.Collections.Generic

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Montaż

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

zabezpieczenia .NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.

Zobacz też

Omówienie obiektówHow to Connect to an SMS Provider in Configuration Manager by Using Managed CodeHow to Connect to an SMS Provider in Configuration Manager by Using WMIHow to Create a Computer Variable in Configuration ManagerHow to Create a Configuration Manager obiektu za pomocą kodu zarządzanegoJak utworzyć obiekt Configuration Manager przy użyciu usługi WMIo zarządzaniu komputerem wdrożenia systemu operacyjnego