答案1
什么是组策略?
组策略是运行Windows 2000或更高版本Active Directory 域。它允许集中管理加入域的客户端计算机和服务器上的设置,并提供分发软件的基本方法。
设置被分组到称为组策略对象 (GPO) 的对象中。GPO 链接到Active Directory 组织单位(OU)并可应用于用户和计算机。GPO 不能直接应用于组,但您可以使用安全过滤或者项目级定位根据群组成员身份过滤策略应用。
这很酷,它能做什么?
任何事物。
说真的,你可以对域中的用户或计算机做任何你想做的事情。有数百个预定义设置,例如文件夹重定向、密码复杂性、电源设置、驱动器映射、驱动器加密,Windows更新等等。任何无法通过预定义设置配置的内容都可以通过脚本进行控制。批量和VB脚本所有受支持的客户端均支持脚本,并且电源外壳脚本可以在 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 获胜。这意味着,例如,如果计算机所在 OU 中链接的策略与该 GPO 中的设置存在冲突,则该 OU 中链接的策略将获胜。
登录和启动脚本看起来很酷,它们是如何工作的?
只要Domain Users
和Domain Computers
组对其所在的共享具有读取权限,登录或启动脚本就可以存在于任何网络共享上。传统上,它们位于 中\\domain.tld\sysvol
,但这不是必需的。
启动脚本在计算机启动时运行。它们以本地计算机上的系统帐户身份运行。这意味着它们以计算机帐户的身份访问网络资源。例如,如果您希望启动脚本能够访问具有以下权限的共享上的网络资源:北卡罗来纳大学并且\\server01\share1
计算机的名称是,WORKSTATION01
您需要确保该计算机WORKSTATION01$
有权访问该共享。由于此脚本以系统身份运行,因此它可以执行诸如安装软件、修改注册表的特权部分以及修改本地计算机上的大多数文件等操作。
登录脚本在本地登录用户的安全上下文中运行。希望您的用户不是管理员,这意味着您将无法使用这些脚本来安装软件或修改受保护的注册表设置。
登录和启动脚本是 Windows 2003 及更早版本域的基石,但在 Windows Server 的后续版本中,它们的实用性已减弱。组策略首选项为管理员提供了一种更好的方式来处理驱动器和打印机映射、快捷方式、文件、注册表项、本地组成员身份以及许多其他只能在启动或登录脚本中完成的事情。如果您认为您可能需要使用脚本来完成一项简单任务,那么可能有一个组策略或首选项可以代替它。如今,在具有 Windows 7(或更高版本)客户端的域中,只有复杂的任务才需要启动或登录脚本。
我发现了一个很酷的 GPO,但它适用于用户,我希望它适用于计算机!
是的,我知道。我遇到过这种情况。这种情况在学术实验室或其他共享计算机场景中尤其普遍,在这些场景中,您希望某些针对打印机或类似资源的用户策略基于计算机,而不是用户。猜猜怎么着,你很幸运!您想要启用 GPO 设置组策略环回模式。
不客气。
你说我可以用这个来安装软件,对吗?
是的,你可以。不过有一些注意事项。软件必须微星格式,任何修改都必须以移动性文件。您可以使用以下软件制作 MST逆戟鲸或任何其他 MSI 编辑器。如果不进行转换,最终结果将与运行msiexec /i <path to software> /q
该软件也仅在启动时安装,因此这不是一种非常快速的软件分发方式,但它是免费的。在低预算的实验室环境中,我制定了一个计划任务(通过 GPO),该任务将在午夜以随机 30 分钟的偏移量重新启动每台实验室计算机。这将确保这些实验室中的软件最多过时一天。尽管如此,像星火控制管理,蓝代斯克,阿尔塔里斯或者其他任何可以按需“推送”软件的东西都是更好的选择。
使用频率是多少?
客户端每 90 分钟刷新一次组策略对象,每次刷新间隔为 30 分钟。这意味着默认情况下,最多可能需要等待 120 分钟。此外,某些设置(如驱动器映射、文件夹重定向和文件首选项)仅在启动或登录时应用。组策略适用于长期计划管理,不适用于即时快速修复情况。
域控制器每五分钟刷新一次其策略。
答案2
关于组策略首选项的简要说明:如果您想使用这些设置,但拥有 Windows XP SP2 或 Windows XP SP3 工作站,则首先需要安装这些适用于 Windows XP 的组策略首选项客户端扩展 (KB943729)。
计算机容器与计算机 OU
Computers container
域根目录下有一个默认的活动目录(AD),经常被误认为是 Active Directory 组织单位 (OU)。这实际上是Container
,而不是OU
。由于这实际上不是 OU,因此组策略不适用于此容器内的对象。此规则的例外是应用于 的组策略domain level
。这些将是应用于 中对象的唯一策略Computers container
。
默认情况下,加入域的未预先安排的计算机对象将转到Computers container
。
因此,如果您想知道为什么您的政策不适用,请检查以确保相关对象位于 AD 中的正确位置。
备份 GPO
您可以使用组策略管理控制台 (GPMC) 备份 GPO。
- 打开组策略管理,然后双击
Group Policy Objects
包含要备份的组策略对象 (GPO) 的林和域。 - 要备份单个 GPO,请右键单击该 GPO,然后单击“备份”。要备份域中的所有 GPO,请右键单击
Group Policy Objects
并单击Back Up All
。 - 在“备份组策略对象”对话框的“位置”框中,输入要存储 GPO 备份的位置的路径,或单击“浏览”,找到要存储 GPO 备份的文件夹,然后单击“确定”。
- 在“说明”框中,键入要备份的 GPO 的说明,然后单击
Backup
。如果要备份多个 GPO,则说明将适用于您备份的所有 GPO。 - 操作完成后单击“确定”。
备份组策略的优点在于它具有内置版本控制。这意味着您可以多次使用此过程,它将跟踪策略之间的更改。然后您可以恢复到策略的特定版本。
您甚至可以设置计划任务来运行电源外壳使用备份GPO命令来自动备份。
您仍然需要备份(使用传统备份方法)要将 GPO 备份到的文件夹。
答案3
来这里寻找一个简单的 Powershell 脚本,您可以将其添加到计划任务中以备份您的 GPO?没有 MDOP 包中的 AGPM?
干得好。
第一个是按星期几进行轮流每日备份。您需要提前为每个文件夹创建文件夹路径(星期日/星期一/等等)。我没有使用 New-Item,因为我想既然这些在第一天之后都是静态文件夹,为什么每次都要处理 Test-Item 和 New-Item。您需要在运行它的服务器上安装 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
同样,这次是按月计算。同样,提前创建文件夹,例如一月、二月等。
# 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