設定本機設定管理員
適用於:Windows PowerShell 5.0
本機設定管理員 (LCM) 是 Desired State Configuration (DSC) 的引擎。 LCM 在每個目標節點上執行,而且會負責剖析和制定傳送至節點的設定。 它也會負責多個 DSC 的其他層面,包括下列層面。
- 決定重新整理模式 (發送或提取)。
- 指定節點提取的頻率,並制定設定。
- 將節點與提取服務產生關聯。
- 指定部分設定。
您可以使用一種特殊的設定來設定 LCM,以指定這些行為。 下列章節說明如何設定 LCM。
Windows PowerShell 5.0 推出了用於管理本機設定管理員的新設定。 如需在 Windows PowerShell 4.0 中設定 LCM 的資訊,請參閱在舊版 Windows PowerShell 中設定本機設定管理員。
撰寫和制定 LCM 設定
若要設定 LCM,您可以建立並執行會套用 LCM 設定的特殊設定。 若要指定 LCM 設定,您可以使用 DscLocalConfigurationManager 屬性。 下圖顯示簡單的設定,可將 LCM 設定為推入模式。
[DSCLocalConfigurationManager()]
configuration LCMConfig
{
Node localhost
{
Settings
{
RefreshMode = 'Push'
}
}
}
套用設定至 LCM 的程序和套用 DSC 設定類似。 您將會建立 LCM 設定,將它編譯成 MOF 檔案,然後將它套用至節點。 和 DSC 設定不同的是,您不會藉由呼叫 Start-DscConfiguration \(英文\) Cmdlet 來制定 LCM 設定。 相反地,您會呼叫 Set-DscLocalConfigurationManager \(英文\),將 LCM 設定 MOF 的路徑作為參數提供。 制定 LCM 設定之後,您可以藉由呼叫 Get-DscLocalConfigurationManager \(英文\) Cmdlet 來查看 LCM 屬性。
LCM 設定可以包含一組僅限於有限資源的區塊。 在上述範例中,唯一呼叫的資源是 Settings。 其他可用的資源包括:
- ConfigurationRepositoryWeb:指定設定的 HTTP 提取服務。
- ConfigurationRepositoryShare:指定設定的 SMB 共用。
- ResourceRepositoryWeb:指定模組的 HTTP 提取服務。
- ResourceRepositoryShare:指定模組的 SMB 共用。
- ReportServerWeb:指定傳送報表的目標 HTTP 提取服務。
- PartialConfiguration:提供資料以啟用部分設定。
基本設定
除了指定提取服務端點/路徑及部分設定之外,所有的 LCM 屬性都會在 Settings 區塊中設定。 下列屬性可用於 Settings 區塊。
屬性 | 類型 | 描述 |
---|---|---|
ActionAfterReboot | 字串 | 指定套用設定期間在重新開機後的動作。 可能的值為 "ContinueConfiguration" 和 "StopConfiguration" 。
|
AllowModuleOverwrite | bool | 若允許以自提取服務下載的新設定覆寫目標節點上的舊設定,即為 $TRUE。 否則為 $FALSE。 |
CertificateID | 字串 | 憑證指紋,用來保護在設定中傳遞的憑證。 如需詳細資訊,請參閱 Want to secure credentials in Windows PowerShell Desired State Configuration (需要保護 Windows PowerShell 預期狀態設定的憑證嗎?)。 注意: 若使用 Azure 自動化 DSC 提取服務,系統會自動管理此設定。 |
ConfigurationDownloadManagers | CimInstance[] | 已過時。 使用 ConfigurationRepositoryWeb 和 ConfigurationRepositoryShare 區塊來定義設定提取服務端點。 |
ConfigurationID | 字串 | 用於與較舊提取服務版本之間的回溯相容性。 識別要從提取服務取得之設定檔的 GUID。 如果設定 MOF 的名稱為 ConfigurationID.mof,節點將會在提取服務上提取設定。 注意: 如果您設定這個屬性,將無法使用 RegistrationKey 向提取服務註冊節點。 如需詳細資訊,請參閱以設定名稱設定提取用戶端。 |
ConfigurationMode | 字串 | 指定 LCM 實際上如何將設定套用至目標節點。 可能的值為 "ApplyOnly" 、 "ApplyAndMonitor" 和 "ApplyAndAutoCorrect" 。
|
ConfigurationModeFrequencyMins | UInt32 | 檢查並套用目前設定的頻率 (以分鐘為單位)。 如果 ConfigurationMode 屬性設定為 ApplyOnly,就會忽略這個屬性。 預設值為 15。 |
DebugMode | 字串 | 可能的值為 None、ForceModuleImport 和 All。
|
RebootNodeIfNeeded | bool | 將此設為 $true ,以允許資源使用 $global:DSCMachineStatus 旗標來重新啟動節點。 否則,您將必須手動重新啟動任何設定所需的節點。 預設值是 $false 。 若要在重新啟動條件是由 DSC 以外項目 (例如 Windows Installer) 所制定的情況下使用此設定,請將此設定與 ComputerManagementDsc 中的 PendingReboot 模組結合。 |
RefreshMode | 字串 | 指定 LCM 取得設定的方式。 可能的值為 "Disabled" 、 "Push" 和 "Pull" 。
|
RefreshFrequencyMins | Uint32 | LCM 檢查提取服務以取得更新設定並針對漂移檢查本機設定的時間間隔 (以分鐘為單位)。 無論是否已下載更新,都會套用設定。 如果 LCM 未在提取模式下設定,就會忽略此值。 預設值是 30。 |
ReportManagers | CimInstance[] | 已過時。 使用 ReportServerWeb 區塊來定義傳送報表資料至提取服務的端點。 |
ResourceModuleManagers | CimInstance[] | 已過時。 使用 ResourceRepositoryWeb 和 ResourceRepositoryShare 區塊來個別定義提取服務 HTTP 端點或 SMB 路徑。 |
PartialConfigurations | CimInstance | 未實作。 請勿使用。 |
StatusRetentionTimeInDays | UInt32 | LCM 會保留目前設定狀態的天數。 |
注意
LCM 會根據以下項目,啟動 ConfigurationModeFrequencyMins:
- 已使用
Set-DscLocalConfigurationManager
套用變更為 ConfigurationModeFrequencyMins 的新中繼設定 - 電腦重新啟動
針對任何計時器處理序發生當機的狀況,會在 30 秒內偵測該狀況,並重新啟動循環。 若此作業的期間超過所設定循環頻率,則下一個計時器便不會啟動,並可能使同時作業延遲啟動循環。 例如,中繼設定已設定為 15 分鐘的提取頻率,而提取動作則在 T1 發生。 節點沒有在 16 分鐘內完成工作。 這樣便會忽略第一個 15 分鐘循環,而下一個提取則會在 T1+15+15 時發生。
提取案例中的原始意圖是 RefreshFrequencyMins
已設定為比 ConfigurationModeFrequencyMins
更長的時間。 本機設定主要會由 ConfigurationModeFrequencyMins
管理以避免設定漂移,而且會使用 RefreshFrequencyMins
來追蹤系統管理員所做的實際設定變更。
提取服務
LCM 設定支援定義下列提取服務端點類型:
- 設定伺服器:適用於 DSC 設定的存放庫。 使用 ConfigurationRepositoryWeb (適用於 Web 伺服器) 和 ConfigurationRepositoryShare (適用於 SMB 伺服器) 區塊來定義設定伺服器。
- 資源伺服器:封裝成 PowerShell 模組的 DSC 資源存放庫。 使用 ResourceRepositoryWeb (適用於 Web 伺服器) 和 ResourceRepositoryShare (適用於 SMB 伺服器) 區塊來定義資源伺服器。
- 報表伺服器:DSC 傳送報表資料的目標服務。 使用 ReportServerWeb 區塊來定義報表伺服器。 報表伺服器必須是 Web 服務。
如需提取服務的詳細資訊,請參閱 Desired State Configuration 提取服務。
設定伺服器區塊
若要定義 Web 設定伺服器,請建立 ConfigurationRepositoryWeb 區塊。 ConfigurationRepositoryWeb 定義下列屬性。
屬性 | 類型 | 描述 |
---|---|---|
AllowUnsecureConnection | bool | 設為 $TRUE 即允許從節點到伺服器的未經驗證連線。 設為 $FALSE 表示需要驗證。 |
CertificateID | 字串 | 用來向伺服器驗證的憑證指紋。 |
ConfigurationNames | String[] | 要由目標節點提取之設定名稱的陣列。 僅有在使用 RegistrationKey 向提取服務註冊節點時,才會使用這些設定。 如需詳細資訊,請參閱以設定名稱設定提取用戶端。 |
RegistrationKey | 字串 | 向提取服務註冊節點的 GUID。 如需詳細資訊,請參閱以設定名稱設定提取用戶端。 |
ServerURL | 字串 | 設定服務的 URL。 |
ProxyURL* | 字串 | 與設定服務通訊時要使用的 HTTP Proxy URL。 |
ProxyCredential* | pscredential | 要用於 HTTP Proxy 的認證。 |
注意
Windows 1809 版與更新版本中支援。
如需能簡化針對內部部署節點設定 ConfigurationRepositoryWeb 值的範例指令碼,請參閱產生 DSC 中繼設定
若要定義 SMB 設定伺服器,請建立 ConfigurationRepositoryShare 區塊。 ConfigurationRepositoryShare 定義下列屬性。
屬性 | 類型 | 描述 |
---|---|---|
認證 | MSFT_Credential | 用來向 SMB 驗證的認證。 |
SourcePath | 字串 | SMB 共用的路徑。 |
資源伺服器區塊
若要定義 Web 資源伺服器,請建立 ResourceRepositoryWeb 區塊。 ResourceRepositoryWeb 定義下列屬性。
屬性 | 類型 | 描述 |
---|---|---|
AllowUnsecureConnection | bool | 設為 $TRUE 即允許從節點到伺服器的未經驗證連線。 設為 $FALSE 表示需要驗證。 |
CertificateID | 字串 | 用來向伺服器驗證的憑證指紋。 |
RegistrationKey | 字串 | 向提取服務識別節點的 GUID。 |
ServerURL | 字串 | 設定伺服器的 URL。 |
ProxyURL* | 字串 | 與設定服務通訊時要使用的 HTTP Proxy URL。 |
ProxyCredential* | pscredential | 要用於 HTTP Proxy 的認證。 |
注意
Windows 1809 版與更新版本中支援。
如需能簡化針對內部部署節點設定 ResourceRepositoryWeb 值的範例指令碼,請參閱產生 DSC 中繼設定
若要定義 SMB 資源伺服器,請建立 ResourceRepositoryShare 區塊。 ResourceRepositoryShare 定義下列屬性。
屬性 | 類型 | 描述 |
---|---|---|
認證 | MSFT_Credential | 用來向 SMB 驗證的認證。 如需傳遞認證的範例,請參閱設定 SMB DSC 提取伺服器 |
SourcePath | 字串 | SMB 共用的路徑。 |
報表伺服器區塊
若要定義報表伺服器,請建立 ReportServerWeb 區塊。 報表伺服器角色並不相容於以 SMB 為基礎的提取服務。 ReportServerWeb 定義下列屬性。
屬性 | 類型 | 描述 |
---|---|---|
AllowUnsecureConnection | bool | 設為 $TRUE 即允許從節點到伺服器的未經驗證連線。 設為 $FALSE 表示需要驗證。 |
CertificateID | 字串 | 用來向伺服器驗證的憑證指紋。 |
RegistrationKey | 字串 | 向提取服務識別節點的 GUID。 |
ServerURL | 字串 | 設定伺服器的 URL。 |
ProxyURL* | 字串 | 與設定服務通訊時要使用的 HTTP Proxy URL。 |
ProxyCredential* | pscredential | 要用於 HTTP Proxy 的認證。 |
注意
Windows 1809 版與更新版本中支援。
如需能簡化針對內部部署節點設定 ReportServerWeb 值的範例指令碼,請參閱產生 DSC 中繼設定
部分設定
若要定義部分設定,請建立 PartialConfiguration 區塊。 如需部分設定的詳細資訊,請參閱 DSC 部分設定。 PartialConfiguration 定義下列屬性。
屬性 | 類型 | 描述 |
---|---|---|
ConfigurationSource | string[] | 先前在 ConfigurationRepositoryWeb 和 ConfigurationRepositoryShare 區塊中定義的設定伺服器名稱陣列,部分設定會從中提取。 |
DependsOn | string{} | 必須在套用部分設定之前先完成的其他設定名稱清單。 |
描述 | 字串 | 用來描述部分設定的文字。 |
ExclusiveResources | string[] | 這個部分設定專用的資源陣列。 |
RefreshMode | 字串 | 指定 LCM 如何取得這個部分設定。 可能的值為 "Disabled" 、 "Push" 和 "Pull" 。
|
ResourceModuleSource | string[] | 要從中下載此部分設定所需資源的資源伺服器名稱陣列。 這些名稱必須參考先前在 ResourceRepositoryWeb 和 ResourceRepositoryShare 區塊中定義的服務端點。 |
注意
雖然 Azure 自動化 DSC 支援部分組態,但每個節點的每個自動化帳戶中只能提取一個組態。
另請參閱
概念
Desired State Configuration 概觀