拉取服务器最佳做法

适用于:Windows PowerShell 4.0、Windows PowerShell 5.0

重要

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

摘要:本文档旨在包括流程和可扩展性,以帮助正在准备解决方案的工程师。 详细信息应提供客户确定的最佳做法,然后由产品团队验证,以确保建议面向未来并被视为稳定。

  • 作者:迈克尔·格林
  • 审稿人:本·格伦斯、拉维坎特·查甘蒂、亚历山大·尼科利奇
  • 发布时间:2015 年 4 月

摘要

本文档旨在为规划 Windows PowerShell 所需状态配置拉取服务器实现的任何人提供官方指导。 拉取服务器是一种简单的服务,只需几分钟即可完成部署。 尽管本文档将提供可用于部署的技术作指南,但本文档的价值是作为最佳做法的参考,以及部署前要考虑的事项。 读者应对 DSC 以及用于描述 DSC 部署中包含的组件的术语有基本的了解。 有关详细信息,请参阅 Windows PowerShell 所需状态配置概述 主题。 随着 DSC 预计将以云节奏发展,包括拉取服务器在内的底层技术也有望发展并引入新功能。 本文档在附录中包含一个版本表,其中提供了对先前版本的参考和对未来解决方案的参考,以鼓励前瞻性设计。

本文档的两个主要部分:

  • 配置规划
  • 安装指南

Windows 管理框架的版本

本文档中的信息旨在应用于 Windows Management Framework 5.0。 虽然部署和作拉取服务器不需要 WMF 5.0,但 5.0 版是本文档的重点。

Windows PowerShell 所需状态配置

所需状态配置 (DSC) 是一个管理平台,它支持使用名为托管对象格式 (MOF) 的行业语法来描述通用信息模型 (CIM) 来部署和管理配置数据。 存在一个开源项目,即开放管理基础设施 (OMI),以跨平台(包括 Linux 和网络硬件作系统)进一步开发这些标准。 有关详细信息,请参阅 链接到 MOF 规范的 DMTF 页面,以及 OMI 文档和源

Windows PowerShell 为所需状态配置提供了一组语言扩展,可用于创建和管理声明性配置。

拉取服务器角色

拉取服务器提供集中式服务来存储目标节点可以访问的配置。

拉取服务器角色可以部署为 Web 服务器实例或 SMB 文件共享。 Web 服务器功能包括一个 OData 接口,并且可以选择包括目标节点在应用配置时报告成功或失败确认的功能。 此功能在存在大量目标节点的环境中非常有用。 将目标节点(也称为客户端)配置为指向拉取服务器后,将下载并应用最新的配置数据和任何所需的脚本。 这可以作为一次性部署或重复发生的作业发生,这也使拉取服务器成为大规模管理更改的重要资产。 有关详细信息,请参阅 推送和拉取配置模式

配置规划

对于任何企业软件部署,都可以提前收集一些信息,以帮助规划正确的体系结构,并为完成部署所需的步骤做好准备。 以下部分提供有关如何准备以及可能需要提前进行的组织连接的信息。

软件要求

部署拉取服务器需要 Windows Server 的 DSC 服务功能。 此功能是在 Windows Server 2012 中引入的,并已通过持续发布的 Windows 管理框架 (WMF) 进行了更新。

软件下载

除了从 Windows 更新安装最新内容外,还有两个下载被认为是部署 DSC 拉取服务器的最佳做法:最新版本的 Windows 管理框架,以及用于自动预配拉取服务器的 DSC 模块。

DSC 资源

通过使用 DSC 配置脚本预配服务,可以简化拉取服务器部署。 本文档包括可用于部署生产就绪服务器节点的配置脚本。 若要使用配置脚本,需要 Windows Server 中未包含的 DSC 模块。 所需的模块名称是 xPSDesiredStateConfiguration,其中包括 DSC 资源 xDscWebService。 可以从 PowerShell 库下载 xPSDesiredStateConfiguration 模块。

使用 Install-ModulePowerShellGet 模块中的 cmdlet。

Install-Module xPSDesiredStateConfiguration

PowerShellGet 模块会将模块下载到:

