密封 Commerce 自助服务组件批量部署

重要

本文中介绍的部分或全部功能作为预览版的一部分提供。 内容和功能可能会发生变化。 有关预览版的详细信息,请参阅 One Version 服务更新常见问题

警告

Commerce Scale Unit (CSU) 更新到 10.0.29 或更高版本后,销售点(Modern POS 或 Store Commerce)版本必须为 10.0.27 或更高版本(在销售点中为版本 9.27)。 这是由于要迁移到 .NET Core。

本文适用于密封框架,即从 10.0.18 版本开始每月发布的组件安装程序,这些安装程序在 Microsoft Dynamics Lifecycle Services (LCS) 的共用资产库中可用。 请注意,这些新安装程序的前几个版本被指定为(预览版)。 但是,此指定的唯一目的是区分新的安装程序,而 Microsoft 则确定使用这些功能是否存在其他功能要求。 这并不意味着安装程序对生产无效。 根据这些新安装程序的发布,Microsoft 计划在 2023 年 10 月或前后弃用旧的(旧版)安装程序。

本文说明如何使用新安装程序通过命令行参数执行静默安装和服务更新。 这些参数允许您以几种不同的方式进行大规模部署。

注释

  • Commerce headquarters 中不会提供自助式密封安装程序,只能通过 LCS 下载这些程序。
  • 从 Commerce 版本 10.0.32 版开始,.NET 6 是密封自助服务组件的先决条件。

大规模部署的分隔符

下表显示了可以在命令行执行中使用的分隔符。

