Partilhar via


Como Importar Linhas de Base de Configuração e Itens de Configuração

No Gestor de Configuração, importar um item de base de configuração ou de configuração utilizando o Gestor de Configuração SDK requer um ficheiro XML devidamente formatado. Ao contrário da consola Do Gestor de Configuração, o Gestor de Configuração SDK não suporta a importação direta de um ficheiro CAB.

Importante

A codificação do ficheiro XML deve ser definida como UNICODE codificada pela UTF-16. A codificação XML pode ser identificada no cabeçalho XML:

<?xml version="1.0" encoding="utf-16" ?>

Quando os dados de configuração são importados para o Gestor de Configuração, o formato pode ser o seguinte:

  • DCM Digest XML apenas

Para importar linhas de base de configuração e itens de configuração

  1. Configurar uma ligação com o Fornecedor DE SMS.

  2. Leia o ficheiro XML de origem numa variável.

  3. Criar um caso da SMS_ConfigurationItem classe.

  4. Copie o conteúdo do ficheiro de origem (XML) para a SMS_ConfigurationItem propriedade SDMPackageXML .

  5. Guarde a instância do item de configuração.

Exemplo

Os exemplos de código que se seguem mostram como criar uma instância de uma linha de base de configuração ou um item de configuração e, em seguida, povoá-lo importando uma linha de base de configuração ou uma definição de XML de item de configuração.

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


Sub DCMImportBaselineOrCI(swbemServices,   _  
                          pathToFile)  

' Set required variables.  
readFile = 1  'constant   
fileContents          =    ""  
initialReadSucceeded  =    ""  
triStateTrue = -1  ' This sets the file read to Unicode.  

' Check if source xml file exists.  
set fileSytemObject = CreateObject("Scripting.FileSystemObject")  
If fileSytemObject.FileExists(pathToFile) Then  
    set textFile = fileSytemObject.OpenTextFile(pathToFile, readFile, False, triStateTrue)      
    fileContents = textFile.ReadAll  
    textFile.Close  

    initialReadSucceeded = true  

    set textFile = Nothing  

    Wscript.Echo " "  
    Wscript.Echo "Successfully read " & pathToFile  

Else  
    initialReadSucceeded = false  

    Wscript.Echo " "  
    Wscript.Echo "File does not exist."  
End If  
set fileSytemObject = Nothing  

If initialReadSucceeded Then  

    On Error Resume Next   

        ' Create an instance of configuration item.  
        set newCI = swbemServices.Get("SMS_ConfigurationItem").SpawnInstance_()        

        ' Copy specified file contents (XML) into SMS_ConfigurationItem property.  
        newCI.SDMPackageXML = fileContents  

        ' Save configuration item.  
        newCI.Put_  

        If Err.Number<>0 Then  
            Wscript.Echo "Couldn't create configuration item."  
            Wscript.Echo "Possible duplicate configuration item or invalid XML."  
            Wscript.Quit  
        End If  
    On Error Goto 0  
Else  
    Wscript.Echo " "  
    Wscript.Echo "Failed to create configuration item."     
End If    

End Sub  


public void DCMImportBaselineOrCI(WqlConnectionManager connection,  
                                  string pathToFile)  
{  

    // Set required variables.  
    string fileContents = null;  
    bool initialReadSucceeded = false;  

    // Load XML file using pathToFile variable.  
    try  
    {  
        // Open the file specified by the pathToFile variable and read the contents into a string.  
        using (StreamReader sr = new StreamReader(pathToFile, System.Text.Encoding.Unicode))  
        {  
            fileContents = sr.ReadToEnd();  
        }  

        Console.WriteLine("Successfully read " + pathToFile + ".");  

        initialReadSucceeded = true;  
    }  
    catch (Exception ex)  
    {  
        Console.WriteLine("Unable to read " + pathToFile + "." + "\n" + ex.Message);  
        throw;  
    }  

    // Run only if the initial read was successful.  
    if (initialReadSucceeded)  
    {  
        try  
        {  
            // Create an instance of Configuration Item.  
            IResultObject newCI = connection.CreateInstance("SMS_ConfigurationItem");  

            // Copy specified file contents (XML) into SMS_ConfigurationItem property.  
            newCI["SDMPackageXML"].StringValue = fileContents;  

            // Save new SMS_ConfigurationItem object.   
            newCI.Put();  
        }  
        catch (SmsException ex)  
        {  
            Console.WriteLine("Failed to create configuration item using " + pathToFile + ".");  
            Console.WriteLine(ex.Details);  
            throw;   
        }  
    }  
}  

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

Parâmetro Tipo Description
- connection
- swbemServices
- Gerido: WqlConnectionManager
- VBScript: SWbemServices
Uma ligação válida ao Fornecedor de SMS.
pathToFile - Gerido: String
- VBScript: String
Caminho do ficheiro XML para importar.

A Compilar o Código

Espaços de nomes

Sistema

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assemblagem

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

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

Sobre linhas de base de configuração e itens de configuração
Visão geral de objetos Como Ligação a um Fornecedor de Gestor de Configuração usando Código Gerido
Como Ligação a um fornecedor de gestor de configuração usando o WMI
Classe WMI do servidor de SMS_BaselineAssignment
Classe WMI do servidor de SMS_ConfigurationItem