当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

作者:精品下载站 日期:2024-12-14 23:22:02 浏览:14 分类:玩电脑

使用 PowerShell 管理 Active Directory 中的组策略 (GPO)


在 Active Directory 域中管理组策略对象 (GPO) 的主要工具是图形组策略管理控制台 (

GPMC.msc

)。为了自动化并提高 Active Directory 中某些 GPO 管理任务的性能,您可以使用提供多种 GPO 管理功能的 PowerShell。

如何安装组策略管理PowerShell模块?

要管理域 GPO,您的计算机上必须安装GroupPolicy模块。安装组策略管理功能后,此模块可在 Windows Server 上使用。您可以使用服务器管理器控制台或 PowerShell 来实现此功能:

Install-WindowsFeature GPMC -IncludeManagementTools

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

如果要从运行桌面 Windows 10 或 11 版本的工作站管理 GPO,请通过 RSAT 安装组策略模块:

Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0

您可以使用以下命令在 GroupPolicy 模块中显示 PowerShell cmdlet 的完整列表:

Get-Command -Module GroupPolicy

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

使用 GroupPolicy PowerShell 模块,您可以:

  • 创建和删除GPO;

  • 将 GPO 链接到 OU 或从 OU 取消链接;

  • 备份和恢复GPO;

  • 设置 GPO 权限或配置继承。

使用 PowerShell 创建和管理 GPO

让我们看一下一些典型的管理任务,您可以在其中使用 PowerShell 来管理组策略。

要创建新的空白 GPO,请使用以下命令:

New-GPO -Name munTestGPO -Comment "My First GPO with PowerShell"

如果在您的域中创建了 Starter GPO,您可以使用模板之一创建新的组策略(例如,某些安全基线设置):

New-GPO -Name munTestGPO2 -StarterGPOName "Windows 10 Security Baseline"

使用 New-GPLink cmdlet 将组策略对象链接到 OU:

Get-GPO munTestGPO | New-GPLink -Target "ou=test,ou=munich,dc=a-d,dc=com"

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

要取消 GPO 与 OU 的链接:

Remove-GPLink -Name munTestGPO -Target "ou=test,ou=munich,dc=a-d,dc=com"

如果要禁用 GPO 而不删除链接,请使用 Set-GPLink cmdlet:

Set-GPLink -name munTestGPO -Target "ou=test,ou=munich,dc=a-d,dc=com" -linkenabled no

GPO 不再适用于 OU,但仍保持链接。

如果要强制应用 GPO,请添加-强制是选项。

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

以下 PowerShell 语句将创建一个新的 GPO 来更改注册表参数(禁用自动驱动程序更新),将策略限制为特定安全组,并将其链接到组织单位:

$key = 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching'
New-GPO 'munDisableDriverUpdate' | Set-GPRegistryValue -Key $key `
-ValueName 'SearchOrderConfig' -Type DWORD -Value 0 | Set-GPPermissions -Replace `
-PermissionLevel None -TargetName 'Authenticated Users' -TargetType group | `
Set-GPPermissions -PermissionLevel gpoapply -TargetName 'mun_admins' `
-TargetType group | New-GPLink -Target "ou=test,ou=munich,dc=a-d,dc=com" -Order 1

PowerShell 模块不允许您从 GPO 管理模板 (ADMX) 更改 GPO 选项的值。您只能编辑通过组策略首选项部署的注册表设置。

您可以使用 Get-GPO cmdlet 显示有关特定 GPO 或域中所有策略的信息。该 cmdlet 返回策略 GUID(通常需要诊断 GPO 的应用程序或在检查 Active Directory 运行状况时解决 GPO 复制问题)、GPO 创建/修改时间以及应用的 GPO WMI 筛选器。

Get-GPO -Domain a-d.site -All

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

您可以显示链接到 GPO 的 WMI 筛选器的设置(但您无法更改筛选器设置):

(Get-GPO munWin10Settings).WmiFilter

要更新远程计算机上的组策略设置,请使用 Invoke-GPUpdate cmdlet。您可以更新特定计算机上的 GPO:

Invoke-GPUpdate -Computer "corp\wks-mn0223" -Target "User"

或者在 OU 中的所有计算机上:

Get-ADComputer -filter * -Searchbase "ou=Computes,OU=MUNICH,dc=a-d,dc=com" | foreach{ Invoke-GPUpdate -computer $_.name -force}

Get-GPOReport cmdlet 用于获取包含策略设置的 HTML/XML 报告:

Get-GPOReport -name mun-BitlockerEncryption -ReportType HTML -Path "C:\ps\bitlocker_policy.html"

在本例中,我们显示了在 AD 中自动保存 BitLocker 密钥的策略的所有设置。

[玩转系统] 使用 PowerShell 管理 Active Directory 中的组策略 (GPO)

Get-GPResultantSetofPolicy cmdlet 允许您创建有关向指定用户和/或计算机应用的组策略的结果报告(RSoP - 策略结果集)。该报告看起来像使用 gpresult 工具生成的 HTML 报告(

GPResult /h c:\ps\gp-report.html /f

)。该 cmdlet 允许从远程计算机获取生成的 GPO 报告:

Get-GPResultantSetOfPolicy -user m.muller -computer corp\wks-mn0223 -reporttype html -path c:\ps\gp_rsop_report.html

如何使用 PowerShell 备份和恢复 GPO?

使用 PowerShell,您可以备份和还原 Active Directory 域中的 GPO。

要将所有组策略对象备份到指定文件夹:

Backup-GPO -All -Path C:\Backup\GPOs\

或者仅一个 GPO:

Backup-GPO -Name munWin10Settings -Path C:\Backup\GPOs -Comment "Backup GPO with PowerShell 2022/28/03"

要恢复 GPO,请使用以下命令:

Restore-GPO -Name munWin10Settings -Path C:\Backup\GPOs\

您可以将某些 GPO 备份版本保留在单个文件夹中。要恢复特定的 GPO 版本,您需要指定其备份 ID(32 位标识符):

Restore-GPO -Path ″C:\GPO Backups″ -BackupID 7654321-4321-4321-CCC-1234567890

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