关于在 System Center 2012 Configuration Manager 内部署应用程序目录的提示与窍门

应用程序目录是 System Center 2012 Configuration Manager 中一项激动人心的全新功能。近日,Dave Randall 发布了一篇有助于您计划应用程序目录部署,并为用户提供卓越体验的出色博文。

本博文提供了有关如何在您的环境中部署应用程序目录的更多信息,这些信息可能有助于您避免常见的隐患,本博文还提供了一些疑难解答提示,这些提示可帮助我们解决经常在客户使用情形中看到和听到的一些典型问题。这些信息也反映出了 System Center 2012 Configuration Manager 论坛中常见的一些问题。

目录

应用程序目录部署提示:

  • 设置应用程序目录的外观方案
  • 支持不受信任的林中的用户
  • 通过使用 HTTPS 确保通信安全
  • 自定义通信端口
  • 支持多个语言
  • 其他计划提示

验证提示:

  • 在安装角色前验证必备组件
  • 验证角色的安装
  • 验证是否配置了客户端设置
  • 验证客户端能否与应用程序目录通信

应用程序目录部署提示

设置应用程序目录的外观方案

您可将网站的颜色主题设置为您认为适合您组织的任何颜色。此外,您可指定用户将在页面左下角中见到的组织名称。当您安装应用程序目录网站角色时,这些选项将在 [Add Site System Role Wizard](添加站点系统角色向导)中可用,而在角色安装后,这些选项将在 [Application Catalog Website Properties](应用程序目录网站属性)中可用。

支持多个域或限制用户访问

当安装完应用程序目录角色后,默认权限将允许同一域的域用户浏览应用程序目录。由于应用程序目录将使用 Windows 身份验证,因此您可为以下文件夹添加和删除权限,以配置可访问网站的用户或组:

  • CMApplicationCatalog 文件夹
  • CMApplicationCatalog\Content\Images\AppIcons folder

请注意,如果您重新安装应用程序目录网站角色,修改现有角色的协议,或更改主站点的语言选择,那么系统将这些权限重设为默认值。

支持不受信任的林中的用户

如果您计划支持不受信任的林中的用户,那么应用程序目录必须能够对连接到自身的用户进行身份验证。两个应用程序目录角色将灵活支持这一应用场景。要支持这一配置,请执行以下操作:

  • 在与站点数据库位于同一林中的站点系统服务器上安装应用程序目录 Web 服务角色。
  • 在位于不受信任的林中的站点系统服务器上安装应用程序目录网站。要进行这一操作,请指定在站点服务器计算机拥有本地管理权限的站点系统安装帐户,来安装角色,并向站点服务器发送状态消息。完成安装后,应用程序目录网站角色将使用证书(自签名证书或 PKI 证书)与林安全边界内的应用程序目录 Web 服务角色通信。关于
    此通信保护方式的更多信息,请参阅 Configuration Manager 中使用的加密控制的技术参考的“服务器通信加密控制”部分。
  • 请确保您为不受信任的域运行“用户发现”或“用户组发现”,以支持属于这些域的用户。

通过使用 HTTPS 确保通信安全

您可配置应用程序目录 Web 服务角色和应用程序目录网站角色,以使用 HTTPS 来为 Intranet 设置额外一层保护。如果用户将从 Internet 连接到应用程序目录,那么您必须为 HTTPS 配置应用程序目录网站点。

在您选择 HTTPS 配置之前,请检查以下内容:

  • 系统为 IIS 配置了一个分配了端口编号的 HTTPS 绑定(默认端口编号为 443)。
  • 系统为符合 Configuration Manager PKI 证书要求的 Web 服务器证书配置了该绑定。
  • 针对您所选定的端口编号的 IIS 绑定未向同一端口分配另一证书。您可运行以下命令来检查证书列表:netsh http show sslcert
  • 如果您正在规划实现基于 Internet 的客户端管理,那么请确保您将在站点系统属性中指定 Internet FQDN。
  • 请确保证书在主题名称或主题备用名称中包含站点系统计算机的 Intranet FQDN,特别是在 Internet FQDN 与 Intranet FQDN 不同时,应尤为注意这一点。

