在 PowerShell 4.0 中設定 LCM

適用於:Windows PowerShell 4.0

如需 Windows PowerShell 5.0 及更新版本的相關資訊,請參閱設定本機設定管理員

本機設定管理員是 Windows PowerShell 預期狀態設定 (DSC) 引擎, 會在所有目標節點上執行,負責呼叫包含在 DSC 設定指令碼中的設定資源。 本主題列出本機設定管理員屬性,並說明如何修改目標節點上的本機設定管理員設定。

本機設定管理員屬性

以下列出您可以設定或擷取的本機設定管理員屬性。

  • AllowModuleOverwrite:控制是否允許以自設定服務下載的新設定覆寫目標節點上的舊設定。 可能的值為 True 和 False。
  • CertificateID:憑證指紋,用來保護在設定中傳遞的認證。 如需詳細資訊,請參閱 Want to secure credentials in Windows PowerShell Desired State Configuration (需要保護 Windows PowerShell 預期狀態設定的憑證嗎?)
  • ConfigurationID:表示用來從提取服務取得特定設定檔的 GUID。 此 GUID 可確保存取正確的設定檔。
  • ConfigurationMode:指定本機設定管理員實際上如何將設定套用至目標節點。 它可以採用下列值:
    • ApplyOnly:若設定此選項,DSC 會套用設定,並且不會執行任何進一步的動作,除非它透過下列兩種方式偵測到新的設定:您直接將新設定傳送至目標節點,或是您連線至提取服務且 DSC 於檢查提取服務時發現新設定。 如果目標節點的設定偏離,就不採取任何動作。
    • ApplyAndMonitor:若設定此選項 (此為預設值),DSC 會套用任何新的設定,無論新設定是由您直接傳送至目標節點,或是由 DSC 於提取服務上發現。 之後,如果目標節點的設定偏離設定檔,DSC 就會報告記錄檔中的差異。 如需 DSC 記錄的資訊,請參閱 Using Event Logs to Diagnose Errors in Desired State Configuration (在預期狀態設定中使用事件記錄檔診斷錯誤)
    • ApplyAndAutoCorrect:若設定此選項,DSC 會套用任何新的設定,無論新設定是由您直接傳送至目標節點,或是由 DSC 於提取服務上發現。 之後,如果目標節點的設定偏離設定檔,DSC 就會報告記錄檔中的差異,然後嘗試調整目標節點設定,以符合設定檔。
  • ConfigurationModeFrequencyMins代表 DSC 的背景應用程式嘗試實作目標節點上目前設定的頻率 (以分鐘為單位)。 預設值為 15。 這個值可以搭配 RefreshMode 設定。 當 RefreshMode 設定為 PULL 時,目標節點會以由 RefreshFrequencyMins 所設定的間隔連絡設定服務,並下載目前的設定。 不論 RefreshMode 值為何,在 ConfigurationModeFrequencyMins 所設定的間隔中,一致性引擎會套用已下載至目標節點的最新設定。 RefreshFrequencyMins 應為 ConfigurationModeFrequencyMins 的整數倍數。
  • Credential:表示存取遠端資源所需的認證 (如同 Get-Credential),例如連絡設定服務。
  • DownloadManagerCustomData:代表陣列,其中包含下載管理員特有的自訂資料。
  • DownloadManagerName:指出設定和模組下載管理員的名稱。
  • RebootNodeIfNeeded:將此設為 $true,以允許資源使用 $global:DSCMachineStatus 旗標來重新啟動節點。 否則,您將必須手動重新啟動任何設定所需的節點。 預設值是 $false。 若要在重新啟動條件是由 DSC 以外的項目 (例如 Windows Installer) 所制定的情況下使用此設定,請將此設定與 xPendingReboot \(英文\) 模組結合。
  • RefreshFrequencyMins:於您設定提取服務時使用。 代表的本機設定管理員連絡提取服務來下載目前設定的頻率 (以分鐘為單位)。 這個值可以搭配 ConfigurationModeFrequencyMins 設定。 當 RefreshMode 設定為 PULL 時,目標節點會以由 RefreshFrequencyMins 所設定的間隔連絡提取服務,並下載目前的設定。 在 ConfigurationModeFrequencyMins 所設定的間隔中,一致性引擎接著會套用已下載至目標節點的最新設定。 如果 RefreshFrequencyMins 未設定為 ConfigurationModeFrequencyMins 的整數倍數,則系統會無條件進位。 預設值是 30。
  • RefreshMode:可能的值為 Push (預設值) 和 Pull。 在 [推送] 設定中,您必須使用任何用戶端電腦,在每個目標節點上放置設定檔。 在 [提取] 模式中,您必須設定提取服務,本機設定管理員才能連絡及存取設定檔。

注意

LCM 會根據以下項目,啟動 ConfigurationModeFrequencyMins

  • 新的中繼設定會使用 Set-DscLocalConfigurationManager 來套用
  • 電腦重新啟動

針對任何計時器處理序發生當機的狀況,會在 30 秒內偵測該狀況,並重新啟動循環。 若此作業的期間超過所設定循環頻率,則下一個計時器便不會啟動,並可能使同時作業延遲啟動循環。

例如,中繼設定已設定為 15 分鐘的提取頻率,而提取動作則在 T1 發生。 節點沒有在 16 分鐘內完成工作。 這樣便會忽略第一個 15 分鐘循環,而下一個提取則會在 T1+15+15 時發生。

更新本機設定管理員設定的範例

您可以更新目標節點的本機設定管理員設定,方法是在設定指令碼中節點區塊內加入 LocalConfigurationManager 區塊,如下列範例所示。

Configuration ExampleConfig
{
    Node "Server001"
    {
        LocalConfigurationManager
        {
            ConfigurationID = "646e48cb-3082-4a12-9fd9-f71b9a562d4e"
            ConfigurationModeFrequencyMins = 45
            ConfigurationMode = "ApplyAndAutocorrect"
            RefreshMode = "Pull"
            RefreshFrequencyMins = 90
            DownloadManagerName = "WebDownloadManager"
            DownloadManagerCustomData = (@{ServerUrl="https://$PullService/psdscpullserver.svc"})
            CertificateID = "71AA68562316FE3F73536F1096B85D66289ED60E"
            Credential = $cred
            RebootNodeIfNeeded = $true
            AllowModuleOverwrite = $false
        }
# One or more resource blocks can be added here
    }
}

# The following line invokes the configuration and creates a file called
# Server001.meta.mof at the specified path
ExampleConfig -OutputPath "c:\users\public\dsc"

執行上述範例中的指令碼會產生 MOF 檔案,該檔案指定並儲存所需的設定。 若要套用設定,您可以使用 Set-DscLocalConfigurationManager Cmdlet,如下列範例所示。

Set-DscLocalConfigurationManager -Path "c:\users\public\dsc"

注意

針對 Path 參數,當您叫用前一個範例中的設定時,您指定的路徑必須與您為 OutputPath 參數所指定的路徑相同。

若要查看目前本機設定管理員設定,您可以使用 Get-DscLocalConfigurationManager Cmdlet。 如果您叫用的這個 Cmdlet 不含任何參數,依預設會取得您用來執行此 Cmdlet 之節點的本機設定管理員設定。 若要指定另一個節點,請使用這項 Cmdlet 的 CimSession 參數。