适用于: Windows PowerShell 5.0
本地配置管理器 (LCM) 是所需状态配置 (DSC) 的引擎。 LCM 在每个目标节点上运行,并负责解析和制定发送到节点的配置。 它还负责 DSC 的许多其他方面,包括以下内容。
- 确定刷新模式(推或拉)。
- 指定节点拉取和实施配置的频率。
- 将节点与拉取服务相关联。
- 指定部分配置。
您可以使用特殊类型的配置来配置 LCM 以指定其中每个行为。 以下部分介绍如何配置 LCM。
Windows PowerShell 5.0 引入了用于管理本地 Configuration Manager 的新设置。 有关在 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 的所有属性都在 “设置” 块中配置。 以下属性在 “设置” 块中可用。
| 资产 | 类型 | Description |
|---|---|---|
| 重启后作 | 字符串 | 指定在配置应用程序期间重新启动后发生的情况。 可能的值为 “ContinueConfiguration” 和 “StopConfiguration”。
|
| 允许模块覆盖 | 布尔 | $TRUE 是否允许从拉取服务下载的新配置覆盖目标节点上的旧配置。 否则,$FALSE。 |
| 证书ID | 字符串 | 用于保护配置中传递的凭据的证书的指纹。 有关详细信息,请参阅 想要在 Windows PowerShell 所需状态配置中保护凭据?。 注意: 如果使用 Azure 自动化 DSC 拉取服务,则会自动管理此作。 |
| 配置下载管理器 | Cim实例[] | 过时。 使用 ConfigurationRepositoryWeb 和 ConfigurationRepositoryShare 块定义配置拉取服务终结点。 |
| 配置 ID | 字符串 | 用于向后兼容较旧的拉取服务版本。 标识要从拉取服务获取的配置文件的 GUID。 如果配置 MOF 的名称名为 ConfigurationID.mof,则节点将在拉取服务上拉取配置。 注意: 如果设置此属性,则使用 RegistrationKey 向拉取服务注册节点不起作用。 有关更多信息,请参阅 使用配置名称设置拉取客户端。 |
| 配置模式 | 字符串 | 指定 LCM 如何实际将配置应用于目标节点。 可能的值为“ApplyOnly”、“ApplyAndMonitor”和“ApplyAndAutoCorrect”。
|
| 配置模式频率分钟 | UInt32 | 检查并应用当前配置的频率(以分钟为单位)。 如果将 ConfigurationMode 属性设置为 ApplyOnly,则忽略此属性。 默认值为 15。 |
| DebugMode | 字符串 | 可能的值为 None、 ForceModuleImport 和 All。
|
| RebootNodeIf需要 | 布尔 | 将此设置为 以 $true 允许资源使用标志 $global:DSCMachineStatus 重新启动节点。 否则,必须针对需要节点的任何配置手动重新启动节点。 默认值为 $false。 若要在 DSC 以外的内容(如 Windows Installer)颁布重启条件时使用此设置,请将此设置与 ComputerManagementDsc 模块中的 PendingReboot 资源结合使用。 |
| 刷新模式 | 字符串 | 指定 LCM 获取配置的方式。 可能的值为“Disabled”、“Push”和“Pull”。
|
| 刷新频率分钟 | 尤因特32 | LCM 检查拉取服务以获取更新配置并检查本地配置是否存在偏差的时间间隔(以分钟为单位)。 无论是否下载了更新,都会应用配置。 如果未在拉取模式下配置 LCM,则忽略此值。 默认值为 30。 |
| 报表经理 | Cim实例[] | 过时。 使用 ReportServerWeb 块定义一个终结点,以将报告数据发送到拉取服务。 |
| 资源模块管理器 | Cim实例[] | 过时。 使用 ResourceRepositoryWeb 和 ResourceRepositoryShare 块分别定义拉取服务 HTTP 终结点或 SMB 路径。 |
| 部分配置 | Cim实例 | 未实现。 请勿使用。 |
| 状态保留时间在天 | UInt32 | LCM 保留当前配置状态的天数。 |
注释
LCM 根据以下内容启动 ConfigurationModeFrequencyMins 周期:
- 使用
Set-DscLocalConfigurationManager - 机器重启
对于计时器进程发生崩溃的任何情况,将在 30 秒内检测到该崩溃,并将重新启动循环。 并发作可能会延迟周期的启动,如果此作的持续时间超过配置的周期频率,则下一个计时器将不会启动。 例如,元配置配置为 15 分钟的拉取频率,并在 T1 发生拉取。 节点在 16 分钟内未完成工作。 第一个 15 分钟周期被忽略,下一次拉动将在 T1+15+15 发生。
拉取方案中的初衷是将 设置为 RefreshFrequencyMins 比 更 ConfigurationModeFrequencyMins长的时间。 本地配置主要 ConfigurationModeFrequencyMins 由避免配置偏差进行管理,并 RefreshFrequencyMins 用于跟踪管理员所做的实际配置更改。
拉动服务
LCM 配置支持定义以下类型的拉取服务终结点:
- 配置服务器:DSC 配置的存储库。 使用 ConfigurationRepositoryWeb (对于基于 Web 的服务器)和 ConfigurationRepositoryShare (对于基于 SMB 的服务器)块来定义配置服务器。
- 资源服务器:DSC 资源的存储库,打包为 PowerShell 模块。 使用 ResourceRepositoryWeb (对于基于 Web 的服务器)和 ResourceRepositoryShare (对于基于 SMB 的服务器)块定义资源服务器。
- 报表服务器:DSC 将报表数据发送到的服务。 使用 ReportServerWeb 块定义报表服务器。 报表服务器必须是 Web 服务。
有关拉取服务的更多详细信息,请参阅 所需状态配置拉取服务。
配置服务器块
若要定义基于 Web 的配置服务器,请创建 ConfigurationRepositoryWeb 块。 ConfigurationRepositoryWeb 定义了以下属性。
| 资产 | 类型 | Description |
|---|---|---|
| 允许不安全连接 | 布尔 | 设置为 $TRUE 以允许从节点到服务器的连接而无需身份验证。 设置为 $FALSE 以要求身份验证。 |
| 证书ID | 字符串 | 用于向服务器进行身份验证的证书的指纹。 |
| 配置名称 | 字符串数组[] | 目标节点要拉取的配置名称数组。 仅当节点使用 RegistrationKey 向拉取服务注册时,才会使用这些选项。 有关更多信息,请参阅 使用配置名称设置拉取客户端。 |
| 注册密钥 | 字符串 | 向拉取服务注册节点的 GUID。 有关更多信息,请参阅 使用配置名称设置拉取客户端。 |
| 服务器网址 | 字符串 | 配置服务的 URL。 |
| 代理网址* | 字符串 | 与配置服务通信时要使用的 http 代理的 URL。 |
| 代理凭据* | pscredential | 用于 http 代理的凭据。 |
注释
在 Windows 版本 1809 及更高版本中受支持。
提供了一个示例脚本来简化本地节点的 ConfigurationRepositoryWeb 值配置 - 请参阅 生成 DSC 元配置
若要定义基于 SMB 的配置服务器,请创建 ConfigurationRepositoryShare 块。 ConfigurationRepositoryShare 定义以下属性。
| 资产 | 类型 | Description |
|---|---|---|
| 凭证 | MSFT_Credential | 用于向 SMB 共享进行身份验证的凭据。 |
| SourcePath | 字符串 | SMB 共享的路径。 |
资源服务器块
要定义基于 Web 的资源服务器,请创建一个 ResourceRepositoryWeb 块。 ResourceRepositoryWeb 定义了以下属性。
| 资产 | 类型 | Description |
|---|---|---|
| 允许不安全连接 | 布尔 | 设置为 $TRUE 以允许从节点到服务器的连接而无需身份验证。 设置为 $FALSE 以要求身份验证。 |
| 证书ID | 字符串 | 用于向服务器进行身份验证的证书的指纹。 |
| 注册密钥 | 字符串 | 标识拉取服务节点的 GUID。 |
| 服务器网址 | 字符串 | 配置服务器的 URL。 |
| 代理网址* | 字符串 | 与配置服务通信时要使用的 http 代理的 URL。 |
| 代理凭据* | pscredential | 用于 http 代理的凭据。 |
注释
在 Windows 版本 1809 及更高版本中受支持。
提供了一个示例脚本来简化为本地节点配置 ResourceRepositoryWeb 值 - 请参阅 生成 DSC 元配置
若要定义基于 SMB 的资源服务器,请创建 ResourceRepositoryShare 块。 ResourceRepositoryShare 定义以下属性。
| 资产 | 类型 | Description |
|---|---|---|
| 凭证 | MSFT_Credential | 用于向 SMB 共享进行身份验证的凭据。 有关传递凭据的示例,请参阅 设置 DSC SMB 拉取服务器 |
| SourcePath | 字符串 | SMB 共享的路径。 |
报表服务器块
若要定义报表服务器,请创建 ReportServerWeb 块。 报表服务器角色与基于 SMB 的拉取服务不兼容。 ReportServerWeb 定义了以下属性。
| 资产 | 类型 | Description |
|---|---|---|
| 允许不安全连接 | 布尔 | 设置为 $TRUE 以允许从节点到服务器的连接而无需身份验证。 设置为 $FALSE 以要求身份验证。 |
| 证书ID | 字符串 | 用于向服务器进行身份验证的证书的指纹。 |
| 注册密钥 | 字符串 | 标识拉取服务节点的 GUID。 |
| 服务器网址 | 字符串 | 配置服务器的 URL。 |
| 代理网址* | 字符串 | 与配置服务通信时要使用的 http 代理的 URL。 |
| 代理凭据* | pscredential | 用于 http 代理的凭据。 |
注释
在 Windows 版本 1809 及更高版本中受支持。
提供了一个示例脚本来简化本地节点的 ReportServerWeb 值配置 - 请参阅 生成 DSC 元配置
部分配置
要定义部分配置,请创建 PartialConfiguration 块。 有关部分配置的详细信息,请参阅 DSC 部分配置。 PartialConfiguration 定义了以下属性。
| 资产 | 类型 | Description |
|---|---|---|
| 配置源 | 字符串[] | 配置服务器的名称数组,以前在 ConfigurationRepositoryWeb 和 ConfigurationRepositoryShare 块中定义,从中提取部分配置。 |
| 依赖于 | 字符串{} | 在应用此部分配置之前必须完成的其他配置的名称列表。 |
| Description | 字符串 | 用于描述部分配置的文本。 |
| 独家资源 | 字符串[] | 此部分配置独有的资源数组。 |
| 刷新模式 | 字符串 | 指定 LCM 如何获取此部分配置。 可能的值为“Disabled”、“Push”和“Pull”。
|
| 资源模块源 | 字符串[] | 资源服务器名称的数组,用于从中下载此部分配置所需的资源。 这些名称必须引用先前在 ResourceRepositoryWeb 和 ResourceRepositoryShare 块中定义的服务终结点。 |
注释
Azure 自动化 DSC 支持部分配置,但每个节点只能从每个自动化帐户拉取一个配置。