适用于: Windows PowerShell 5.0
重要
请求服务器(Windows 功能 DSC-Service)是 Windows Server 支持的组件,但没有计划提供新特性或功能。 我们希望你知道,较新版本的 DSC 现已正式发布,由名为 guest configuration 的 Azure Policy 功能管理。 来宾配置服务结合了 DSC 扩展、Azure 自动化 State Configuration 的功能以及客户反馈中最常请求的功能。 来宾配置还包括通过 已启用 Arc 的服务器提供的混合计算机支持。
在设置请求客户端之前,您应该设置请求服务器。 虽然此顺序不是必需的,但它有助于进行故障排除,并帮助您确保注册成功。 要设置请求服务器,您可以使用以下指南:
每个目标节点都可以配置为下载配置、资源,甚至报告其状态。 以下部分介绍如何配置具有 SMB 共享或 HTTP DSC 请求服务器的请求客户端。 当节点的 LCM 刷新时,它将访问配置的位置以下载任何分配的配置。 如果节点上不存在任何必需的资源,它将自动从配置的位置下载这些资源。 如果节点配置了 Report Server,则它将报告作的状态。
注释
本主题适用于 PowerShell 5.0。 有关在 PowerShell 4.0 中设置请求客户端的信息,请参阅 在 PowerShell 4.0 中使用配置 ID 设置请求客户端。
配置请求客户端 LCM
执行下面的任何示例都会创建一个名为 PullClientConfigName 的新输出文件夹,并将元配置 MOF 文件放在该文件夹中。 在这种情况下,元配置 MOF 文件将被命名为 localhost.meta.mof
。
要应用配置,请调用 Set-DscLocalConfigurationManager cmdlet,并将 Path 设置为元配置 MOF 文件的位置。 例如:
Set-DSCLocalConfigurationManager –ComputerName localhost –Path .\PullClientConfigName –Verbose.
配置名称
以下示例将 LCM 的 ConfigurationName 属性设置为以前编译的 Configuration 的名称,该 Configuration 是为此目的创建的。
ConfigurationName 是 LCM 用于在请求服务器上查找适当配置的名称。 请求服务器上的配置 MOF 文件必须命名为 <ConfigurationName>.mof
,在本例中为 “ClientConfig.mof”。 有关更多信息,请参阅将配置发布到请求服务器 (v4/v5)。
设置 Pull Client 以下载配置
每个客户端都必须配置为 Pull 模式,并为其配置提供存储其配置的 Pull server URL。 为此,您必须使用必要的信息配置本地配置管理器 (LCM)。 要配置 LCM,请创建一种特殊类型的配置,并使用 DSCLocalConfigurationManager 属性进行修饰。 有关配置 LCM 的更多信息,请参阅 配置本地配置管理器。
以下脚本将 LCM 配置为从名为“CONTOSO-PullSrv”的服务器中提取配置。
在该脚本中, ConfigurationRepositoryWeb 块定义请求服务器。 ServerURL 属性指定请求服务器的端点。
RegistrationKey 属性是请求服务器和该请求服务器的所有客户端节点之间的共享密钥。 相同的值存储在 Pull Server 上的文件中。
注释
注册密钥仅适用于 Web 请求服务器。 您仍必须将 ConfigurationID 与 SMB 请求服务器一起使用。 > 有关使用 ConfigurationID 配置请求服务器的信息,请参阅 使用配置 ID 设置请求客户端
ConfigurationNames 属性是一个数组,用于指定用于客户端节点的配置的名称。 > 注意: 如果您在 ConfigurationNames 中指定了多个值,则还必须在配置中指定 PartialConfiguration 块。 >有关部分配置的信息,请参阅 PowerShell Desired State Configuration 部分配置。
[DSCLocalConfigurationManager()]
configuration PullClientConfigNames
{
Node localhost
{
Settings
{
RefreshMode = 'Pull'
RefreshFrequencyMins = 30
RebootNodeIfNeeded = $true
}
ConfigurationRepositoryWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = '140a952b-b9d6-406b-b416-e0f759c9c0e4'
ConfigurationNames = @('ClientConfig')
}
}
}
PullClientConfigNames
设置 Pull Client 以下载 Resources
如果您在 LCM 配置中仅指定 ConfigurationRepositoryWeb 或 ConfigurationRepositoryShare 块(如上一个示例所示),则请求客户端将从存储 “.mof” 文件的同一位置提取资源。 您还可以指定客户端可以下载资源的不同位置。 要指定资源服务器,请使用 ResourceRepositoryWeb (用于 Web 请求服务器)或 ResourceRepositoryShare 块(用于 SMB 请求服务器)。
以下示例显示了一个元配置,该元配置将客户端设置为从请求服务器下载配置,并从 SMB 共享下载资源。
[DSCLocalConfigurationManager()]
configuration PullClientConfigNames
{
Node localhost
{
Settings
{
RefreshMode = 'Pull'
RefreshFrequencyMins = 30
RebootNodeIfNeeded = $true
}
ConfigurationRepositoryWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = 'fbc6ef09-ad98-4aad-a062-92b0e0327562'
}
ResourceRepositoryShare SMBResources
{
SourcePath = '\\SMBPullServer\Resources'
}
}
}
PullClientConfigNames
设置 Pull Client 以报告状态
您可以将单个拉取服务器用于配置、资源和报告。 默认情况下,不会为客户端配置报告。 要将客户端配置为报告状态,您必须创建一个 ReportRepositoryWeb 块。 以下示例显示了一个元配置,该元配置设置客户端以提取配置和资源,并将报告数据发送到单个拉取服务器。
注释
报表服务器不能是 SMB 共享。
[DSCLocalConfigurationManager()]
configuration PullClientConfigNames
{
Node localhost
{
Settings
{
RefreshMode = 'Pull'
RefreshFrequencyMins = 30
RebootNodeIfNeeded = $true
}
ConfigurationRepositoryWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = 'fbc6ef09-ad98-4aad-a062-92b0e0327562'
}
ReportServerWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = 'fbc6ef09-ad98-4aad-a062-92b0e0327562'
}
}
}
PullClientConfigNames