C:\Program Files\Windows PowerShell\Modules

规划任务

  • 您是否有权访问 Windows Server 2012 R2 的安装文件?
  • 部署环境是否可以访问 Internet 以从联机库下载 WMF 和模块?
  • 安装作系统后,您将如何安装最新的安全更新?
  • 环境是否具有 Internet 访问权限以获取更新,还是具有本地 Windows Server Update Services (WSUS) 服务器?
  • 您是否有权访问已通过脱机注入包含更新的 Windows Server 安装文件?

硬件要求

物理服务器和虚拟服务器都支持拉取服务器部署。 拉取服务器的大小调整要求与 Windows Server 2012 R2 的要求一致。

  • CPU:1.4 GHz 64 位处理器
  • 内存: 512 MB
  • 磁盘空间:32 GB
  • 网络:千兆以太网适配器

规划任务

  • 您是在物理硬件上还是在虚拟化平台上部署?
  • 为目标环境请求新服务器的过程是什么?
  • 服务器可用的平均周转时间是多少?
  • 您将要求多大尺寸的服务器?

Accounts

部署拉取服务器实例没有服务帐户要求。 但是,在某些情况下,网站可以在本地用户帐户的上下文中运行。 例如,如果需要访问网站内容的存储共享,并且托管存储共享的 Windows Server 或设备未加入域。

DNS 记录

在配置客户端以使用拉取服务器环境时,您将需要一个服务器名称。 在测试环境中,通常使用服务器主机名,或者如果 DNS 名称解析不可用,则可以使用服务器的 IP 地址。 在生产环境或旨在表示生产部署的实验室环境中,最佳做法是创建 DNS CNAME 记录。

DNS CNAME 允许您创建别名来引用您的主机 (A) 记录。 附加名称记录的目的是在将来需要更改时增加灵活性。 CNAME 可以帮助隔离客户端配置,以便对服务器环境进行更改(例如替换拉取服务器或添加其他拉取服务器)不需要对客户端配置进行相应的更改。

选择 DNS 记录的名称时,请记住解决方案体系结构。 如果使用负载均衡,则用于保护 HTTPS 流量的证书需要与 DNS 记录共享相同的名称。

方案最佳做法

  • 测试环境 - 如果可能,重现计划的生产环境。 服务器主机名适用于简单的配置。 如果 DNS 不可用,则可以使用 IP 地址代替主机名。
  • 单节点部署 - 创建指向服务器主机名的 DNS CNAME 记录。

有关详细信息,请参阅在 Windows Server 中配置 DNS 轮询。

规划任务

  • 您知道要联系谁来创建和更改 DNS 记录吗?
  • 请求 DNS 记录的平均周转时间是多少?
  • 是否需要为服务器请求静态主机名 (A) 记录?
  • 作为 CNAME,您会提出什么要求?
  • 如果需要,您将使用哪种类型的负载平衡解决方案? (有关详细信息,请参阅标题为负载平衡的部分)

公钥基础设施

如今,大多数组织都要求网络流量,尤其是包含服务器配置方式等敏感数据的流量,必须在传输过程中进行验证和/或加密。 虽然可以使用 HTTP 部署拉取服务器,以促进客户端以明文形式请求,但使用 HTTPS 保护流量是最佳实践。 可以使用 DSC 资源 xPSDesiredStateConfiguration 中的一组参数将服务配置为使用 HTTPS。

保护拉取服务器的 HTTPS 流量的证书要求与保护任何其他 HTTPS 网站没有什么不同。 Windows Server 证书服务中的 Web 服务器 模板满足所需的功能。

规划任务

  • 如果证书请求不是自动化的,您需要联系谁来请求证书?
  • 请求的平均周转时间是多少?
  • 证书文件将如何传输给您?
  • 证书私钥将如何转移给您?
  • 默认到期时间是多长时间?
  • 您是否确定了拉取服务器环境的 DNS 名称,可用于证书名称?

选择架构