分隔符 Description
-AadTokenIssuerPrefix Microsoft Azure Active Directory (Azure AD) 令牌颁发者的前缀。
-AsyncClientAadClientId Async Client 在与 Headquarters 通信期间应使用的 Azure AD 客户端 ID。
-AsyncClientAppInsightsInstrumentationKey Async Client AppInsights 检测密钥。
-AsyncClientCertFullPath 完全格式化的 URN 路径,此路径使用指纹作为 Async Client 身份证书位置的搜索指标,此指标应该用于向 Azure AD 进行身份验证以与 Headquarters 通信。 例如,store://My/LocalMachine?FindByThumbprint=<MyThumbprint> 是格式正确的 URN。 值 <MyThumbprint> 将被替换为应使用的证书指纹。 不要将此参数与 -AsyncClientCertThumbprint 参数一起使用。
-AsyncClientCertThumbprint 应该用于向 Azure AD 进行身份验证以与 Headquarters 通信的 Async Client 标识证书的指纹 此指纹将用于搜索 LocalMachine/我的商店位置和名称,以查找要使用的正确证书。 不要将此参数与 -AsyncClientCertFullPath 参数一起使用。
-ClientAppInsightsInstrumentationKey 客户端 AppInsights 检测密钥。
-CloudPosAppInsightsInstrumentationKey 云 POS AppInsights 检测密钥。
-Config 安装期间应使用的配置文件。 Contoso.CommerceScaleUnit.xml 是文件名的一个示例。
-CposAadClientId 云 POS 在设备激活期间应使用的 Azure AD 客户端 ID。 本地部署不需要此参数。
-Device 设备 ID,如 Headquarters 的设备页面上所示。
-EnvironmentId 环境 ID。
-HardwareStationAppInsightsInstrumentationKey Hardware Station AppInsights 检测键。
--InPlaceUpgradeFromModernPOS 用于从 Modern POS 升级到 Store Commerce。 除非使用其他参数,否则默认假设是捕获 Modern POS 设备令牌,然后卸载 Modern POS。
安装 一个指定是否应安装此安装程序提供的组件的参数。 此参数是执行安装的必需参数,没有前导短划线字符。
-InstallOffline 对于 Modern POS,此参数指定还应安装和配置脱机数据库。 也使用 -SQLServerName 参数。 否则,安装程序将尝试查找满足先决条件的默认实例。 使用 Azure Active Directory (Azure AD) 身份验证时,POS 脱机将无法正常工作,因为始终需要在线连接。
-Port 应与 Retail Server 虚拟目录关联并由其使用的端口。 如果未设置端口,将使用默认端口 443。
-Register 收银机 ID,如 Headquarters 的收银机页面上所示。
-RetailServerAadClientId Retail Server 在与 Headquarters 通信期间应使用的 Azure AD 客户端 ID。
-RetailServerAadResourceId 设备激活期间应使用的 Retail Server Azure AD 应用资源 ID。 本地部署不需要此参数。
-RetailServerCertFullPath 完全格式化的 URN 路径,此路径使用指纹作为 Retail Server 身份证书的搜索指标,此指标应该用于向 Azure AD 进行身份验证以与 Headquarters 通信。 例如,store://My/LocalMachine?FindByThumbprint=<MyThumbprint> 是格式正确的 URN,其中,值 <MyThumbprint> 将被替换为应使用的证书指纹。 不要将此参数与 -RetailServerCertThumbprint 参数一起使用。
-RetailServerCertThumbprint 应该用于向 Azure AD 进行身份验证以与 Headquarters 通信的 Retail Server 标识证书的指纹 此指纹将用于搜索 LocalMachine/我的商店位置和名称,以查找要使用的正确证书。 不要将此参数与 -RetailServerCertFullPath 参数一起使用。
-RetailServerURL 安装程序应使用的 Retail Server URL。 (此 URL 也称为 Commerce Scale Unit [CSU] URL。)对于 Modern POS,将在设备激活期间使用此值。
-SkipAadCredentialsCheck 一个指示是否应跳过 Azure AD 凭据先决条件检查的开关。 默认值为 false
-SkipCertCheck 一个指示是否应跳过证书先决条件检查的开关。 默认值为 false
--SkipEnhancedModernPOSUpgradeValidation 跳过在从 Modern POS 执行设备令牌捕获之前运行的标准验证的切换。 此标志应仅在测试环境中使用,不应在生产环境中使用。
-SkipIisCheck 一个指示是否应跳过 Internet Information Services (IIS) 先决条件检查的开关。 默认值为 false
-SkipNetFrameworkCheck 一个指示是否应跳过 .NET Framework 先决条件检查的开关。 默认值为 false
-SkipScaleUnitHealthcheck 一个指示是否应跳过已安装组件的运行状况检查的开关。 默认值为 false
-SkipSChannelCheck 一个指示是否应跳过安全通道先决条件检查的开关。 默认值为 false
-SkipSqlFullTextCheck 一个指示是否应跳过需要全文搜索的 SQL Server 先决条件验证的开关。 默认值为 false
-SkipSqlServerCheck 一个指示是否应跳过 SQL Server 先决条件检查的开关。 默认值为 false
--SkipUninstallModernPOSAfterUpgrade 在执行升级到 Store Commerce 和从 Modern POS 捕获设备令牌后跳过 Modern POS 卸载的切换。
-SqlServerName SQL Server 名称。 如果未指定名称,安装程序将尝试查找默认实例。
-SslcertFullPath 完全格式化的 URN 路径,它使用指纹作为证书位置的搜索指标,此指标用于加密到缩放单元的 HTTP 流量。 例如,store:\/\/My\/LocalMachine\?FindByThumbprint\=\<MyThumbprint\> 是格式正确的 URN,其中,值 <MyThumbprint> 将被替换为应使用的证书指纹。 不要将此参数与 -SslCertThumbprint 参数一起使用。
-SslCertThumbprint 应该用于加密到缩放单元的 HTTP 流量的证书指纹。 此指纹将用于搜索 LocalMachine/我的商店位置和名称,以查找要使用的正确证书。 不要将此参数与 -SslCertFullPath 参数一起使用。
-StoreSystemAosUrl Headquarters (AOS) URL。
-StoreSystemChannelDatabaseId 渠道数据库 ID(名称)。
-TenantId Azure AD 租户 ID。
-TransactionServiceAzureAuthority Transaction Service Azure AD 主管机构。
-TransactionServiceAzureResource Transaction Service Azure AD 资源。
-TrustSqlServerCertificate 一个指示在建立与 SQL Server 的连接时是否应信任服务器证书的开关。 为了帮助避免安全风险,生产部署绝不应在此处提供 true 值。 默认值为 false
--UseCommonApplicationData 更改设备令牌位置的切换。 令牌不是在用户上下文中,而是存储在共享位置,以便所有 Windows 用户都可以访问相同的令牌,从而允许使用 Store Commerce,而不论是否是活动用户。 用户必须仍然在 RetailChannelUsers 组中。
-Verbosity 安装期间请求的日志记录级别。 通常,不应使用此值。
-WindowsPhoneAppInsightsInstrumentationKey Hardware Station AppInsights 检测键。

