Partilhar via


Como criar uma variável de coleção no gestor de configuração

Cria uma variável de recolha para uma coleção de Gestor de Configuração adicionando instâncias de SMS_CollectionVariable Classe WMI do servidor à CollectionVariables propriedade da Classe WMIdo servidor SMS_CollectionSettings .

Para criar uma variável de coleção

  1. Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.

  2. Obter um exemplo de SMS_CollectionSettings.

  3. Para que cada variável seja adicionada, adicione instâncias do objeto incorporado SMS_CollectionVariable à propriedade da matriz CollectionVariables.

  4. Cometa as alterações à instância de SMS_CollectionSettings classe.

Exemplo

O método exemplo a seguir cria uma variável de recolha e adiciona-a à coleção identificada pelo identificador fornecido. Se o SMS_CollectionSettings objeto para a coleção não existir, é criado.

Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.

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

O método exemplo tem os seguintes parâmetros:

Parâmetro Tipo Description
Connection - Gerido: WqlConnectionManager
- VBScript: SWbemServices
Uma ligação válida ao Fornecedor de SMS.
Name - Gerido: String
- VBScript: String
O nome da variável a ser criada.
Value - Gerido: String
- VBScript: String
O valor da variável
Mask - Gerido: Boolean
- VBScript: Boolean
Especifica se o valor é apresentado na consola 'Gestor de Configuração'.

true - o valor variável não é apresentado.

false - é apresentado o valor variável.
CollectionID - Gerido: String
- VBScript: String
A coleção a que a variável é adicionada.
Precedence - Gerido: Integer
- VBScript: Integer
A precedência da variável sobre outras variáveis na matriz.

A Compilar o Código

O exemplo C# tem os seguintes requisitos de compilação:

Espaços de nomes

Sistema

System.Collections.Generic

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assemblagem

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação Robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.

Segurança do .NET Framework

Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.

Consulte também

Visão geral de objetos Como Ligação a um fornecedor de SMS no Gestor de Configuração através da utilização do Código Gerido
Como Ligação a um fornecedor de SMS no Gestor de Configuração através da utilização do WMI
Como criar uma variável de computador no gestor de configuração
Como criar um objeto de gestor de configuração usando código gerido
Como criar um objeto de gestor de configuração usando o WMI
Sobre a gestão de computadores de implementação do SO