可以使用 IIS 上托管的 Web 服务或 SMB 文件共享来部署拉取服务器。 在大多数情况下,Web 服务选项将提供更大的灵活性。 HTTPS 流量穿越网络边界的情况并不少见,而 SMB 流量通常在网络之间被过滤或阻止。 Web 服务还提供了包括一致性服务器或 Web 报告管理器(这两个主题将在本文档的将来版本中讨论)的选项,它们为客户端提供了一种将状态报告回服务器以实现集中可见性的机制。 SMB 为策略规定不应使用 Web 服务器的环境以及使 Web 服务器角色不受欢迎的其他环境要求提供了一个选项。 无论哪种情况,请记住评估对流量进行签名和加密的要求。 HTTPS、SMB 签名和 IPSEC 策略都是值得考虑的选项。

负载均衡

与 Web 服务交互的客户端发出请求,请求在单个响应中返回的信息。 不需要顺序请求,因此负载平衡平台无需确保会话在任何时间点都维护在单个服务器上。

规划任务

  • 将使用什么解决方案来跨服务器负载平衡流量?
  • 如果使用硬件负载均衡器,谁将接受向设备添加新配置的请求?
  • 配置新负载均衡 Web 服务的请求的平均周转时间是多少?
  • 请求需要哪些信息?
  • 您是否需要请求额外的 IP,或者负责负载平衡的团队会处理它?
  • 您是否拥有所需的 DNS 记录,负责配置负载均衡解决方案的团队是否需要这些记录?
  • 负载均衡解决方案是否要求设备处理 PKI,或者只要没有会话要求,它就可以对 HTTPS 流量进行负载均衡?

拉取服务器上的暂存配置和模块

作为配置规划的一部分,您需要考虑哪些 DSC 模块和配置将由拉取服务器托管。 出于配置规划的目的,对如何准备内容并将其部署到拉取服务器有一个基本的了解非常重要。

将来,此部分将扩展并包含在 DSC 拉取服务器作指南中。 该指南将讨论随着时间的推移通过自动化管理模块和配置的日常流程。

DSC 模块

请求配置的客户端将需要所需的 DSC 模块。 拉取服务器的一个功能是根据需要自动将 DSC 模块分发到客户端。 如果是第一次部署拉取服务器,可能是作为实验室或概念证明,则可能会依赖于公共存储库(如 PowerShell 库)或 DSC 模块的 PowerShell.org GitHub 存储库中提供的 DSC 模块。

请务必记住,即使对于受信任的联机资源(如 PowerShell 库),从公共存储库下载的任何模块也应由具有 PowerShell 经验和了解模块将使用的环境的人员进行审查,然后才能在生产中使用。 完成此任务时,是检查模块中可以删除的任何其他有效负载(例如文档和示例脚本)的好时机。 这将减少每个客户端在第一个请求中的网络带宽,此时模块将通过网络从服务器下载到客户端。

每个模块必须以特定格式打包,即名为 ModuleName_Version.zip 的 ZIP 文件,其中包含模块有效负载。 将文件复制到服务器后,必须创建一个校验和文件。 当客户端连接到服务器时,校验和用于验证 DSC 模块的内容自发布以来未更改。

New-DscChecksum -ConfigurationPath .\ -OutPath .\

规划任务

  • 如果正在规划测试或实验室环境,哪些方案是验证的关键?
  • 是否有公开可用的模块包含涵盖您需要的所有内容的资源,或者您是否需要编写自己的资源?
  • 您的环境是否可以访问 Internet 来检索公共模块?
  • 谁将负责审查 DSC 模块?
  • 如果您正在规划生产环境,您将使用什么作为存储 DSC 模块的本地存储库?
  • 中央团队是否会接受来自应用程序团队的 DSC 模块? 这个过程会是什么?
  • 您是否会从源存储库自动打包、复制和创建生产就绪 DSC 模块的校验和到服务器?
  • 您的团队是否也负责管理自动化平台?

DSC 配置

拉取服务器的目的是提供一种集中机制,用于将 DSC 配置分发到客户端节点。 配置作为 MOF 文档存储在服务器上。 每个文档都将使用唯一的 Guid 命名。 当客户端配置为与拉取服务器连接时,还会为它们提供应请求的配置的 GuidGuid 的这种引用配置系统保证了全局唯一性,并且非常灵活,因此可以按节点粒度应用配置,或者作为跨多个应具有相同配置的服务器的角色配置。

