開始使用 Configuration Manager 程式設計
若要開始使用 Configuration Manager 的程序設計,對 Configuration Manager 有基本的功能和架構瞭解會有所説明。 此外,還有一些重要工具和資源,對於驗證和疑難解答解決方案至關重要。 以下是適用於 Configuration Manager 程式設計人員的秘訣和資源。
重要事項
您應該瞭解 Configuration Manager,先前是 System Management Server (SMS) ,在產品中具有相當長的歷程記錄。 在檢閱命名空間、類別、方法、屬性和記錄檔時,您會發現許多包含 “SMS” 的參考 – 事實上,大部分的 WMI 類別都是以 “SMS_” 開頭,而主要 Configuration Manager WMI 命名空間是 “SMS”。 多年來,許多舊版類別、方法和屬性都累積了,對系統管理用戶來說並不明顯,但是在程式設計歷程記錄/舊版時可能會造成混淆。
功能理解
若要成功自動化或擴充 Configuration Manager,請務必了解產品的功能。 Configuration Manager 是多層式分散式管理系統,最常分散在許多伺服器和許多位置。 如需詳細資訊,請參閱 Configuration Manager 的基本概念。
其他資源
書籍
影片
論壇
架構理解
Configuration Manager 是多層式分散式管理系統。 請務必瞭解 Configuration Manager 的一般架構。 以下是 Configuration Manager 架構概觀的連結。
除了架構資訊之外,有幾個關鍵點通常會混淆 Configuration Manager 新手的系統管理員和程式設計人員。
伺服器: 一般而言,大部分的程式設計動作 (特別是,自動化) 在 Configuration Manager 月台伺服器上執行。 動作或組態變更會透過原則將整個 Configuration Manager 階層傳播至用戶端。 用戶端會在可設定的輪詢間隔上提取原則 ,伺服器不會 立即推送至用戶端。 一般而言,一旦安裝客戶端之後,就不會有從月臺伺服器到用戶端或用戶端與月臺伺服器的直接通訊 – 所有通訊都會透過中繼伺服器角色進行。
客戶: Configuration Manager 用戶端是由 Configuration Manager 所管理的系統和裝置。 'server' 可以是 Configuration Manger 用戶端。 Exchange 伺服器、Active Directory 伺服器和 Configuration Manager 伺服器都可以是 Configuration Manager 用戶端。 此外,Windows 10、Windows Phone 和macOS裝置都可以是 Configuration Manager 用戶端。
Configuration Manager 用戶端會定期輪詢 Configuration Manager 管理點來接收原則。 擷取基本原則的輪詢間隔可設定,如同其他設定。 因此,從 Configuration Manager 月台伺服器起始的用戶端目標動作會有固有的延遲。
安慰: 在月臺伺服器上進行變更時,不會自動更新遠端 Configuration Manager 控制台二進位檔和檔案。 修改和擴充功能必須以手動方式或使用 Configuration Manager 應用程式管理/軟體發佈,複製到執行 Configuration Manager 控制台的系統。
SMS 提供者與 SQL Server: 雖然 Configuration Manager 會利用 SQL Server 來儲存數據,但 SQL Server 並不是 Configuration Manager 的主要程式設計介面。 Configuration Manager 的主要程式設計介面是 SMS 提供者 (WMI) - 物件建立和修改 必須 透過 SMS 提供者完成。 您應該將 SQL Server 視為提供 Configuration Manager 數據的唯讀存取權,以供查詢和報告之用。 這不是許可權的問題,而是維護數據完整性的問題。
命名空間和類別
伺服器
主要 WMI 命名空間: ROOT\SMS\SITE_<月臺程序代碼>
伺服器 WMI 類別:Configuration Manager API 參考
用戶端
主要 WMI 命名空間: ROOT\CCM
用戶端 WMI 類別:Configuration Manager API 參考
重要事項
Configuration Manager 的用戶端程序設計案例正逐漸演變為以 WMI 為基礎。 在過去,一組用戶端 COM 類別是用來存取用戶端功能的主要方法,不過也會使用其他用戶端 WMI 類別/方法。 隨著 System Center 2012 Configuration Manager 的發行,焦點會轉移到命名空間中的一組 WMI 類別: root/ccm/ClientSDK。 可理解的是,抽象概念的形式是 COM 或特定 SDK 類別,可從產品更新過程中的基礎架構變更中提供有用的抽象概念。
主控台
主控台相關的 Managed 類別:
Microsoft.configurationmanagement.exe
Microsoft.configurationmanagement.managementprovider.dll
Microsoft.ConfigurationManagement.DialogFoundation.dll
AdminUI.DialogFoundation.dll
Configuration Manager 控制台簡介主題:
程式設計基礎
SDK 的 Configuration Manager 程式設計基礎一節提供如何使用 Configuration Manager 中可用的各種對象和結構類型的範例。 Configuration Manager 包含一些一開始可能會造成混淆的物件/概念。 特別感興趣的是 (與月臺控制檔案) 搭配使用的 內嵌屬性 ,以及 (在整個 Configuration Manager 類別) 中使用的 延遲屬性 。 以下是 SDK 的程式設計基礎 (和其他子區段) 連結。 這些區段包含示範如何使用各種物件類型的程式代碼範例。
重要事項
SDK 最常在 VBScript 和 C# 中提供程序代碼範例。 這並不表示其他語言將無法與SMS提供者搭配使用。 SMS 提供者與語言無關,只要可以交換正確的對象和建構即可。 使用最適合您環境的語言 (工具) 。 C# 在內部用來作為測試 SDK 代碼段的基準,因此最常在 C# 中提供物件操作和程式代碼建構的範例。 如果您使用另一種語言,您應該可以放心地從 C# 轉譯為您選擇的語言。
基本工具
WBEMTEST
如果您花很多時間在 Configuration Manager 上,您就會發現其中大部分都會透過 WMI 執行。 WMI 是「Windows Management Instrumentation」,Microsoft實作名為 Web 型企業管理 (WBEM) 的因特網標準。 這裡有許多 WMI 工具。 不過,WBEMTEST 可立即在大部分的系統上使用,而不需要先下載。 您可能會將它想像成 Notepad.exe – 有些文本編輯器提供更豐富的功能,但是當您需要檢視或建立文本檔時,Notepad.exe 永遠存在。
提示
就內部而言,針對SMS提供者相關問題進行疑難解答時,最常使用的工具 (物件建立、修改和刪除) 是WBEMTEST。
CMTrace
CMTrace: CMTrace 是自定義的記錄檔查看器,可用於監視 Configuration Manager 並進行疑難解答。 CMTrace 提供記錄檔變更 (的連續檢視,而不需要重載來監視記錄的活動) ,而且在透過SMS提供者監視/疑難解答物件建立或修改時特別有用, (請參閱下列) SMSProv.log。
您可以在 Configuration Manager 月台伺服器的 [<Configuration Manager 安裝目錄\工具] 資料夾下找到 CMTrace>。
SMSProv.log: SMS 提供者記錄檔 (<Configuration Manager 安裝目錄>\Logs\SMSProv.log) 会记录 SMS 提供者的活動,並提供低階資訊,以便在透過 SMS 提供者以程式設計方式建立或修改 Configuration Manager 物件時,監視/疑難解答問題。
Client Spy and Policy Spy
Client Spy: 此工具可協助您針對 System Center 2012 Configuration Manager 用戶端上的軟體發佈、清查和軟體計量相關問題進行疑難解答。
Policy Spy: 原則查看器,可協助您檢閱 System Center 2012 Configuration Manager 用戶端上的原則系統並進行疑難解答。
基本 Configuration Manager 程式範例
以下是非常簡單的 Configuration Manager 程序連結,其中顯示許多 Configuration Manager 程式通用的一些基本作業:
Connect
至SMS提供者List
所有程式建立 新的程式
修改 現有的程式
刪除 現有的程式