使用 PowerShell 5.0 及更高版本中的配置 ID 设置拉取客户端

适用于:Windows PowerShell 5.0

重要

拉取服务器(Windows 功能 DSC 服务)是 Windows Server 受支持的组件,但没有计划提供新特性或功能。 我们希望你知道,较新版本的 DSC 现已正式发布,由名为 “来宾配置”的 Azure Policy 功能管理。 来宾配置服务结合了 DSC 扩展、Azure 自动化状态配置的功能以及客户反馈中最常请求的功能。 来宾配置还包括通过 已启用 Arc 的服务器的混合计算机支持。

在设置请求客户端之前,您应该设置请求服务器。 虽然此顺序不是必需的,但它有助于进行故障排除,并帮助您确保注册成功。 要设置请求服务器,您可以使用以下指南:

每个目标节点都可以配置为下载配置、资源,甚至报告其状态。 以下部分介绍如何配置具有 SMB 共享或 HTTP DSC 请求服务器的请求客户端。 当节点的 LCM 刷新时,它将访问配置的位置以下载任何分配的配置。 如果节点上不存在任何必需的资源,它将自动从配置的位置下载这些资源。 如果节点配置了 Report Server,则它将报告作的状态。

注释

本主题适用于 PowerShell 5.0。 有关在 PowerShell 4.0 中设置拉取客户端的信息,请参阅 在 PowerShell 4.0 中使用配置 ID 设置拉取客户端

配置请求客户端 LCM

执行以下任何示例都会创建一个名为 PullClientConfigID 的新输出文件夹,并将元配置 MOF 文件放在其中。 在这种情况下,元配置 MOF 文件将被命名为 localhost.meta.mof

要应用配置,请调用 Set-DscLocalConfigurationManager cmdlet,并将 Path 设置为元配置 MOF 文件的位置。 例如:

Set-DSCLocalConfigurationManager –ComputerName localhost –Path .\PullClientConfigId –Verbose.

配置 ID

以下示例将 LCM 的 ConfigurationID 属性设置为以前为此目的创建的 Guid 。 ConfigurationID 是 LCM 用于在拉取服务器上查找适当配置的 ConfigurationID 。 拉取服务器上的配置 MOF 文件必须命名 ConfigurationID.mof为 ,其中 ConfigurationID 是目标节点的 LCM 的 ConfigurationID 属性的值。 有关详细信息,请参阅将配置发布到拉取服务器 (v4/v5)。

可以使用以下示例或使用 New-Guid cmdlet 创建随机 Guid

[System.Guid]::NewGuid()

有关在环境中使用 Guids 的详细信息,请参阅 规划 Guid

设置 Pull Client 以下载配置

每个客户端都必须配置为 Pull 模式,并为其配置提供存储其配置的 Pull server URL。 为此,您必须使用必要的信息配置本地配置管理器 (LCM)。 要配置 LCM,请创建一种特殊类型的配置,并使用 DSCLocalConfigurationManager 属性进行修饰。 有关配置 LCM 的更多信息,请参阅 配置本地配置管理器

HTTP DSC 拉取服务器

以下脚本将 LCM 配置为从名为“CONTOSO-PullSrv”的服务器中提取配置。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }
    }
}
PullClientConfigID

在该脚本中, ConfigurationRepositoryWeb 块定义请求服务器。 ServerUrl 指定 DSC 拉取的 URL

中小企业份额

以下脚本将 LCM 配置为从 SMB 共享 \\SMBPullServer\Pull中提取配置。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Pull'
        }
    }
}
PullClientConfigID

在脚本中, ConfigurationRepositoryShare 块定义拉取服务器,在本例中,拉取服务器只是一个 SMB 共享。

设置 Pull Client 以下载 Resources

如果在 LCM 配置中仅指定 ConfigurationRepositoryWebConfigurationRepositoryShare 块(如前面的示例所示),则拉取客户端将从其检索其配置的同一位置拉取资源。 您还可以为资源指定单独的位置。 若要将资源位置指定为单独的服务器,请使用 ResourceRepositoryWeb 块。 若要将资源位置指定为 SMB 共享,请使用 ResourceRepositoryShare 块。

注释

您可以将 ConfigurationRepositoryWebResourceRepositoryShare将 ConfigurationRepositoryShareResourceRepositoryWeb 结合使用。 下面未显示这方面的示例。

HTTP DSC 拉取服务器

以下元配置将拉取客户端配置为从 CONTOSO-PullSrv 获取其配置,并从 CONTOSO-ResourceSrv 获取其资源。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

中小企业份额

以下示例显示了一个元配置,该元配置将客户端设置为从 SMB 共享 \\SMBPullServer\Configurations中提取配置,并从 SMB 共享 \\SMBPullServer\Resources中提取资源。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Configurations'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

在推送模式下自动下载资源

从 PowerShell 5.0 开始,拉取客户端可以从 SMB 共享下载模块,即使它们配置为 推送 模式也是如此。 这在不想设置拉取服务器的情况下特别有用。 无需指定 ConfigurationRepositoryShare 即可使用 ResourceRepositoryShare 块。 以下示例显示了一个元配置,该元配置将客户端设置为从 SMB 共享 \\SMBPullServer\Resources中提取资源。 当节点被 推送 配置时,它将自动从指定的共享中下载任何所需的资源。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Push'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

设置 Pull Client 以报告状态

默认情况下,节点不会将报告发送到配置的拉取服务器。 可以使用单个拉取服务器进行配置、资源和报告,但必须创建 ReportRepositoryWeb 块才能设置报告。

HTTP DSC 拉取服务器

以下示例显示了一个元配置,该元配置设置客户端以提取配置和资源,并将报告数据发送到单个拉取服务器。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

若要指定报表服务器,请使用 ReportRepositoryWeb 块。 报表服务器不能是 SMB 服务器。 以下元配置将拉取客户端配置为从 CONTOSO-PullSrv 获取其配置,从 CONTOSO-ResourceSrv 获取其资源,并将状态报告发送到 CONTOSO-ReportSrv

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-ReportSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

中小企业份额

报表服务器不能是 SMB 共享。

后续步骤

配置拉取客户端后,可以使用以下指南执行后续步骤:

另请参阅