指南

在考虑拉取服务器部署时,规划配置 Guids 值得额外注意。 对于如何处理 Guid, 没有特定要求,并且每个环境的过程可能是唯一的。 该过程的范围可以从简单到复杂:集中存储的 CSV 文件、简单的 SQL 表、CMDB 或需要与其他工具或软件解决方案集成的复杂解决方案。 有两种一般方法:

  • 为服务器分配 Guid — 提供一种保证措施,确保每个服务器配置都是单独控制的。 这为更新提供了一定程度的精度,并且可以在服务器很少的环境中正常工作。

  • 为每个服务器角色分配 Guid - 执行相同功能的所有服务器(例如 Web 服务器)都使用相同的 GUID 来引用所需的配置数据。 请注意,如果许多服务器共享相同的 GUID,则在配置更改时,所有服务器都会同时更新。

    GUID 应被视为敏感数据,因为恶意意图的人可能会利用它来获取有关如何在环境中部署和配置服务器的情报。 有关详细信息,请参阅 在 PowerShell 所需状态配置拉取模式下安全分配 Guid

规划任务

  • 当配置准备就绪时,谁将负责将配置复制到拉取服务器文件夹?
  • 如果配置是由应用程序团队创作的,则移交配置的过程是什么?
  • 您是否会利用存储库来跨团队创作配置时存储配置?
  • 您是否会自动执行将配置复制到服务器并在配置准备就绪时创建校验和的过程?
  • 如何将 Guid 映射到服务器或角色,以及将其存储在哪里?
  • 将使用什么作为配置客户端计算机的过程,它如何与创建和存储配置 Guid 的过程集成?

安装指南

本文档中给出的脚本是稳定的示例。 在生产环境中执行脚本之前,请务必仔细查看脚本。

先决条件

若要验证服务器上的 PowerShell 版本,请使用以下命令。

$PSVersionTable.PSVersion

如果可能,请升级到最新版本的 Windows 管理框架。 接下来,使用以下命令下载 xPsDesiredStateConfiguration 模块。

Install-Module xPSDesiredStateConfiguration

该命令将在下载模块之前征求您的批准。

安装和配置脚本

部署 DSC 拉取服务器的最佳方法是使用 DSC 配置脚本。 本文档将介绍脚本,包括仅配置 DSC Web 服务的基本设置和配置 Windows Server 端到端(包括 DSC Web 服务)的高级设置。

注意:目前DSC xPSDesiredStateConfiguration 模块要求服务器 EN-US 区域设置。

Windows Server 2012 的基本配置

# This is a very basic Configuration to deploy a pull server instance in a lab
# environment on Windows Server 2012.

Configuration PullServer {
Import-DscResource -ModuleName xPSDesiredStateConfiguration

        # Load the Windows Server DSC Service feature
        WindowsFeature DSCServiceFeature
        {
          Ensure = 'Present'
          Name = 'DSC-Service'
        }

        # Use the DSC Resource to simplify deployment of the web service
        xDSCWebService PSDSCPullServer
        {
          Ensure = 'Present'
          EndpointName = 'PSDSCPullServer'
          Port = 8080
          PhysicalPath = "$env:SYSTEMDRIVE\inetpub\wwwroot\PSDSCPullServer"
          CertificateThumbPrint = 'AllowUnencryptedTraffic'
          ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
          ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
          State = 'Started'
          DependsOn = '[WindowsFeature]DSCServiceFeature'
        }
}
PullServer -OutputPath 'C:\PullServerConfig\'
Start-DscConfiguration -Wait -Force -Verbose -Path 'C:\PullServerConfig\'

Windows Server 2012 R2 的高级配置

# This is an advanced Configuration example for Pull Server production deployments
# on Windows Server 2012 R2. Many of the features demonstrated are optional and
# provided to demonstrate how to adapt the Configuration for multiple scenarios
# Select the needed resources based on the requirements for each environment.
# Optional scenarios include:
#      * Reduce footprint to Server Core
#      * Rename server and join domain
#      * Switch from SSL to TLS for HTTPS
#      * Automatically load certificate from Certificate Authority
#      * Locate Modules and Configuration data on remote SMB share
#      * Manage state of default websites in IIS