自定义通信端口

如果您希望应用程序目录网站点或应用程序目录 Web 服务点使用非默认的端口,则请执行以下步骤:

  • 创建一个新的 IIS 网站,并为非默认端口编号指定绑定(如果使用 HTTPS,则指定 PKI 证书)。
  • 验证新 IIS 网站能否运行。例如,在运行 IIS 的计算机上的浏览器中键入 https://localhost:<port> 或 https://localhost:<port>,并确认您将看到 IIS 欢迎屏幕。并检查防火墙是否配置为允许通过指定的端口通信。
  • 在您安装应用程序目录角色时,指定新 IIS 网站名称和非默认端口编号。安装完成后,无法更改端口编号,如果您希望更改,则必须删除应用程序目录角色,并重新安装这些角色。
  • 请注意,Configuration Manager 不会为非默认网站或端口编号配置 IIS,必须在安装应用程序目录站点系统角色之前,在 IIS 中配置这些内容。

支持多个语言

应用程序目录可基于用户的区域设置而以不同语言显示信息:

  • 应用程序目录将基于 Internet Explorer 中的语言选择来确定用户的区域设置。您可在“Internet 选项”中的“常规”选项卡中找到语言设置。应用程序目录仅将选取列表中指定的首个语言。在大多数情况中,Internet 选项中选择的主要语言与操作系统的区域设置一致。
  • 您可从“Configuration Manager 安装程序”中选择客户端语言,进而为应用程序目录添加或删除语言。请注意,应用程序目录用户界面将基于客户端语言选择,而非服务器语言选择进行配置。
  • 应用程序目录将基于应用程序的本地化信息而显示应用程序信息,例如名称或描述。您可在应用程序属性的“应用程序目录”选项卡中以一个或多个语言来指定这一信息。应用程序目录将以用户的语言或任何父级语言显示本地化的信息(如可用)。否则,应用程序目录将返回其在应用程序属性中指定的默认语言。

其他计划提示:

  • 默认情况下,您在使用 HTTPS 时,系统将使用应用程序目录网站点属性中指定的 NetBIOS 名称来组成面向 Intranet 客户端的应用程序目录 URL,这可能使系统在您浏览到应用程序目录时显示出一个证书警报。要避免这一警报,请在客户端设置中将针对默认应用程序目录网站点的 URL 配置为与证书的主题名称一致。
  • 您可为每个应用程序目录角色分别指定 HTTP 或 HTTPS 选项,但是为了增强安全性,我们并不建议您使用 HTPPS。客户端将使用 HTTPS 或者使用 HTTP 以及用于客户端身份验证的 PKI 客户端证书来与管理点通信,这虽然是 Intranet 上的可选方式,但是我们建议您使用这一方式。Configuration Manager 将为每个角色灵活配置通信选项。例如,在 Intranet 上,您可为 HTTPS 配置应用程序目录网站点,但是客户端可通过使用 HTTP 来连接到一个管理连接点,反之亦然。
  • 您可通过更改 IIS 中的 SSL 绑定来为现有应用程序目录角色更改证书。进行这一操作时,配置生效需要一些时间。
  • 如果您在应用程序目录网站点属性中的 [HTTP Allowed connection](允许 HTTP 连接)或 [HTTPS Allowed connection](允许 HTTPS 连接)选项中切换,那么这一操作将为新设置重新安装网站角色,这将重设当前域的域用户组对应用程序目录网站文件夹的权限。您仅可更改应用程序目录网站角色的这一设置,而无法为应用程序目录 Web 服务角色更改。
  • 您可在同一主站点中安装多个应用程序目录 Web 服务和网站角色。例如,如果有多个不受信任的林,那么您可在各个不受信任的林中安装一个应用程序目录网站点,并在站点服务器林中安装一个或多个应用程序目录 Web 服务点。
  • 来自一个主站点的用户可在另一主站点中使用应用程序目录网站点。

