与Windows Server 2008一起发布的组策略有着重大的改进,新增了一组20多个组策略扩展,极大地扩充了组策略对象(GPO)可配置的设置范围。随着全新一代产品的发布,你可能会期望Windows Server 2008 R2和Windows 7中的组策略也会有类似革命性的新功能。但不幸的是,你将会从本文的论述中了解到,这次发布的组策略主要是功能上的改善,而不是革命性的更新。
尽管如此,在Windows Server 2008 R2和Windows 7中,还是有一个重大的更新,微软首次踏出了试探性的一步:通过使用PowerShell让组策略的管理实现自动化。其余的你会发现最新发布的Windows组策略的新功能主要是更新现有的策略范围,在组策略管理内增加了一些额外的Windows组件,以及组策略首选设定的改进。下面,让我们深入地研究一下这些更新。
管理模板的变化
管理模板或注册表策略的主要更新是出现在Windows Vista发布的时候。在Windows Vista中,微软引入了一种新的ADMX格式和中央存储。这种ADMX格式提供了更好的多语言支持;中央存储取代了存放了所有GPO的SYSVOL目录中的ADM文件。Windows Server 2008 R2与Windows 7在这方面最大的改进是增加了更多的管理模板设置(超过300处)。这些设置覆盖了Windows Server 2008 R2和Windows 7中大部分的新功能(例如:通过策略来控制每个特定平台的新用户界面元素,请参见图1)。你可以从微软的“ Windows 和 Windows Server的组策略设置参考”下载文档中找到Excel格式的管理模板和安全策略设置的完整列表(www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=18c90c80-8b0a-4906-a4f5-ff24cc2030fb)。
图1
一个更细微的变化是现在的管理模板是一种修改过的ADMX架构,支持两种新的注册表值类型:REG_MULTI_SZ和REG_QWORD。在以前,你不能使用管理模板来修改这两种值类型。你可以选择通过注册表脚本来提供这些种类的值,或者在客户端主机上使用组策略首选项的注册表扩展来获取这些值类型。现在ADMX的语法中已支持这些类型,你可以通过创建自定义的ADMX模板来支持这些新的类型。
管理模板在用户界面有另一个细微的变化和改进。在Windows Server 2008和Windows Vista中,微软为管理模板设置引入了注释的概念。如果你选择了这样做,你可以为每个策略设置添加注释。注释可以显示在组策略编辑器(GPE)用户界面内三个单独的标签中,这些注释,以及改进的文字说明,可以为每个设置提供帮助。你最好根据标签的用途来使用它们。在Windows Server 2008 R2和Windows 7中,所有三个元素显示在同一个窗格中,你可以方便地查看并编辑它们,如图2所示。
图2
支持PowerShell
此Windows版本中的重大改变,就是我较早前所提到的添加了支持通过PowerShell管理组策略的全部设置。微软添加支持在每台计算机或每个用户的脚本策略中运行PowerShell脚本,并且在PowerShell 2.0中提供一套包含25个PowerShell cmdlet的命令集,你在组策略管理控制台(GPMC)中执行的许多操作现在都可以通过PowerShell实现。让我们首先看看新的脚本策略的支持。
当你在GPE中创建一个新的启动脚本或登录脚本时,你将看到一个新的选项卡。如图3所示,现在你可以添加PowerShell脚本到你的脚本策略中,以及控制脚本是否在非PowerShell脚本的之前或之后运行。但请注意,只有Windows Server 2008 R2和Windows 7组策略客户端才会运行这些新的基于PowerShell的脚本策略。它们在早期版本的Windows上不会生效。
图3
也许更有趣的PowerShell功能增强是PowerShell 2.0模块中为支持组策而新增的一套cmdlet。这些cmdlet封装了很多附带在GPMC工具示例脚本中找到的功能。在PowerShell cmdlet中,你可以执行与组策略相关的管理任务,例如创建新的GPOs或删除现有的GPOs,链接GPOs到组织单元或域中,以及为GPOs重新分配权限。图4显示了在新模块中曝光的cmdlet完整列表,它们被称为GroupPolicy,包含在Windows Server 2008 R2和Windows7的远程服务管理工具(RSAT)中。
图4
请注意,要使用GroupPolicy模块,你必须在Windows Server 2008 R2或Windows 7上运行PowerShell 2.0。要想在早期版本的Windows上提供此类GPMC PowerShell功能,我已经编写好了一组GPMC PowerShell 1.0 cmdlet,你可以从我的网站上免费下载(www.sdmsoftware.com/freeware)。
让我们通过一个示例来看看这些新的cmdlet所提供的能力。假设你要在PowerShell脚本中进行创建GPO、为GPO分配权限和链接GPO的操作。下面的一行命令通过借助三个新的cmdlet和PowerShell管道,就能实现所有的操作:
new-gpo "Marketing IT GPO" | Set-GPPermissions -TargetName "Marketing Users" -TargetType Group -PermissionLevel GPOEdit | new-gplink -order 1 -Target "OU=Marketing, DC=cpandl,DC=com"
在这个例子中,我使用了三个cmdlet——New-GPO、Set-GPPermissions以及New-GPLink。在我的cpandl.com AD域中创建了一个称为Marketing IT GPO的GPO,通过编辑GPO以修改此GPO的权限,让其获取Marketing Users活动目录(AD)安全组的权限,以及将此GPO链接到Marketing OU上。所有这一切都是通过一条命令来完成,当中使用了PowerShell的管道传送能力,将一条命令的输出传送给下一个命令。通过使用PowerShell和GroupPolicy模块,可以更容易实现复杂的组策略管理任务。
使用PowerShell修改注册表策略
微软并没有将所有的GPMC功能放入到GroupPolicy模块中。添加的只是修改GPO设置中一小部分子集的基本支持。在我介绍微软做了哪些改变之前,让我提供一些背景信息。目前,你有两种方式在组策略中推送注册表值。一直以来,我们主要通过使用组策略管理模板来管理组策略的注册表设置。管理模板使用GPE中的ADM或ADMX模板文件来创建用户界面,它们描述了哪些注册表值可以通过组策略管理,它们还提供帮助文本描述了哪些策略可以设置。当你在GPE中设置管理模板策略时,你的定义是存储在GPO的SYSVOL部分中的一个名为registry.pol的文件中。此文件包含了你希望在GPO中部署的注册表值的说明。
管理注册表值的另一种方法是组策略首选项注册表扩展。此方法比起管理模板策略更加灵活,使用组策略首选项还可以提供更精细的定向功能。这两种方法都可以让你集中化管理注册表的更改,每种方法都有其优势。
微软在Windows Server 2008 R2和Windows 7中提供的相关PowerShell支持,能够通过以上两种注册表方法来修改GPO的设置。在第一种的情况中,你现在可以通过GPRegistryValue、Set-GPRegistryValue和Remove-GPRegistryValue这三个cmdlet来检索和修改管理模板策略用于存储其设置的基础registry.pol文件。使用这些cmdlet来修改管理模板策略的优点是,你不需要创建一个自定义的ADM文件来导入特定的注册表值。因为这些cmdlet不依赖于ADM或ADMX文件,而是让你将注册表值写入底层存储文件中,使你可以快速地将一个新的注册表值写入到GPO中。
这种方法的不足之处是无法依靠ADM或ADMX文件来定义你所使用的那些注册表值,你必须要清楚了解你要部署的相关的注册表项和值。此外如果你要查看使用此方法来配置注册表设置策略的GPO——没有相关的ADM或ADMX文件可以重现这些设置——GPMC设置报告将它显示为额外的注册表设置。如果你使用GPE来查看,你将不会看到已经推入该registry.pol文件的注册表值。显然,这种鲁莽的做法可能会导致混乱。我建议所有你的管理模板的更改不要依靠这种方法,但这种方法在紧要关头可能会派上用场。
第二个通过PowerShell修改注册表策略的方法包括能够读取和修改组策略首选项注册表扩展中的设置。为达到此目的,微软带来了Get-GPPrefRegistryValue、Set-GPPrefRegistryValue和Remove-GPPrefRegistryValue三个cmdlet。这三个cmdlet让你可以管理新的组策略首选项注册表设置(请注意,不能使用这些cmdlet来修改现有的组策略首选项注册表策略)。通过一个例子,让我们来看看如何使用这些cmdlet将新的注册表值添加到注册表组策略首选项设置中。下面的示例命令将写入一个称为Test的鼠标蜂鸣音值到GPO中:
Set-GPPrefRegistryValue -Name Test -Context User -Action Create -Key "HKEY_CURRENT_USER\Control Panel\Mouse" -Valuename "Beep" -Value "Yes" -Type "String"
请注意,在此命令中,你需要指定注册表项、值名称、值以及类型才能成功写入组策略首选项的设置。这些cmdlet并没有提供访问某些更高级组策略首选项的功能,例如你在常用选项卡中看到的项目,以及项目级别的定位(能够精确定位首选项设置)。无论如何,cmdlet对于实现组策略自动化提供了一个良好的开端。
Starter GPOs(初级使用者GPOs)——有人关注它吗?
在Windows Server 2008和Windows Vista中,微软引入了Starter GPOs的概念,一种你可以用来创建真正的GPOs的GPOs模板。这个想法是很好,但却难以执行。问题在于Starter GPOs只支持管理模板的策略设置,所以你只能创建有限的几种模板类型。微软在Windows Server 2008 R2和Windows 7中对比先前发布的版本只做了些许的改进。基本上,你现在能够将Windows Server 2008、Windows Vista和Windows XP SP2的安全准则设置预先写入到Starter GPOs中,先前你实现这个功能需要通过所谓的GPO Accelerators(GPO加速器)。
当然,由于Starter GPOs只支持管理模板设置,并不支持安全设置(而这却是安全准则设置的主要焦点),这些预写入的Starter GPOs相对而言是无用的。但如果你需要创建管理模板设置的模板,你可以重复使用它来创建真正的GPOs,这时Starter GPOs对你就十分有用。
新的启用策略功能
最后介绍一些更改,我将涵盖在Windows Server 2008 R2和Windows 7中的已添加到支持新功能管理的新策略。大部分都是与安全设置相关的新策略,但也有几个小更新是针对组策略首选项的。让我们来看看这些新的组策略首选项:
1.在Windows Vista中引入的支持在电源管理中管理新的电源计划。现在已经可以在电源选项和电源使用方案中应用。电源计划需要客户端至少运行Windows Vista才能接收它们。
2.更新任务计划首选项现在支持更新Windows Server 2008和更高版本、以及Windows Vista的任务计划程序。这个新的任务计划程序比起Windows Server 2003和Windows XP的任务计划程序支持更多的选项。另外,微软为Windows Vista以及更高版本增加了即时任务,让你可以创建一个一次性的计划任务在启用策略的时候马上运行。
3.在网络设置首选项中增加了支持互联网浏览器IE 8,现在你可以配置IE 8的特定选项。
新的安全策略
在组策略方面最大的更新是新增了基于安全策略的应用程序控制策略,或者称为AppLocker。这些策略可以在\Computer Configuration\Windows Settings\Security Settings\ Application Control Policies下找到。实质上,这是对旧的软件限制策略一个重大的升级(SRPs——在Windows Server 2008 R2和Windows 7中仍受支持),让你可以控制在你的Windows系统上哪些应用程序可以执行。具体而言,AppLocker允许你创建应用程序白名单和黑名单,基于你指定的准则明确地允许或拒绝特定应用程序或应用程序集执行。
在AppLocker和SRPs中,可以定义哪些是可用的是两者之间主要的区别,现在你拥有更灵活的规则来定义应用程序。如图5所示,例如,你可以通过保存于文件中的软件发行商、应用程序名称和版本等信息来创建规则。
图5:AppLocker中的规则变得更灵活
你还可以创建控制脚本执行的规则,这在先前的Windows版本中没有明确支持。此外,对于你创建的每一种规则的类型,你可以强制执行规则或者只是在审核模式下工作。在审核模式中,每当有应用程序符合规则,会将结果记录到客户端,而不是阻止或允许该应用程序。这样,你就可以在规则生效之前先在测试模式中运行规则,以确保它不会捕获任何信任的应用程序。AppLocker唯一缺点是它只能在Server 2008 R2和Windows 7的客户端上运行,因此你不能在先前的Windows版本中利使用。
高级审核策略
你会在Windows Server 2008 R2和Windows 7中发现的另一个与安全相关的功能,它就是更精确的审核架构。如果你在\Computer Configuration\Windows Settings\Security Settings\Advanced Audit Policy Configuration下查看,你将看到10种不同的审计类别,你现在可以在Windows Server 2008 R2或Windows 7系统中进行调整,以精确控制哪些类型的事件会产生安全审核。当然,这种新的精确控制仅能在这些最新版本的操作系统中使用,但在实际中,它可以通过组策略来管理确实是一件好事。
网络列表策略
最后一个新的安全策略,我将与你们讨论如何控制网络列表。默认情况下,当Windows Server 2008 R2、Windows 7或Windows Vista系统发现了新的网络,无论是公共无线网络或者是公司局域网,系统会提示用户标示网络所属的类型(例如:公共、域、家庭)。但通过在组策略中使用网络列表策略,你现在可以预先配置特定的网络行为以及它们所属的区域,以便在用户发现他们时可以进行自动标示。
你还可以控制呈现给用户的图标以及网络名称。使用这方面的策略的唯一缺点是如果要对无线接入点进行预配置,你在配置所有的各种选项之前需要提前知道WAP的名称。但这方面的策略仍然受到经常在网络间漫游的用户的欢迎。
名称解析策略
此策略属于最新的策略领域,虽然不是严格意义上的安全策略(它可以在GPE 中的\Computer Configuration\Windows Settings\ Name Resolution Policy下找到),它允许你控制DNS安全扩展(DNSSEC)和基于每一个DNS域名的Microsoft DirectAccess DNS配置。举例,你可以配置特定的客户端可以使用哪些DNSSEC功能与其DNS服务器进行交流。或者由DirectAccess控制客户端的网络连接是使用哪一个DNS和代理服务器。虽然不是所有的人都会使用这个功能,但如果你将DirectAccess延伸到你的移动用户,可以在组策略中方便快捷地使用此功能。
是进化,并非革命
在Windows Server 2008 R2和Windows 7中组策略的改进更多的是进化,而不是革命。除了增加了一些PowerShell自动化支持组策略管理,对于组策略爱好者来说这是一个相当乏味的版本。难过的是,我们还需要等待相当长时间才能看到重大的架构或功能上的改进,这是超过10年的技术用户一直在追寻的功能改进。
但如果你打算推广Windows 7,当你在配置客户端时,它有足够的新功能可以使你的工作更加轻松。我鼓励任何还没有开始使用PowerShell的人,马上来学习使用组策略和这种新的脚本技术,以改善你的管理工作。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |