服务器应用程序必须能够在没有服务器图形 Shell 的情况下运行
05/31/2018
本文内容
平台
服务器 – Windows Server 2012
说明
服务器图形 Shell (包括 Windows 资源管理器和 Internet Explorer 的功能)默认安装在 Windows Server 2012 的 "带有 GUI 的服务器" 安装上。 可以卸载服务器图形 Shell 功能,以减少潜在的服务和性能,从而限制服务器可能产生的重新启动次数,同时仍然允许在服务器上本地运行管理工具。
管理员卸载服务器图形 Shell 后,服务器将处于最小服务器界面配置中:
然后,管理员可以选择在最小服务器界面配置中运行 (其中包含一组本地管理工具) 作为默认设置,而不是在具有 GUI 配置的服务器上运行。 这允许本地监视和管理,同时降低资源使用和服务的频率。
如果管理员需要其中的功能,则可以在以后重新安装服务器图形 Shell。 (管理员还可以从服务器核心安装开始,并使用按需功能功能将 "生成" 到最小服务器接口配置。 )
服务器应用程序必须能够在最精简的服务器界面配置中运行,才能利用降低的资源利用率和服务占用量。 通过允许管理员选择不安装需要服务器图形 Shell 的部分应用程序,或检测服务器图形 Shell 的状态并禁用应用程序的某些方面,可以实现此功能。
由于服务器图形 Shell 中包含的许多 Api 和二进制文件在此配置中不可用,因此,最小服务器界面的资源和服务占用量减少。 在适当的情况下,服务器应用还应该允许通过 Windows PowerShell 远程处理) 从其他 Windows Server 或 Windows 客户端安装中进行远程管理 (。 这样就可以在最小服务器界面配置中更好地集中管理一台或多台计算机,或者在服务器核心等较低空间的配置中对计算机进行更好的集中管理。
形式
如果某个应用需要的任何 Api 或二进制文件在最小服务器界面配置中都不可用,则它可能无法在屏幕上正确显示和/或不可用。
缓解措施
服务器应用程序开发人员应该确定需要任何已删除的 Api 或二进制文件的应用程序部分,并包括服务器管理员的信息,这些信息标识了使用最小服务器界面时无法正常运行的应用程序部分。 如果应用程序的这些部分可以选择安装或不是产品功能的绝对必需部分,则仍可在最小服务器界面配置下安装并运行应用。
如果在没有服务器图形 Shell 的情况下根本无法使用应用程序,则应记录此限制,并指示服务器管理员安装服务器图形 Shell。 (如果将添加到服务器核心安装,这可能需要使用 "按需功能" 添加功能 ) 。此外,应用应在启动时检查所有必需的文件是否可用,因为在安装应用之前或之后的任何时间都可以卸载服务器图形 Shell。
解决方案
依赖于可能的最小依赖项集和模块化的应用程序,这样,无需安装更多重型用户界面组件,即可使用核心应用程序功能。 开发不需要任何已删除的 Api 或二进制文件的应用,而是依赖于最小服务器界面或服务器核心中包含的功能。 这将减少维护要求,同时提高性能和用户满意度。
如果某些应用程序的某些部分可能在服务器图形 Shell 可用时添加了重要功能,应用程序开发人员可以:
允许将使用服务器图形 Shell 的其他功能安装为可选择安装,以便可以在最小服务器界面配置中将其从安装中省略
检测服务器图形 Shell 是否存在,并调整应用程序的行为
应用程序开发人员还应确保服务器应用能够远程管理(如果可能)。
检测最小服务器界面和服务器核心
对于安装的每个服务器级别,Windows Server 将安装相应的注册表值。 可以查询这些密钥是否存在,以确定是否已安装并启用服务器图形 Shell 或最小服务器界面功能。
HKEY _ 本地 _ 计算机 \ 软件 \ Microsoft \ Windows NT \ CurrentVersion \ Server \ ServerLevels:
Server Core
最小服务器界面
服务器图形 Shell
ServerCore = 1
X
X
X
服务器-GuiMgmt = 1
X
X
ServerGuiShell = 1
X
上表中的 "X" 表示在安装相应的功能时,将出现注册表项。
请注意,这些服务器级别是累加的;如果安装了服务器图形 Shell,则是最精简的服务器界面和服务器核心。 在这种情况下,将同时存在这两个注册表项。
测试
检查应用程序代码中是否存在使用任何已删除 Api 和二进制文件的要求。 从 "核心应用程序" 二进制文件中删除所有这些实例之后,请在不包含服务器图形 Shell 的环境中测试应用程序。 进程监视器等工具可能会对此有帮助。
如果无法完全停止使用这些 Api 和二进制文件,请确保在最小服务器界面或服务器核心上运行应用时,应用程序会正常运行。
资源