param (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [System.String] $ServerName,
        [System.String] $DomainName,
        [System.String] $CARootName,
        [System.String] $CAServerFQDN,
        [System.String] $CertSubject,
        [System.String] $SMBShare,
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [PsCredential] $Credential
    )

Configuration PullServer {
    Import-DscResource -ModuleName xPSDesiredStateConfiguration, xWebAdministration, xCertificate, xComputerManagement
    Node localhost
    {

        # Configure the server to automatically corret configuration drift including reboots if needed.
        LocalConfigurationManager
        {
            ConfigurationMode = 'ApplyAndAutoCorrect'
            RebootNodeifNeeded = $node.RebootNodeifNeeded
            CertificateId = $node.Thumbprint
        }

        # Remove all GUI interfaces so the server has minimum running footprint.
        WindowsFeature ServerCore
        {
            Ensure = 'Absent'
            Name = 'User-Interfaces-Infra'
        }

        # Set the server name and if needed, join a domain. If not joining a domain, remove the DomainName parameter.
        xComputer DomainJoin
        {
            Name = $Node.ServerName
            DomainName = $Node.DomainName
            Credential = $Node.Credential
        }

        # The next series of settings disable SSL and enable TLS, for environments where that is required by policy.
        Registry TLS1_2ServerEnabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server'
            ValueName = 'Enabled'
            ValueData = 1
            ValueType = 'Dword'
        }

        Registry TLS1_2ServerDisabledByDefault
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server'
            ValueName = 'DisabledByDefault'
            ValueData = 0
            ValueType = 'Dword'
        }

        Registry TLS1_2ClientEnabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
            ValueName = 'Enabled'
            ValueData = 1
            ValueType = 'Dword'
        }

        Registry TLS1_2ClientDisabledByDefault
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
            ValueName = 'DisabledByDefault'
            ValueData = 0
            ValueType = 'Dword'
        }

        Registry SSL2ServerDisabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server'
            ValueName = 'Enabled'
            ValueData = 0
            ValueType = 'Dword'
        }

        # Install the Windows Server DSC Service feature
        WindowsFeature DSCServiceFeature
        {
            Ensure = 'Present'
            Name = 'DSC-Service'
        }

        # If using a certificate from a local Active Directory Enterprise Root Certificate Authority,
        # complete a request and install the certificate
        xCertReq SSLCert
        {
            CARootName = $Node.CARootName
            CAServerFQDN = $Node.CAServerFQDN
            Subject = $Node.CertSubject
            AutoRenew = $Node.AutoRenew
            Credential = $Node.Credential
        }

        # Use the DSC resource to simplify deployment of the web service.  You might also consider
        # modifying the default port, possibly leveraging port 443 in environments where that is
        # enforced as a standard.
        xDSCWebService PSDSCPullServer
        {
            Ensure = 'Present'
            EndpointName = 'PSDSCPullServer'
            Port = 8080
            PhysicalPath = "$env:SYSTEMDRIVE\inetpub\wwwroot\PSDSCPullServer"
            CertificateThumbPrint = 'CertificateSubject'
            CertificateSubject = $Node.CertSubject
            ModulePath = "$($Node.SMBShare)\DscService\Modules"
            ConfigurationPath = "$($Node.SMBShare)\DscService\Configuration"
            State = 'Started'
            DependsOn = '[WindowsFeature]DSCServiceFeature'
        }

        # Validate web config file contains current DB settings
        xWebConfigKeyValue CorrectDBProvider
        {
            ConfigSection = 'AppSettings'
            Key = 'dbprovider'
            Value = 'System.Data.OleDb'
            WebsitePath = 'IIS:\sites\PSDSCPullServer'
            DependsOn = '[xDSCWebService]PSDSCPullServer'
        }
        xWebConfigKeyValue CorrectDBConnectionStr
        {
            ConfigSection = 'AppSettings'
            Key = 'dbconnectionstr'
            Value = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\WindowsPowerShell\DscService\Devices.mdb;'
            WebsitePath = 'IIS:\sites\PSDSCPullServer'
            DependsOn = '[xDSCWebService]PSDSCPullServer'
        }

        # Stop the default website
        xWebsite StopDefaultSite
        {
            Ensure = 'Present'
            Name = 'Default Web Site'
            State = 'Stopped'
            PhysicalPath = 'C:\inetpub\wwwroot'
            DependsOn = '[WindowsFeature]DSCServiceFeature'
        }
    }
}

