什么是组策略,它如何工作?


31

这是有关Active Directory组策略基础的规范问题

什么是组策略?它如何运作?为什么要使用它?

注意:这是对新管理员的问答,可能不熟悉它的功能和功能。


为什么当其他人因为被认为“这里没有实际问题”而被简单地关闭或搁置时,该问题得到保护?我不明白
Marki 2013年

@Marki您应该阅读此meta帖子。当某个主题上有很多“坏”或初学者问题时,我们经常会创建一个规范问题,其中包含有关该主题的大量常规信息,以便可以将所有关于该主题的初学者或基本问题都作为一个重复规范的问题。
MDMarra 2013年

Answers:


27

什么是组策略?

组策略是供运行Windows 2000或更高版本的Active Directory域的管理员使用的工具。它允许集中管理加入域的客户端计算机和服务器上的设置,并提供基本的软件分发方式。

设置分为称为组策略对象(GPO)的对象。GPO链接到Active Directory组织单位(OU),并且可以应用于用户和计算机。尽管可以使用安全筛选项目级定位来基于组成员身份筛选策略应用程序,但是GPO无法直接应用于组。

太酷了,该怎么办?

随便啦

认真地说,您可以对域中的用户或计算机执行任何您想做的事情。有数百种预定义设置,例如文件夹重定向,密码复杂性,电源设置,驱动器映射,驱动器加密,Windows Update等。您无法通过预定义设置配置的任何内容都可以通过脚本进行控制。所有受支持的客户端均支持Batch和VBScript脚本,并且PowerShell脚本可以在Windows 7主机上运行。

专业提示:实际上,只要安装了PowerShell 2.0,就可以在Windows XP和Windows Vista主机上运行PowerShell启动脚本。您可以制作一个使用以下语法调用脚本的批处理文件:

powershell Set-ExecutionPolicy RemoteSigned
powershell \\\\server\share\script.ps1
powershell Set-ExecutionPolicy Restricted

第一行允许来自远程共享的未签名脚本在该主机上运行,​​第二行从批处理文件调用脚本。第三行设置将策略重新设置为受限(默认),以实现最大安全性。

组策略对象如何应用?

GPO以可预测的顺序应用。首先应用本地策略。通过gpedit.msc在本地计算机上设置了策略。站点策略第二次应用。域策略应用第三,OU策略应用第四。如果对象嵌套在多个OU内,则GPO将首先应用于最接近根的OU。

请记住,如果发生冲突,则上一个 GPO会“获胜”。例如,这意味着,如果该GPO中的设置与父OU中链接的设置之间存在冲突,则计算机所在的OU上链接的策略将获胜。

登录和启动脚本看起来很酷,它们如何工作?

只要Domain UsersDomain Computers组对它们所在的共享具有读取访问权限,登录或启动脚本就可以存在于任何网络共享上。传统上,它们位于中\\domain.tld\sysvol,但这不是必需的。

启动脚本在计算机启动时运行。它们作为本地计算机上的SYSTEM帐户运行。这意味着他们以计算机的帐户访问网络资源。例如,如果你想启动脚本对共享的访问到网络资源具有UNC\\server01\share1和计算机的名字是WORKSTATION01你需要确保WORKSTATION01$有访问该共享。由于此脚本是作为系统运行的,因此它可以执行诸如安装软件,修改注册表的特权部分以及修改本地计算机上的大多数文件之类的工作。

登录脚本在本地登录用户的安全上下文中运行。希望您的用户不是管理员,这意味着您将无法使用这些用户来安装软件或修改受保护的注册表设置。

登录和启动脚本是Windows 2003和早期域的基石,但在Windows Server的更高版本中,其作用已被削弱。组策略首选项为管理员提供了一种更好的方式来处理驱动器和打印机的映射,快捷方式,文件,注册表项,本地组成员身份以及许多其他只能在启动或登录脚本中完成的事情。如果您认为可能需要使用脚本来完成简单的任务,则可能有组策略或它的首选项。如今,在具有Windows 7(或更高版本)客户端的域上,只有复杂的任务才需要启动或登录脚本。

我发现了一个很棒的GPO,但它适用于用户,我希望它适用于计算机!

是的,我知道。我去过那儿。这在学术实验室或其他共享计算机方案中尤为普遍,在这些方案中,您希望打印机或类似资源的某些用户策略基于计算机而不是用户。猜猜是什么,您真幸运!您要为组策略环回模式启用GPO设置。

别客气。

您说我可以用它来安装软件,对吗?

是的,可以。不过,有一些警告。该软件必须为MSI格式,并且对其所做的任何修改都必须在MST文件中。您可以使用ORCA等软件或任何其他MSI编辑器制作MST 。如果不进行转换,则最终结果将与运行相同msiexec /i <path to software> /q

