这是关于Active Directory组策略基础的典型问题
什么是组策略? 它是如何工作的,为什么我应该使用它?
注意:这是对新pipe理员的问题和回答,可能不熟悉它的function和function。
组策略是运行Windows 2000或更高版本Active Directory域的pipe理员可用的工具。 它允许集中pipe理join到域中的客户端计算机和服务器上的设置,并提供分发软件的基本方式。
设置被分组到称为组策略对象(GPO)的对象中。 GPO链接到Active Directory组织单位 (OU),可应用于用户和计算机。 GPO不能直接应用于组,但可以使用安全筛选或项目级目标来根据组成员资格筛选策略应用程序。
任何东西。
严重的是,你可以做任何你想要给你的域名用户或计算机。 有数百个预定义的设置,如文件夹redirect,密码复杂性,电源设置,驱动器映射,驱动器encryption, Windows更新等等。 任何你不能通过预定义的设置进行configuration,你可以通过脚本控制。 所有受支持的客户端都支持批处理和VBScript脚本, PowerShell脚本可以在Windows 7主机上运行。
专业提示:您可以在Windows XP和Windows Vista主机上运行PowerShell启动脚本,只要安装了PowerShell 2.0即可。 您可以使用以下语法创build一个调用脚本的batch file:
powershell Set-ExecutionPolicy RemoteSigned powershell \\\\server\share\script.ps1 powershell Set-ExecutionPolicy Restricted
第一行允许来自远程共享的未签名脚本在该主机上运行,第二行从batch file调用脚本。 第三行将策略设置为限制(缺省)以实现最大的安全性。
GPO以可预测的顺序应用。 本地政策首先应用。 在本地机器上通过gpedit.msc设置策略。 网站政策是应用第二。 第三个是域策略,第四个是OU策略。 如果一个对象嵌套在多个OU中,则首先将GPO应用于最接近根的OU。
请记住,如果发生冲突,则最后的 GPO应用“胜利”。 这意味着,例如,如果在该GPO中的设置与在父OU中链接的设置之间存在冲突,则在OU中与计算机所在的链接的策略将获胜。
只要Domain Users
和Domain Computers
组具有对共享的读取访问权限,login或启动脚本就可以存在于任何networking共享上。 传统上,它们驻留在\\domain.tld\sysvol
,但这不是\\domain.tld\sysvol
的。
启动脚本在计算机启动时运行。 它们作为本地计算机上的SYSTEM帐户运行。 这意味着他们作为计算机的帐户访问networking资源。 例如,如果您希望启动脚本能够访问UNC为\\server01\share1
且计算机名称为WORKSTATION01
的共享上的networking资源,则需要确保WORKSTATION01$
有权访问该共享。 由于这个脚本是以系统的forms运行的,因此它可以执行安装软件,修改registry的特权部分以及修改本地机器上的大部分文件等内容。
login脚本在本地login用户的安全上下文中运行。 希望您的用户不是pipe理员,这意味着您将无法使用这些软件来安装软件或修改受保护的registry设置。
login和启动脚本是Windows 2003和更早版本域的基石,但在Windows Server的更高版本中,其用处已经减小。 组策略首选项为pipe理员提供了一种更好的方式来处理驱动器和打印机映射,快捷方式,文件,registry项,本地组成员身份以及许多其他只能在启动或login脚本中执行的操作。 如果您认为您可能需要使用脚本执行简单任务,则可能会出现组策略或首选项。 现在,在Windows 7(或更高版本)客户端的域中,只有复杂的任务需要启动或login脚本。
是的,我知道。 我去过那儿。 在学术实验室或其他共享计算机场景中,您希望打印机或类似资源的某些用户策略基于计算机而非用户,这一点尤为普遍。 猜猜看,你真幸运! 您希望启用组策略环回模式的GPO设置。
别客气。
是的,你可以。 虽然有一些警告。 该软件必须采用MSI格式,对其进行的任何修改必须位于MST文件中。 您可以使用ORCA或任何其他MSI编辑器等软件制作MST。 如果不进行转换,则最终结果与运行msiexec /i <path to software> /q
该软件也仅在启动时安装,所以它不是分发软件的一种非常快速的方式,但它是免费的。 在一个低预算的实验室环境中,我已经做了一个计划任务(通过GPO),它将在午夜30分钟的时间内重新启动每台实验室计算机。 这将确保软件最多在这些实验室中过时一天。 尽pipe如此,像SCCM , LANDesk , Altaris或其他任何可以按需推送软件的软件都是最好的。
客户每30分钟随机刷新一次他们的组策略对象。 这意味着,默认情况下可以等待120分钟。 此外,某些设置(如驱动器映射,文件夹redirect和文件首选项)仅适用于启动或login。 组策略用于长期计划pipe理,而不是用于即时快速修复的情况。
域控制器每五分钟刷新一次他们的策略。
有关组策略首选项的快速说明:如果要使用这些设置,但具有Windows XP SP2或Windows XP SP3工作站,则首先需要安装适用于Windows XP的组策略首选项客户端扩展(KB943729) 。
在Active Directory (AD)中的域根目录下有一个默认的Computers container
,通常被误认为是Active Directory组织单位(OU)。 这实际上是一个Container
,而不是一个OU
。 由于这实际上不是OU,所以组策略不适用于此容器中的对象。 此规则的例外是在domain level
应用的组策略。 这些将是适用于Computers container
对象的唯一策略。
默认情况下,join域的计算机对象(未预先分阶段)转到“ Computers container
。
因此,如果您想知道为什么您的政策不适用,请检查以确保所涉及的对象位于AD中的正确位置。
您可以使用组策略pipe理控制台(GPMC)备份GPO。
Group Policy Objects
,然后单击Back Up All
。 Backup
。 如果要备份多个GPO,说明将适用于您备份的所有GPO。 备份组策略的好处在于它具有内置的版本控制function。 意思是说,你可以多次使用这个过程,它会跟踪策略之间的变化。 然后您可以恢复到特定版本的策略。
您甚至可以设置计划任务来运行使用Backup-GPO命令自动执行备份的PowerShell脚本。
您仍然需要备份(使用传统备份方法)备份GPO的文件夹。
来这里寻找一个简单的Powershell脚本,您可以添加到计划任务备份您的GPO? 没有MDOP包中的AGPM?
干得好。
首先为每周的一天做一个轮转的每日备份。 您需要提前为每个文件夹(星期日/星期一等)创build文件夹path。我没有使用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
同样的事情在这里,但这一次是每月。 再次提前创build文件夹,如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