$configData = @{
    AllNodes = @(
        @{
            NodeName = 'localhost'
            ServerName = $ServerName
            DomainName = $DomainName
            CARootName = $CARootName
            CAServerFQDN = $CAServerFQDN
            CertSubject = $CertSubject
            AutoRenew = $true
            SMBShare = $SMBShare
            Credential = $Credential
            RebootNodeifNeeded = $true
            CertificateFile = 'c:\PullServerConfig\Cert.cer'
            Thumbprint = 'B9A39921918B466EB1ADF2509E00F5DECB2EFDA9'
            }
        )
    }

PullServer -ConfigurationData $configData -OutputPath 'C:\PullServerConfig\'
Set-DscLocalConfigurationManager -ComputerName localhost -Path 'C:\PullServerConfig\'
Start-DscConfiguration -Wait -Force -Verbose -Path 'C:\PullServerConfig\'

# .\Script.ps1 -ServerName web1 -domainname 'test.pha' -carootname 'test-dc01-ca' -caserverfqdn 'dc01.test.pha' -certsubject 'CN=service.test.pha' -smbshare '\\sofs1.test.pha\share'

验证拉取服务器功能

# This function is meant to simplify a check against a DSC pull server. If you do not use the
# default service URL, you will need to adjust accordingly.
function Verify-DSCPullServer ($fqdn) {
    ([xml](Invoke-WebRequest "https://$($fqdn):8080/psdscpullserver.svc" | % Content)).service.workspace.collection.href
}

Verify-DSCPullServer 'INSERT SERVER FQDN'
Expected Result:
Action
Module
StatusReport
Node

配置客户端

Configuration PullClient {
    param(
        $ID,
        $Server
    )
    LocalConfigurationManager
    {
        ConfigurationID = $ID;
        RefreshMode = 'PULL';
        DownloadManagerName = 'WebDownloadManager';
        RebootNodeIfNeeded = $true;
        RefreshFrequencyMins = 30;
        ConfigurationModeFrequencyMins = 15;
        ConfigurationMode = 'ApplyAndAutoCorrect';
        DownloadManagerCustomData = @{
            ServerUrl = "http://"+$Server+":8080/PSDSCPullServer.svc"
            AllowUnsecureConnection = $true
        }
    }
}

PullClient -ID 'INSERTGUID' -Server 'INSERTSERVER' -Output 'C:\DSCConfig\'
Set-DscLocalConfigurationManager -ComputerName 'Localhost' -Path 'C:\DSCConfig\' -Verbose

其他参考资料、代码片段和示例

此示例演示如何手动启动客户端连接(需要 WMF5)进行测试。

Update-DscConfiguration -Wait -Verbose

Add-DnsServerResourceRecordName cmdlet 用于将类型 CNAME 记录添加到 DNS 区域。

用于 创建校验和并将 DSC MOF 发布到 SMB 拉取服务器 的 PowerShell 函数会自动生成所需的校验和,然后将 MOF 配置和校验和文件复制到 SMB 拉取服务器。

附录 - 了解 ODATA 服务数据文件类型

存储数据文件以在部署包含 OData Web 服务的拉取服务器期间创建信息。 文件类型取决于作系统,如下所述。

  • Windows Server 2012 - 文件类型始终为 .mdb
  • Windows Server 2012 R2 - 除非在配置中指定了 a.mdb,否则文件类型将默认为.edb

在安装拉取服务器的 高级示例脚本 中,您还将找到一个示例,说明如何自动控制 web.config 文件设置以防止因文件类型而导致的任何错误。