您可在
TechNet:在 Configuration Manager 内配置
应用程序目录和软件中心
中查找有关配置应用程序目录的更多信息。

 

验证提示

在安装角色前验证必备组件

Configuration Manager 支持的配置中所述,应用程序目录需要系统安装一组 IIS 组件。关键点:

  • 确保已安装 ASP.NET 和相关组件,以及 IIS 6 元数据库兼容性、Windows 身份验证和常见 HTTP 功能。

  • 确保已为应用程序目录网站角色安装 Microsoft.NET 4.0 框架。

  • 确保 ASP.NET 4.0 注册正确,特别是在安装了 Microsoft.NET 4.0 框架后向 Windows 添加了任何组件和功能的情况下。您可运行以下命令行来确保系统已注册 ASP.NET:

    %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i -enable
    在某些配置中,该命令行需要 -ir 参数,而非 -i 参数。

  • 安装 WCF 激活,您可在 Windows 2008 Server 上的 Server Manager 中的功能节点中进行这一操作。请注意,完成此项操作后,您必须使用此前的 ASP.NET 注册命令来修复 ASP.NET 注册。

  • 验证 IIS 是否运行。例如,在运行 IIS 的计算机的浏览器中键入 https://localhost,并确认您可看到 IIS 欢迎屏幕。

验证角色的安装

  • 当您完成面向应用程序目录角色的“添加站点系统角色”向导后,Configuration Manager 就将启动角色安装,但在此时,安装尚未完成。您可使用以下方法来跟踪进度:
    • 使用 Configuration Manager 控制台和监视工作区:在
      “组件状态”节点中,查看两个组件:SMS_PORTALWEB_CONTROL_MANAGER 和 SMS_AWEBSVC_CONTROL_MANAGER。使用这两个组件来跟踪这两个角色的运行状况。在成功安装角色后,您应通过向下钻取到状态而看到针对两个组件的类似消息:

如果一个角色安装失败,那么您将看到一个或两个组件的错误,与下图类似:

    • 使用 Configuration Manager 日志文件夹中的日志文件:
      • SMSPORTALWEBSetup.log 和 SMSAWEBSVCSetup.log 将显示总体安装进度和任何错误消息。
      • Awebsctl.log 和 Portlctl.log 将在角色安装后显示组件状态。查找“状态节点 200”来验证组件是否运行。
  • 有助于排除应用程序目录安装故障的提示:

    • 在安装了应用程序目录角色后,Configuration Manager 可能需要数分钟来完成这些角色的配置过程。如果您的层次结构中有一个中央管理站点,那么配置过程的时间需要的更长一些,取决于主站点和中央管理站点间复制速度。
    • 如果一个或两个应用程序目录角色因为必备组件缺失而安装失败,那么最快速的故障排除方法是安装缺失的必备组件,然后卸载和重新安装应用程序目录 Web 服务角色和应用程序目录网站角色。如果您安装了缺少的必备组件,而并未重新安装站点系统角色,那么它们可能在最长两个小时内无法运行。
    • 如果 SMS_PORTALWEB_CONTROL_MANAGER 报告消息 ID 8000 和 HTTP 状态代码 500,那么其形成原因最有可能为 ASP.NET 配置错误。请运行此前列出的 ASP.NET 注册命令来修复 ASP.NET 4.0 注册。要查看 IIS 返回的特定错误消息,请在安装了应用程序目录网站角色的站点系统服务器上浏览到以下 URL:https://localhost/CMApplicationCatalog/default.aspx。该命令假定您正为启用 HTTP 的应用程序目录网站角色使用默认值,因此在使用其他值时,您必须对它们进行相应的调整。
    • 如果 SMS_AWEBSVC_CONTROL_MANAGER 报告消息 ID 8100 和 HTTP 状态代码 500,那么其形成原因最有可能为 IIS 的问题。请确保 IIS 可运行且运行状态良好,而且已安装 Configuration Manager 所需的所有 IIS 组件。要查看特定的错误消息,请在安装了应用程序目录 Web 服务角色的站点服务器上浏览到以下 URL:https://localhost/CMApplicationCatalogSvc/ApplicationOfferService.svc。此 URL 格式假定您正为包含 HTTP 的应用程序目录 Web 服务角色使用默认值,因此在您使用其他值时,您必须对他们进行相应的调整。如果您在浏览器中看到以下消息,那么站点系统角色正在运行:这是 Windows© Communication Foundation 服务。
    • 如果在使用应用程序目录时遇到了问题(例如,您看到“Cannot connect to the application server”(无法链接到应用程序服务器)),则请使用(CMApplicationCatalog\Logs 文件夹中的)ServicePortalWebSite.log 文件和(CMApplicationCatalogSvc\Logs 文件夹中的)ServicePortalWebService.log 文件。在 Configuration Manager 内配置应用程序目录和软件中心 TechNet 主题的第 4 步中描述了这两个文件夹的位置。这些日志中的错误可能表示系统尚未配置角色,或应用程序目录遇到了与 SQL 服务器的连接问题。如果任何日志文件缺失,那么可能造成这些角色其中之一无法安装成功。
    • 如果一些用户无法浏览到应用程序目录查看“访问拒绝”错误,那么请按照本文此前所描述的方法检查 CMApplicationCatalog 文件夹的权限。如果已经正确配置了权限,则可启用 IIS 错误跟踪来对身份验证失败进行故障排除。