一般概览

自助服务安装程序的新框架具有各种功能和改进。 此新框架当前仅为 Modern POS、Hardware Station 和 CSU(自托管)生成安装程序。 了解密封安装程序的基本命令行使用方法非常重要,这应与以下示例中使用的内容相似。

<Component Installer Name>.exe install --<Parameter Name> "<Parameter Information>"

安装程序需要使用参数 install(或用于删除安装的 uninstall)和特定于该安装的任何参数。 参数名称应包含所需的任何参数,如收银机、CSU URL 或证书信息。 参数信息应包含有关参数的任何附加信息。

已创建密封框架以允许进行以下更改:

  • 已密封 - 新的安装程序框架将 Microsoft 分配的基础组件安装程序与基于扩展性的自定义项完全分开。 之后将安装自定义项,但随后将不受更新限制(因此仅允许更新 Microsoft 基本组件、自定义项或两者都允许更新)。
  • 无 GUI - 不再存在用户界面 (UI)。 相反,每个组件安装程序都有完全由命令行驱动的可执行项。 此更改是用于聚焦新安装程序框架以用于批量部署的多个关键更改或功能之一。
  • 更深入的日志记录 - 增强的安装程序日志允许更好地验证安装是否完成或失败、执行的步骤以及生成的任何警告或错误。
  • 清除 - 在新框架中,组件安装程序通过在安装较新组件之前清除组件文件夹的全部内容,更加努力地保持安装目录的清洁。 此清理可确保没有可能导致问题并阻止成功安装的剩余文件。

三个组件尚未迁移到新框架:虚拟外围设备模拟器、Async Server Connector service(用于 Dynamics AX 2012 R3 支持)和 Real-time Service 替换(用于 Dynamics AX 2012 R3 支持)。

注释

安装程序在本地存储并保留。 随着时间的推移,管理或删除保留的安装程序以免浪费磁盘空间非常重要。 建议保留基本组件的当前安装程序和最新版本的任何扩展安装程序,以便从极端情况中恢复。

迁移

从旧的自助服务框架组件安装程序迁移到新的框架组件安装程序需要卸载旧组件。

  • Modern POS - 新的安装程序框架使应用程序接收到一个新的应用程序签名 ID。 因此,在安装新框架 Modern POS 组件之前,需要完全卸载旧组件。 由于需要完全卸载,因此需要再次激活设备。 (此设备重新激活是一次性要求,前提是不再发生卸载。)
  • Hardware station – 作为 IIS 网站,新的安装程序框架要求对基本文件夹结构进行重新设计。 因此,在安装新框架 Hardware station 组件之前,需要完全卸载旧组件。
  • Commerce Scale Unit(CSU,自托管) - 作为一系列 IIS 网站,新的安装程序框架要求对基本文件夹结构进行重新设计。 因此,在安装新框架 CSU(自托管)组件之前,需要完全卸载旧组件。

Modern POS

开始之前

删除旧的自助服务 Modern POS 组件至关重要。 有关详细信息,请参阅本文前面的迁移步骤。 作为附加要求,所使用的 SQL 实例必须同时具有 Windows 身份验证SQL Server 身份验证模式。 您可以在 SQL Server Management Studio 中属性窗口中的安全性副标题下管理和更改此配置。

注释

