如何匯出設定基準和設定專案

在Configuration Manager中,若要使用 Configuration Manager SDK 匯出組態基準或設定專案,請讀取相關的 SMS_ConfigurationItem 實例,並將 SDMPackageXML 屬性 (字串) 寫入檔案。

重要事項

XML 檔案的編碼必須設定為 UTF-16 編碼的 Unicode。

匯出設定基準和設定專案

  1. 設定與 SMS 提供者的連線。

  2. 使用 組態專案 (CI_ID) 的唯一 識別碼,取得SMS_ConfigurationItem類別的特定實例。

  3. 將設定專案 XML (SDMPackageXML) 複製到變數中。

  4. 將組態專案 XML 內容寫入檔案。

範例

下列程式碼範例示範如何讀取組態基準或組態專案的實例,然後將它匯出至檔案。

如需呼叫範例程式碼的相關資訊,請參閱呼叫Configuration Manager程式碼片段


Sub DCMExportBaselineOrCI(swbemServices, _  
                          pathToFile,    _  
                          configurationItemId)  

' Set required variables.  
fileContents          =    ""  
configurationItemXML  =    null  

' Get specified configuration item (configurationItemId variable).  
Set getCIInfo = swbemServices.Get("SMS_ConfigurationItem.CI_ID=" & configurationItemId )  

' Copy configuration item XML into variable.   
configurationItemXML = getCIInfo.SDMPackageXML  

Wscript.Echo configurationItemXML  

' Open file for write (Unicode option enabled by second true).  
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set textFile = FSO.CreateTextFile(pathToFile, true, true)  

' Write XML content to file specified by pathToFile.       
textFile.Write configurationItemXML  
textFile.Close   

Wscript.Echo " "  
Wscript.Echo "Successfully wrote " & pathToFile  

End Sub  


public void DCMExportBaselineOrCI(WqlConnectionManager connection,  
                                  string pathToOutputFile,  
                                  string configurationItemId)  
{  

    // Set required variables.  
    string configurationItemXML = null;  

    try  
    {  
        // Get the specified configuration item (configurationItemId variable).  
        IResultObject getCIInfo = connection.GetInstance(@"SMS_ConfigurationItem.CI_ID=" + configurationItemId);  

        // Copy configuration item XML into variable.   
        configurationItemXML = getCIInfo["SDMPackageXML"].StringValue;  
    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed to retrieve configuration item xml. " + "\n" + ex.Message);  
        throw;  
    }  

    StreamWriter sw = null;  
    try  
    {  
        // Open file for output.  
        sw = new StreamWriter(pathToOutputFile, false, System.Text.Encoding.Unicode);  

        // Write XML to output file.  
        sw.Write(configurationItemXML);  
    }  
    catch (Exception ex)  
    {  
        Console.WriteLine("Failed to write configuration item XML to: " + pathToOutputFile + "\n" + ex.Message);  
        throw;  
    }  
    finally  
    {  
        if (sw != null)  
        {  
            sw.Close();  
        }  
    }  

    Console.WriteLine("Wrote configuration item XML to: " + pathToOutputFile);  
}  

範例方法具有下列參數:

參數 Type 描述
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
SMS 提供者的有效連線。
- pathToOutputFile
- pathToFile
-管理: String
- VBScript: String
輸出檔的路徑。
configurationItemId -管理: String
- VBScript: String
要匯出之組態專案的識別碼。

正在編譯程式碼

命名空間

系統

System.Collections.Generic

System.ComponentModel

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

組件

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

健全的程式設計

如需錯誤處理的詳細資訊,請參閱關於Configuration Manager錯誤

.NET Framework 安全性

如需保護Configuration Manager應用程式的詳細資訊,請參閱Configuration Manager角色型系統管理

另請參閱

關於設定基準和設定專案
物件概觀如何使用 Managed 程式碼連線到Configuration Manager提供者
如何使用 WMI 連線到Configuration Manager提供者
SMS_BaselineAssignment伺服器 WMI 類別
SMS_ConfigurationItem伺服器 WMI 類別