使用配置 ID 发布到拉取服务器 (v4/v5)

以下部分假定你已设置拉取服务器。 如果尚未设置拉取服务器,可以遵循以下指南:

每个目标节点都可以配置为下载配置、资源,甚至是报告其状态。 本文介绍了如何上传资源以供下载,以及如何将客户端配置为自动下载资源。 如果节点通过“拉取”或“推送”(v5) 收到分配的配置,便会从本地配置管理器 (LCM) 中指定的位置自动下载配置所需的任何资源。

编译配置

配置存储在拉取服务器上的第一步是,将配置编译为 .mof 文件。 若要使配置通用并适用于多个客户端,请使用节点块中的 localhost。 下面的示例显示使用 localhost(而不是特定客户端名称)的配置 Shell。

Configuration GenericConfig
{
    Node localhost
    {

    }
}
GenericConfig

编译通用配置后,应该就会有 localhost.mof 文件。

重命名 MOF 文件

可以按 ConfigurationName 或 ConfigurationID 将配置 .mof 文件存储在拉取服务器上。 可以选择下面的部分来正确重命名已编译的 .mof 文件,具体视你计划如何设置拉取客户端。

配置 ID (GUID)

需要将 localhost.mof 文件重命名为 <GUID>.mof 文件。 可以使用以下示例,或使用 New-Guid cmdlet 创建随机 Guid

[System.Guid]::NewGuid()

示例输出

Guid
----
64856475-939e-41fb-aba5-4469f4006059

然后,可以使用任何可接受的方法重命名 .mof 文件。 以下示例使用 Rename-Item cmdlet。

Rename-Item -Path .\localhost.mof -NewName '64856475-939e-41fb-aba5-4469f4006059.mof'

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

配置名称

需要将 localhost.mof 文件重命名为 <Configuration Name>.mof 文件。 在以下示例中,将使用上一节中的配置名称。 然后,可以使用任何可接受的方法重命名 .mof 文件。 以下示例使用 Rename-Item cmdlet。

Rename-Item -Path .\localhost.mof -NewName 'GenericConfig.mof'

创建校验和

拉取服务器上存储的每个 .mof 文件或 SMB 共享都需要有关联的 .checksum 文件。 借助此文件,客户端可以了解关联的 .mof 文件何时发生了更改,以及应何时重新下载它。

可以使用 New-DSCCheckSum cmdlet 创建校验和。 也可以使用 -Path 参数对文件的目录运行 New-DSCCheckSum。 如果校验和已存在,则可以强制使用 -Force 参数重新创建校验和。 下面的示例指定了包含上一部分中的 .mof 文件的目录,并使用 -Force 参数。

New-DscChecksum -Path '.\' -Force

你将不会看到任何输出,但现在应看到 <GUID or Configuration Name>.mof.checksum 文件。

MOF 文件和校验和的存储位置

在 DSC HTTP 拉取服务器上

当按照设置 DSC HTTP 拉取服务器中所述设置 HTTP 拉取服务器时,指定 ModulePath 和 ConfigurationPath 键的目录。 ModulePath 键指明了应在哪里存储模块的打包 .zip 文件。 ConfigurationPath 键指明了应在哪里存储任何 .mof 文件和 .checksum 文件。

    xDscWebService PSDSCPullServer
    {
    ...
        ModulePath              = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
        ConfigurationPath       = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
    ...
    }

在 SMB 共享上

将拉取客户端设置为使用 SMB 共享时,指定 ConfigurationRepositoryShare。 所有 .mof 文件和 .checksum 文件应存储在 ConfigurationRepositoryShare 块的 SourcePath 目录中。

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

后续步骤

接下来,需要将拉取客户端配置为拉取指定配置。 有关详细信息,请参阅以下指南之一:

另请参阅