验证是否配置了客户端设置

在安装了应用程序目录角色之后,Configuration Manager 客户端将开始为应用程序目录选取 URL。请确保在使用应用程序目录之前正确配置以下客户端设置:

  • 计算机代理、为您的环境定义适当 URL 的默认应用程序目录网站点设置。
    • “自动检测”或“(无)”选项将指导站点服务器基于客户端站点的分配和相关客户端属性来自动提供 URL。借助这一选项,客户端将每 25 小时更新一次分配的 URL。您仅可出于测试目的,重启客户端计算机上的 SMS 代理主机服务,以在服务启动时强制运行更新。请注意,SMS 代理主机服务需要数分钟才能启动。
    • 特定站点系统、URL 格式或自定义 URL 选项将一个应用程序目录网站角色分配给层次结构中的所有客户端计算机或特定的计算机集合。借助这一选项,客户端可通过使用其配置的客户端策略轮询间隔(默认为一小时一次)来选取 URL。出于测试目的,您可从“控制面板”中使用 Configuration Manager,进而启动客户端策略检索来强制执行更新。有关如何启动客户端策略的更多信息,请参阅为 Configuration Manager 客户端启动策略检索
  • 计算机代理、将默认应用程序目录网站添加到 Internet Explorer 信任的站点区域将提供一个方式来确保用户能够从应用程序目录安装应用程序。当客户端下载客户端策略时,系统将为客户端配置这些设置。
  • 用户和设备相关性、允许用户定义其主设备设置将配置系统是否允许用户从应用程序目录指定其主计算机。这些设置将立即生效。

您可在 TechNet 上的关于 Configuration Manager 中的设置中找到有关这些客户端设置的更多信息。

 

验证客户端能否与应用程序目录通信

请执行以下步骤来验证客户端是否接收了客户端设置,其系统是否为应用程序目录正确配置了客户端:

  • 如下图示,打开“软件中心”,并单击“从应用程序目录中查找其他应用程序”链接。

如果该链接禁用,或将您指向旧 URL 或错误 URL,那么系统可能尚未为应用程序目录 URL 配置客户端。请参阅本文此前部分,以确保客户端将接收更新的 URL。请注意,您必须关闭和重新打开“软件中心”,以刷新“应用程序目录”链接。

  • 在 Internet Explorer 打开网页后,检查 URL 是否被正确添加到受信任的站点或其他区域。这一操作将把应用程序目录所需要的保护模式配置为关闭。在 Internet Explorer 8 或更早版本的浏览器中,检查状态栏以确定保护模式是否关闭。在 Internet Explorer 9 中,您可在“文件”菜单中的“属性”内找到此信息。如果保护模式开启,您必须将 URL 添加到适当的安全区域,如“受信任的站点”区域。您可通过使用先前提到的客户端设置或手动指定此配置,或者使用组策略来进行这一操作。
  • 导航到应用程序目录的“我的设备”选项卡。您将看到以下消息:
    • “此设置由您的 IT 部门管理”
    • “此计算机被设置为您的主计算机”
    • “此计算机未被设置为您的主计算机”

