本文节选自《Windows & .NET Magazine国际中文版》
自从1998年微软发布第一个Windows NT 4.0终端服务器版(WTS)以来,很多公司大大改善了使用RDP连接到终端服务器的用户体验。在Windows 2003中,RDP客户端几乎达到了与使用ICA客户端到Citrix MetaFrame服务器一样的功能,仅缺少支持应用程序发布与无状态窗口(应用程序发布指使一个连接指向一台终端服务器上的一个应用程序,无状态窗口则允许最终用户在一台终端服务器上对同一个会话维持多个连接,并且这样不会成倍地使用资源)。
但是,微软历来不太注重对WTS和Windows 2000服务器上的终端服务器改善管理。NT 4.0早于WTS,因此核心的NT操作系统并没有终端服务器管理能力——即使用户账号管理也必须在一台WTS计算机或者使用支持WTS的用户账号管理器来完成。Windows 2000在核心的操作系统中包括对终端服务的支持,但是服务器管理工具仅适合于管理很小数量的用户或者服务器,因为您必须为每个用户或者每台计算机单独配置终端服务的设置。而终端服务器的设置,如用户配置文件路径并不是通过活动目录服务接口(ADSI)来实现,除了使用命令行工具可能实现以外,您不能脚本化服务器的管理。如果您计划保持默认设置或者您只有两三个用户账号或服务器需要配置,这个限制还是可以忍受的。但是对一致性地配置和管理更多的用户设置和终端服务器,它会变得非常困难。
Windows 2003为终端服务器做了很多,使应用到终端服务的终端服务器和用户账号通过ADSI及Windows管理规范(WMI)实现了许多设置,让终端服务器变得更加可管理。您能够使用管理脚本来管理这些设置,也可以使用组策略对象(GPO),这样您可以应用到组织单元(OU)。我向您介绍一些针对用户与计算机管理配置的GPO方法,并向您展示如何使用他们实施一般的任务。
终端服务策略在哪儿?
当您在一台Windows 2003的计算机上打开组策略编辑器(GPE)之后,您会在计算机配置和用户配置文件夹下看到一个新的文件夹:管理模板\Windows组件\终端服务。图1显示了在“计算机配置\管理模板\Windows组件\终端服务”中可用的设置。这些设置中的某些与用户配置\管理模板\Windows组件\终端服务文件夹中的是重复的。计算机配置设置被分成好几个终端服务子文件夹。表1列出了在计算机配置与用户配置两者中终端服务设置的位置。
为配置一个参数,双击打开它的属性对话框,然后适当地选择启用或者禁用。您可能需要为某些设置提供额外的信息;比如,为设置用户终端会话的主目录,您必须提供本地或者网络路径(假设主目录使用的是网络位置,您希望映射的路径的网络驱动器字母)。尽管大部分设置只能应用到Windows 2003的终端服务器或Windows XP的远程桌面连接,但少量设置(比如,从启动菜单中删除断开按钮的选项)能够应用到Windows 2000终端服务器。版本需求显示在每个策略的属性对话框中。
如果您曾经编辑过终端服务默认的用户和终端服务器设置,您应该知道存在您可以为服务器与用户两者配置优先控制的参数。一般地,如果存在一个针对服务器和用户(就像默认的打印机映射设置那样)的设置,用户设置取得优先权。您可以配置终端服务配置来超越用户设置,并给服务器设置优先权。如果您没有配置一个GPO,无论您选择哪一个设置都会优先控制。然而,当您配置一个GPO时,无论您是启用或者禁用GPO,GPO设置都覆盖您通过终端服务配置或通过用户账号属性编辑的设置,并取得优先权。如果您为用户和计算机两者配置了相同的设置(可能是少量设置,诸如那些管理远程控制的功能),计算机设置比用户设置取得优先权(如果您把GPO链接到域中不同的容器,策略继承规则会适应地应用。
由于GPO使用的措词有些模糊,因此当您启用或者禁用策略时应该小心。例如,如果为终端服务器使用智能卡配置参数,并希望确保智能卡是被支持的,您必须禁用不允许智能卡重定向策略。
对终端服务器应用GPO
为了把GPO应用到终端服务器,您必须创建一个终端服务器组织单元,如果有需要,创建一个终端服务器客户端组织单元。打开活动目录用户和计算机管理单元的微软管理控制台(MMC),在左边面板中右击域名图标。从关联菜单中选择新建*组织单元。新的组织单元命名为TerminalServers或者与这个相等的描述,并且把所有终端服务器放到里面。
终端服务没有特定的用户设置。因此您可以从简单地配置终端服务器策略开始。然而,您可能选择不在计算机级别配置所有的设置(例如这些与用户会话的远程控制相关的设置)。您可以用好几种方法为用户设置。其中一个方法就是为允许登录到终端服务器的用户创建一个组织单元。但是,AD对象只能在唯一的OU中,并且把用户放到指定的OU——Terminal Services可能是不实际的。另一个方法是把设置应用到您创建的用户组织单元,并且使用回环策略确保当用户登录到终端服务器时适当的设置被应用。为了使用回环处理,您需要在终端服务器OU上启用组策略回环策略处理模式。这个策略可以在“计算机配置\管理模板\系统\组策略”中找到,它控制用户策略如何被应用到特定目的的计算机,如终端服务器。为确保终端服务器策略获得优先,单击策略的设置标签,并且从下拉菜单中选择“替换”。
在您创建用户和终端服务器组织单元之后,您可以把新的策略应用到这些组织单元了。我将向您展示如何配置服务器,因为这是大部分策略应用的地方。右击TerminalServers组织单元并选择“属性”。选择组策略标签打开如图2所示的对话框。为创建一个新的GPO,单击“新建”(图中显示了一个称为TS Policies的新GPO),然后单击“编辑”返回到如图1所示的组策略对象编辑画面。
现在您可以准备配置新的策略设置了。您可以从下列配置样例开始:
调整远程控制设置。远程控制允许一个管理员直接连接到用户的会话查看用户正在做什么或者进行交互式会话。如果您使用默认的设置,用户必须明确允许管理员远程控制他或她的会话,并且管理员能够与会话进行交互。为了改变组织单元的默认设置,展开计算机配置\管理模板\Windows组件\终端服务,启用为终端服务用户会话的远程控制创建规则,如图3所示。从下列式选项列表中,您可以选择完全禁用远程控制或者选择设置来自两个主要组其中的一个:完全控制,允许管理员与用户会话交互;查看会话,允许管理员监视用户正在做什么但不能采取行动。在这两个组中,您能够指定是否用户必须明确允许管理员远程控制他或她的会话、是否管理员没有获得权就能够连接到会话(这些设置也可以在用户配置\管理模扳\Windows组件\终端服务中找到。如果您在两个地方设置策略,计算机设置被应用)。
为终端会话配置一个配置文件路径和主目录。把配置文件从WTS迁移到终端服务是非常痛苦的,因为终端服务配置文件路径截然不同于用户配置文件路径,它在ADSI中没有作为用户账号的一个属性实现;因此,您只能通过编辑用户账号属性配置文件路径,要么通过GUI要么运行Tsprof命令行工具。这个信息现在对组策略来说是可用的。这些策略控制在“计算机配置\管理模板\Windows组件终端服务”根目录中的用户配置文件和主目录。为TS漫游配置文件和TS用户主目录启用路径设置。为配置配置文件的路径,包括计算机名称和配置文件目录的路径;服务器自动填写用户名。如果您提供的路径不存在(或者服务器不能到达),这个账号将使用本地配置文件。
同样的过程可应用到创建主目录——启用策略,为网络共享输入通过命名标准(UNC)名称,如果有需要(对于需要一个驱动器字母的应用程序),指定一个本地驱动器字母。我一般不推荐把用户主目录放在本地终端服务器上,除非您没有其他选择;这样做根据他们连接的服务可以给他们单独的主目录,使备份和定位用户文件变得困难。
一个发展中的解决方案
每个终端服务器的下一版本越来越接近一个完美的解决方案,即使对于有许多用户的大型公司。尽管Windows 2003的终端服务仍然有一些需要由第三方产品弥补的缺陷,但是已经添加了很多使配置大量服务器或用户账号更容易的正规的服务器和组管理工具。
或