Partilhar via


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

Cria-se uma variável de computador para um computador que está a executar o Gestor de Configuração adicionando instâncias de SMS_MachineVariable à propriedade de matriz de classe SMS_MachineSettings. MachineVariables

Para criar uma variável de computador

  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_MachineSettings .

  3. Para cada variável a ser adicionada, adicione instâncias do objeto incorporado SMS_MachineVariable a à propriedade da MachineVariables matriz.

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

Exemplo

O método exemplo a seguir cria uma variável de recolha e adiciona-a à coleção identificada pelo identificador fornecido.

No exemplo, a LocaleID propriedade é codificada para inglês (EUA). Se precisar do local para não-EUA. instalações, você pode obtê-lo a partir da propriedade classe WMI do SMS_Identification servidor. LocaleID

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

Sub CreateComputerVariable(connection, siteCode, name, value, mask, computerId)  

    Dim computerSettings  
    Dim computerVariables  
    Dim computerVariable  
    Dim Settings  

    ' See if the computer settings object already exists. if it does not, create it.  
    Set settings = connection.ExecQuery _  
      ("Select * From SMS_MachineSettings Where ResourceID = '" & computerID & "'")  

    If settings.Count = 0 Then  
        Wscript.Echo "Creating computer settings object"  
        Set computerSettings = connection.Get("SMS_MachineSettings").SpawnInstance_  
        computerSettings.ResourceID = computerId  
        computerSettings.SourceSite = siteCode  
        computerSettings.LocaleID = 1033  
        computerSettings.Put_  
    End If    

    ' Get the computer settings object.  
    Set computerSettings = connection.Get("SMS_MachineSettings.ResourceID='" & computerId &"'" )  

    ' Get the computer variables.  
    computerVariables=computerSettings.MachineVariables  

    ' Create and populate a new computer variable.  
    Set computerVariable = connection.Get("SMS_MachineVariable").SpawnInstance_  
    computerVariable.Name = name  
    computerVariable.Value = value  
    computerVariable.IsMasked = mask  

    ' Add the new computer variable.  
    ReDim Preserve computerVariables (UBound (computerVariables)+1)  
    Set computerVariables(UBound(computerVariables)) = computerVariable  

    computerSettings.MachineVariables=computerVariables  

    computerSettings.Put_  

 End Sub     
public void CreateComputerVariable(  
    WqlConnectionManager connection,  
    string siteCode,   
    string name,   
    string value,   
    bool mask,   
    int computerId)  
{  
    try  
    {  
        // Get the computer settings.  
        IResultObject computerSettings=null;  

        IResultObject computerSettingsQuery = connection.QueryProcessor.ExecuteQuery(  
            "Select * from SMS_MachineSettings where ResourceId = '" + computerId + "'");  

        foreach (IResultObject settings in computerSettingsQuery)  
        {  
            computerSettings = settings;  
        }  

        if (computerSettings == null) // It does not exist, so create it.  
        {  
            computerSettings = connection.CreateInstance(@"SMS_MachineSettings");  
            computerSettings["ResourceID"].IntegerValue = computerId;  
            computerSettings["SourceSite"].StringValue = siteCode;  
            computerSettings["LocaleID"].IntegerValue = 1033;  
            computerSettings.Put();  
            computerSettings.Get();  
        }  

        // Create the computer variable.  
        List<IResultObject> computerVariables = computerSettings.GetArrayItems("MachineVariables");  
        IResultObject computerVariable = connection.CreateEmbeddedObjectInstance("SMS_MachineVariable");  
        computerVariable["Name"].StringValue = name;  
        computerVariable["Value"].StringValue = value;  
        computerVariable["IsMasked"].BooleanValue = mask;  

        // Add the computer variable to the computer settings.  
        computerVariables.Add(computerVariable);  
        computerSettings.SetArrayItems("MachineVariables", computerVariables);  

        computerSettings.Put();  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to create computer 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.
siteCode - Gerido: String
- VBScript: String
O código do site do site de origem.
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.
computerID - Gerido: Integer
- VBScript: Integer
O identificador de computador. Tipicamente esta é a propriedade de classe SMS_R_System. ResourceID

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.

Ver também

Sobre a gestão de computadores de implementação do SO