组策略常用的五大Power Shell命令

日期: 2012-06-28 作者:Dave Leaver翻译:陈中华 来源:TechTarget中国 英文

对于组策略的管理,传统的方式是通过组策略管理控制台(GPMC)来进行。使用图形界面(GUI)让管理员对数千个组策略选项的管理轻松了许多。然而,从Windows Server 2008开始,诞生了组策略的PowerShell命令,它们可以更加简化组策略的管理过程。   Get-GPO   Get-GPO命令可以检索到每一个组策略对象(GPO)的所有信息。

而且可以根据GPO的名称,GPO的GUID来检索组策略信息,也可以使用-all选项来检索域中的所有组策略。虽然你会觉得通过GPMC也能获取这些信息,但是命令的输出还能列出一些通常会错过的信息,如GPO的所有者,它的创建时间,最后的修改时间以及启用……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

对于组策略的管理,传统的方式是通过组策略管理控制台(GPMC)来进行。使用图形界面(GUI)让管理员对数千个组策略选项的管理轻松了许多。然而,从Windows Server 2008开始,诞生了组策略的PowerShell命令,它们可以更加简化组策略的管理过程。

  Get-GPO

  Get-GPO命令可以检索到每一个组策略对象(GPO)的所有信息。而且可以根据GPO的名称,GPO的GUID来检索组策略信息,也可以使用-all选项来检索域中的所有组策略。虽然你会觉得通过GPMC也能获取这些信息,但是命令的输出还能列出一些通常会错过的信息,如GPO的所有者,它的创建时间,最后的修改时间以及启用还是禁用的信息。在网络中对于组策略问题进行排错时,这些信息将至关重要。

  Backup/Restore-GPO

  虽然可以通过系统状态的备份来对GPO进行备份,但是通过一个专门的任务对组策略进行单独备份也是一个不错的主意,毕竟这会让GPO的恢复变得更加容易。幸运的是,使用PowerShell命令backup-GPO就可以做到。与Get-GPO协作,可以根据GPO的名称,GUID或者使用-all选项来指定备份的GPO。这个命令最有用的部分是可以使用PowerShell脚本来定时进行备份:

  Backup-Gpo -Name CompanyGPO -Path C:GPO-Backup -Comment "Monthly Backup"

  Restore-GPO命令可以将GPO还原到指定的域。然而,如果你使用backup-GPO和restore-GPO命令来迁移组策略对象,需要保证Windows Server2008操作系统版本的一致性。也就是说,Windows Server 2008 R2的GPO将只能由Windows Server 2008 R2进行恢复。

  Get-ResultantSetOfPolicy

  很久以前,GPMC就都可以提供组策略的结果报告,这对于组策略的规划和记录来说都是一个非常有用的工具。如果你使用PowerShell命令get-ResultantSetOfPolicy,也可以迅速得到组策略的结果,而且报告可以是HTML的格式。例如,如果你想检查一个特定的用户在特定的计算机上组策略设置的结果,可以运行以下的命令,命令的结果会产生一个所有信息的HTML文档:

  Get-GPResultantSetofPolicy -user domaindomain.user -reporttype html -path c:GPO-ReportsUserGPOReport.html

  使用所有提到的cmdlet,PowerShell还能够提供一种额外的管理能力,那就是将这些命令脚本化,并按照计划执行,这样就可以更有效的监控组策略基础架构的运行状况。

  Set/Remove – GPLink

  GPLink的cmdlet可以让你创建和删除GPO与OU之间的关联关系。虽然在GPMC中执行这项任务也非常容易,但是cmdlet还可以提供另一个方便的管理工具。假如你需要一个GPO只是在每个月的某一天运行,其它时间禁止运行。可以在这一天计划运行GP link命令将GPO和需要的OU关联起来,并在这一天结束前将GPO的关联删除,整个过程系统自动处理,无需手工运行。你还可以使用其它GPO命令与GPLink的cmdlet进行组合,通过使用管道命令执行remote-GPLink,以下示例就是如何指定一条组策略或继承组策略,然后删除其链接:

  (Get-GPInheritance -Target "ou=CompanyOU,dc=domain,dc=com").GpoLinks | Remove-GPLink

  Get-GPPermissions

  组策略有时会应用失败的原因之一是因为在GPO上不正确的权限设置。Get-GPPermissions cmdlet会生成详细的报告,报告中会显示GPO的访问控制列表(ACL)以及应用的权限。所以,如果你想准确的了解谁对某个GPO有权限,可以使用下列命令:

  Get-GPPermissions -Name CompanyGPO -TargetName "Company" - TargetType Group

  命令会给出以下的输出:

  Trustee: Domain Users
  TrusteeType: Group
  PermissionLevel: GpoRead
  Inherited: False

  你能看到ACL中的所有对象,包括所有的管理组和系统组。在应用GPO时,有这样一个简单的输出,就可以非常容易的排除任何基于权限的问题。

相关推荐