如果安装某一应用程序时,在“我的设备”选项卡中看到了显示的错误,或看到“无法安装或请求软件”的错误消息,那么应用程序目录网站在与客户端通信时出现了问题。

有关与应用程序目录通信的一些疑难解答提示:

    • 通过查看 LocationServices.log 和 ClientIDManagerStartup.log,确保 Configuration Manager 客户端成功分配给某一站点,且正常运行。

    • 验证客户端能与管理点通信。例如,检查 CcmMessaging.log 文件中的任何 HTTP 错误。

    • 在您浏览到应用程序目录时检查 LocationServices.log 文件,确定是否存在任何错误。造成本日志中的应用程序目录失败的一个典型原因是以下错误所显示出的客户端与管理点通信失败:“发送 Web 服务信息位置请求消息失败。”在这种情况下,请验证管理点是否运行,且客户端计算机可访问该管理点。

    • 如果您最近安装了应用程序目录角色,那么站点系统服务器上的配置可能需要一段时间才能完成。如果您有一个中央管理站点,那么请确保站点将成功复制。在此应用场景中,有关应用程序目录角色信息必须复制到中央管理站点,然后返回主站点,之后应用程序目录才能完全运行。举例来说,用户在复制完成前无法从应用程序目录请求或安装应用程序。

    • 请确保显示于应用程序目录右上角的域和用户名称与登录 Windows 的用户相匹配,特别是当 Internet Explorer 向用户提示需要凭据时。

    • 请确保启用 Internet Explorer 所需的任何插件,且这些插件在 Internet Explorer 中不会被显式阻止。有关更多信息,请参阅 TechNet 上的 Configuration Manager 中客户端部署的必备组件条件

    • 如果您配置了客户端设置来将 URL 添加到受信任的站点,且 URL 未被添加到受信任的站点区域,则请检查客户端是否成功下载客户端策略,并检查您的环境中的组策略设置,以确保 Configuration Manager 能将 URL 添加到受信任的站点区域。

    • 如果应用程序目录显示了一个错误页面,则该错误页将显示于 ConfigMgrSoftwareCatalog.log 中。您可通过搜索用户配置文件文件夹来查找日志文件。例如,在 Windows 7 您可在以下文件内找到日志文件:

      %systemdrive%\Users\<username>\AppData\LocalLow\Microsoft\Silverlight

      请注意,该日志中的错误最有可能表示一个先前提到的问题。

  • 如果您在应用程序目录中请求或安装软件时看到了以下错误消息,那么请确保显示于应用程序目录右上角的域和用户名与登录 Windows 的用户相匹配。如果系统提示您输入用户名和密码时,请勿指定与您用于登录 Windows 的帐户不同的帐户。此外,如果安装权限的客户端设置阻止您安装软件,那么您将看到同样的错误消息(例如,系统仅为管理员配置该设置,而且您的帐户不是本地管理员组中的成员)。

总结

我希望本篇博文能够帮助您在您的环境中部署应用程序目录,并针对您的典型故障提供一些解决方案的信息。关于应用程序目录的更多信息,请参阅 Dave 的博文为 System Center 2012 Configuration Manager 部署一个卓越的应用程序目录体验System Center 2012 Configuration Manager 内的应用程序目录和软件中心简介,以及 TechNet 上的在 Configuration Manager 内配置应用程序目录和软件中心

--Anton Varshavskiy

本博文按“原样”提供,且不提供任何担保和授予任何权利。