该软件也仅在启动时安装,因此它不是分发软件的快速方法,而是免费的。在低预算的实验室环境中,我制定了计划任务(通过GPO),该任务将在午夜以随机30分钟的偏移量重新启动每台实验室计算机。这将确保这些实验室中的软件最多不超过一天。尽管如此,还是最好使用像SCCMLANDeskAltaris之类的软件或可以按需“推送”软件的其他任何软件。

多久使用一次?

客户端每90分钟刷新一次组策略对象,并随机分配30分钟。这意味着,默认情况下,最多可能需要等待120分钟。另外,某些设置(例如驱动器映射,文件夹重定向和文件首选项)仅在启动或登录时应用。组策略用于长期计划管理,而不用于即时快速修复情况。

域控制器每五分钟刷新一次其策略。


3
再次,很好的工作。可能还想从您的史诗级广告质量检查链接到此页面。
EEAA 2012年

1
这次真是万分感谢。我们需要从规范答案中链接到这一点(和AD)。
Bart De Vos 2012年

我认为该广告已在其中,我已将此广告提交到meta中进行审核。这仍然有些不完整,我希望今晚完成。
MDMarra

“ Altaris”是否指的是Altaris的特定产品,例如Altiris Deployment Solution(DS)?
彼得·莫滕森

1
组策略环回模式的链接重定向到“ 下载Windows Server 2003 R2退休的内容 ”;也许应该将其更新到以下链接(或类似链接):technet.microsoft.com/en-us/library/cc978513.aspx
Pieter Geerkens

12

关于组策略首选项的简要说明:如果要使用这些设置但具有Windows XP SP2或Windows XP SP3工作站,则这些工作站首先需要安装Windows XP的组策略首选项客户端扩展(KB943729)

计算机容器与计算机OU

Active Directory(AD)Computers container的域根目录下有一个默认值,它通常被误认为是Active Directory组织单位(OU)。这实际上是一个,而不是一个。由于这实际上不是OU,因此组策略不适用于此容器中的对象。此规则的例外情况是应用于的组策略。这些将是应用于中对象的唯一策略。ContainerOUdomain levelComputers container

默认情况下,未预先准备好加入域的计算机对象转到Computers container

因此,如果您想知道为什么无法应用您的政策,请检查并确保有问题的对象位于AD中的正确位置。

备份GPO

您可以使用组策略管理控制台(GPMC)备份GPO。

  1. 打开“组策略管理”,然后双击Group Policy Objects包含要备份的组策略对象(GPO)的目录林和域。
  2. 若要备份单个GPO,请右键单击GPO,然后单击“备份”。要备份域中的所有GPO,请右键单击Group Policy Objects,然后单击Back Up All
  3. 在“备份组策略对象”对话框的“位置”框中,输入要存储GPO备份的位置的路径,或单击“浏览”,找到要在其中存储GPO备份的文件夹( s),然后单击确定。
  4. 在“描述”框中,键入要备份的GPO的描述,然后单击“确定” Backup。如果要备份多个GPO,则说明将适用于所有备份的GPO。
  5. 操作完成后,单击“确定”。

备份组策略的好处在于,它具有内置的版本控制。这意味着,您可以多次使用此过程,并且它将跟踪策略之间的更改。然后,您可以还原到策略的特定版本。

您甚至可以设置计划任务来运行PowerShell脚本,该脚本使用Backup-GPO命令自动执行备份。

您仍然想要备份(使用常规备份方法)要将GPO备份到的文件夹。


3

来这里寻找简单的Powershell脚本,您可以将其添加到“计划任务”中以备份GPO吗?MDOP包中没有AGPM吗?

干得好。

第一个在一周中的一天进行轮换的每日备份。您需要为每个文件夹(周日/周一/等)提前创建文件夹路径。我不使用New-Item,因为我知道为什么每次处理Test-Item和New-Item时都要处理它们第1天后真正的静态文件夹。您将需要在运行它的服务器上使用AD Powershell模块。

# GPOBackupScriptDayOfWeek.PS1
# This script Backup all GPOs and save it to a folder based on the day of the week
# It runs as an automated task on SERVER and we keep a one week rotation on disk


Import-Module grouppolicy 
$date = get-date
$dayofweek = $date.DayofWeek
#Remove current backup from the folder (to alleviate space issues down the road since it won't overwrite each time)
Remove-Item \\SERVER\GPO_Backup\$dayofweek\* -Recurse -Force
#Backup current GPOs to the folder
Backup-Gpo -All -Path \\SERVER\GPO_Backup\$dayofweek

这里也是一样,但是这次是每月一次。同样,请提前在1月,2月等创建文件夹。

# GPOBackupScript.PS1
# This script Backup all GPOs and save it to a folder each month on the first of the month
# It runs as an automated task on SERVER and we keep a one year rotation

Import-Module grouppolicy 
$month = get-date -Format MMMM
#Remove current backup from the folder (to alleviate space issues down the road since it won't overwrite each time)
Remove-Item \\SERVER\GPO_Backup\$month\* -Recurse -Force
#Backup current GPOs to the folder
Backup-Gpo -All -Path \\SERVER\GPO_Backup\$month
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.