在开发人员拓扑或演示环境等单计算机系统上,或者当 Commerce Scale Unit 和 Modern POS 安装在同一台计算机上时,Store Commerce 可能无法完成设备激活。 出现此问题的原因是 Store Commerce 无法对同一台计算机进行网络调用(即对其自身进行调用)。 生产设置中永远不会出现此场景,但如果出现,可以通过启用 AppContainer 回送异常来缓解此问题,以可以在同一台计算机上进行通信。 各个应用程序都是公开可用的,以帮助实现此回送。 有关回送的详细信息,请参阅如何启用回送和排除网络隔离故障。 了解回送可能存在安全风险很重要,因此除非绝对必要,否则不建议您使用回送。

静默部署示例

本节显示用于安装 Modern POS 的命令示例。

静默安装 Modern POS

以下命令将静默安装(或更新)Modern POS。 它具有标准命令结构,此结构用于对当前安装的组件进行静默维护。 该结构使用 <InstallerName>.exe 的基本值。

如果请求安装,则以下基本命令将展示可用选项。 强烈建议在首次测试或使用安装程序时使用此命令。

CommerceModernPOS.exe help install

注释

Modern POS 不需要配置文件。 安装程序现在具有在设备激活期间使用的各种值的参数(如本文前面所示)。

以下命令指定安装 Modern POS 应用程序后在设备激活期间应使用的所有参数。 此示例使用 Houston-3 收银机,它是 Dynamics 365 Commerce 演示数据中常用的值。

CommerceModernPOS.exe install --Register "Houston-3" --Device "Houston-3" --RetailServerURL "https://MyDynamics365CommerceURL.dynamics.com/Commerce"

以下命令指定应该用于安装和配置脱机数据库的参数。 SQL Server 与应该使用的配置文件一起指定。 除非使用受信任的 SQL 证书,否则需要 --TrustSqlServerCertificate 参数。 我们不建议您在生产环境中安装时跳过检查。

CommerceModernPOS.exe install -InstallOffline -SQLServerName "SQLExpress" -Config "ModernPOS.Houston-3.xml" 

以下命令指定从 Modern POS 升级到 Store Commerce(使用离线数据库)时应使用的参数。 这些参数捕获 Modern POS 使用的设备令牌(无需手动设备激活过程),然后卸载 Modern POS。 SQL Server 与应该使用的配置文件一起指定。

CommerceModernPOS.exe install -InstallOffline -SQLServerName "SQLExpress" --InPlaceUpgradeFromModernPOS

您可以混合搭配这些概念,以达到您想要的安装效果。

硬件工作站

开始之前

删除旧的自助服务 Hardware station 组件至关重要。 有关详细信息,请参阅本文前面的迁移步骤。 不再存在商家帐户信息工具。 而是在 POS 终端与 Hardware station 配对时安装商家帐户信息。 首次测试此安装程序时,强烈建议您运行以下命令:

CommerceHardwareStation.exe help install

静默部署示例

本节显示用于安装 Hardware station 的命令示例。

静默安装 Hardware Station

以下命令将静默安装(或更新)Hardware Station。 它具有标准命令结构,此结构用于维护当前安装的组件。 该结构使用 <InstallerName>.exe 的基本值。

以下基本命令运行可执行文件安装程序。

HardwareStation.exe install --Port 443 --CSUURL "https://MyDynamics365CommerceURL.dynamics.com/" --StoreSystemChannelDatabaseID "Houston" --CertThumbprint "MySSLCertificateThumbprintOftenHasNumbers"

注释

Hardware Station 不需要配置文件。 安装程序现在具有所需的各种值的参数(如本文前面所示)。

以下命令指定在标准安装期间跳过先决条件检查所需的所有参数。

注释

我们不建议您跳过检查,除非您提前进行了彻底的测试,开发过程中除外。 我们不建议您在生产环境中安装时跳过检查。

HardwareStation.exe install --SkipFirewallUpdate --SkipOPOSCheck --SkipVersionCheck --SkipURLCheck --Config "HardwareStation.Houston.xml"

按照惯例,通常会混合搭配这些概念,以达到您想要的安装效果。

Commerce Scale Unit(自托管)

首次测试此安装程序时,强烈建议您运行以下命令:

CommerceStoreScaleUnitSetup.exe help install

开始之前

删除旧的自助服务 CSU(自托管)组件至关重要。 有关详细信息,请参阅本文前面的迁移步骤。

静默部署示例

本节显示用于安装 CSU(自托管)的命令示例。

静默安装 CSU(自托管)

以下命令将静默安装(或更新)CSU(自托管)。 它具有标准命令结构,此结构用于对当前安装的组件进行静默维护。 该结构使用 <InstallerName>.exe 的基本值。

与其他自助安装程序相比,Commerce Scale Unit (CSU) 更复杂,需要相当多的附加信息。 以下命令是不存在配置文件时运行可执行文件安装程序所需的最少命令(带参数)。 除非使用受信任的 SQL 证书,否则需要 --TrustSqlServerCertificate 参数。

CommerceScaleUnit.exe install --port 446 --SSLCertThumbprint "MySSLCertificateThumbprintOftenHasNumbers" --RetailServerCertFullPath "store://My/LocalMachine?FindByThumbprint=MyCertificateThumbprintUsedByRetailServer" --AsyncClientAADClientID "MyAAD-Client-IDFor-AsyncClient" --RetailServerAADClientID "MyAAD-Client-IDFor-RetailServer" --CPOSAADClientID "MyAAD-Client-IDFor-CloudPOS" --RetailServerAADResourceID "https://retailstorescaleunit.retailserver.com" --Config "Contoso.StoreSystemSetup.xml"

注释

CSU(自托管)仍需要配置文件。

以下命令是一个更彻底的命令,它使用一些替代参数运行可执行文件安装程序。 除非使用受信任的 SQL 证书,否则需要 --TrustSqlServerCertificate 参数。

CommerceScaleUnit.exe install --Port 446 --SSLCertFullPath "store://My/LocalMachine?FindByThumbprint=MySSLCertificateThumbprintOftenHasNumbers" --AsyncClientCertFullPath "store://My/LocalMachine?FindByThumbprint=MySSLCertificateThumbprintOftenHasNumbers" --RetailServerCertFullPath "store://My/LocalMachine?FindByThumbprint=MyCertificateThumbprintUsedByRetailServer" --AsyncClientAADClientID "MyAAD-Client-IDFor-AsyncClient" --RetailServerAADClientID "MyAAD-Client-IDFor-RetailServer" --CPOSAADClientID "MyAAD-Client-IDFor-CloudPOS" --RetailServerAADResourceID "https://retailstorescaleunit.retailserver.com" --Verbosity 0 --Config "Contoso.StoreSystemSetup.xml"

以下命令指定在标准安装期间跳过先决条件检查所需的参数。

注释

  • 我们不建议您跳过检查,除非您提前进行了彻底的测试,开发过程中除外。 我们不建议您在生产环境中安装时跳过检查。
  • 除非使用受信任的 SQL 证书,否则需要 --TrustSqlServerCertificate 参数。
CommerceScaleUnit.exe install --skipscaleunithealthcheck --skipcertcheck --skipaadcredentialscheck --skipschannelcheck --skipiischeck --skipnetcorebundlecheck --skipsqlservercheck --skipnetframeworkcheck --skipversioncheck --skipurlcheck --Config "Contoso.StoreSystemSetup.xml" --SSLCertFullPath "store://My/LocalMachine?FindByThumbprint=MySSLCertificateThumbprintOftenHasNumbers" --AsyncClientCertFullPath "store://My/LocalMachine?FindByThumbprint=MySSLCertificateThumbprintOftenHasNumbers" --RetailServerCertFullPath "store://My/LocalMachine?FindByThumbprint=MyCertificateThumbprintUsedByRetailServer" --AsyncClientAADClientID "MyAAD-Client-IDFor-AsyncClient" --RetailServerAADClientID "MyAAD-Client-IDFor-RetailServer" --CPOSAADClientID "MyAAD-Client-IDFor-CloudPOS" --RetailServerAADResourceID "https://retailstorescaleunit.retailserver.com"

您可以混合搭配这些概念,以达到您想要的安装效果。