[玩转系统] 如何在 Active Directory 中查找(并删除)未链接的 GPOS
作者:精品下载站 日期:2024-12-14 13:16:55 浏览:16 分类:玩电脑
如何在 Active Directory 中查找(并删除)未链接的 GPOS
随着组织的发展,其 Active Directory (AD) 环境和组策略 (GP) 基础设施也会随之发展。组策略对象 (GPO) 很快就会失控,在您意识到之前,您的环境中就会出现数十个未链接的 GPO。让我们改变这一点。
在本教程中,您将学习如何使用组策略管理控制台 (GPMC) 和 PowerShell 发现所有这些未链接的 GPO。
让我们开始吧!
先决条件
本文将是一个带有实践示例的教程。如果您想跟随,请确保您拥有:
- 活动目录域。本文将使用名为 HomeLab.Local 的域。
- 加入 AD 域的 Windows 计算机。本教程将使用 Windows 10。
- Windows 计算机安装了远程服务器管理工具 (RSAT) 软件包。
未链接的 GPO 从哪里来?
当您创建 GPO 并定义所有设置时,您打算将其应用于客户端计算机,但该 GPO 实际上并未执行任何操作。要真正影响客户端计算机,GPO 必须链接到 AD 组织单位 (OU)。
随着时间的推移,越来越多的管理员创建 GPO,忘记链接它们,取消 GPO 与 OU 的链接,打算删除它们但从未这样做,GPO 闲置无所事事可能会激增。特别是在大型组织中,如果维护不当,未链接的 GPO 可能会增加到数百个。
在 GPMC 中查找未链接的 GPO
您可以通过以下两种方式之一找到未链接的 GPO:通过 GPMC 或通过 PowerShell。如果您只有少量未链接的 GPO,则使用 GPMC 而不是创建 PowerShell 脚本可能更有意义。
要通过 GPMC 查找未链接的 GPO:
1. 转至开始菜单并键入“组策略管理”,打开 GPMC。当 GPMC 程序出现时,将其打开。
2. 在 GPMC 中,转到林: 域 —> ,右键单击输入域名并点击搜索。此操作将打开搜索组策略对象对话框。
3. 单击搜索项下拉列表并选择GPO链接。此搜索项将搜索链接到 OU 的 GPO。将条件下拉列表更改为存在于,并将域更改为您的域。
在下面的屏幕截图中,这些设置的组合将搜索链接到 homelab.local 域中至少一个 OU 的所有 GPO。
完成后,点击添加添加条件。它将显示在所有搜索条件部分下。
4. 现在,单击搜索按钮查找与搜索条件匹配的所有 GPO。
5. 如下图所示,搜索结果中仅显示链接的 GPO。
6. 要查找未链接的 GPO,现在手动将所有 GPO 与链接的 GPO 进行比较,如下所示。在下面的屏幕截图中,仅链接了三个 GPO。通过查看组策略对象节点,您可以看到两个 GPO 未显示(UnlinkedGPO1 和 UnlinkedGPO2)。这意味着它们没有联系。
此任务将非常耗时,您将在下一节中了解如何通过 PowerShell 执行此任务。
当链接的 GPO 被分配给像 OU 这样的 AD 对象时,它们将具有链接,如下所示。如果您只有少数 GPO,则可以查找具有链接的 GPO 和没有链接的 GPO。没有链接的 GPO 是未链接的 GPO。
使用 PowerShell 查找未链接的 GPO
在 GPMC 中搜索 GPO 可能适用于少数 GPO,但如果您有数百或数千个 GPO 管理数千个端点,那么您将会遇到困难。在这种情况下,是时候自动化此过程并构建一个方便的 PowerShell 工具了。
假设您使用的是已加入本地域并安装了 RSAT 的 Windows PC:
1. 打开 Windows PowerShell 控制台。
2. 导入组策略模块。 GroupPolicy 模块随 RSAT 一起提供,并且应该已安装在您的系统上。该模块包含在 PowerShell 中使用 GPO 所需的所有命令。
Import-Module GroupPolicy
3. 使用 All
参数运行 Get-GPO
PowerShell cmdlet。此 cmdlet 查询 AD 并返回找到的所有 GPO。
Get-GPO -All
4. 现在您可以查询域中的所有 GPO,您现在必须找出哪些 GPO 未链接。为此,请运行 Get-GPOReport
cmdlet。此 cmdlet 允许您提供要返回的输出的名称和类型。
Get-GPOReport -Name SomeGPO -ReportType XML
手动复制并粘贴在上述步骤中找到的 GPO 名称之一,然后运行此命令。您将看到该 cmdlet 返回 GPO 具有的所有设置的 XML 报告。特别要注意名为 LinksTo
的部分,如下所示。此部分包含 SOMPath
XML 节点,该节点表示其链接到的 OU 的路径。
Get-GPOReport
cmdlet 一次只能获取单个 GPO 的报告。此 cmdlet 仅包含来自域的搜索结果,而不包含来自 AD 站点的搜索结果。
5. 现在您已经知道如何使用 Get-GPO
查找所有 GPO 以及用于发现它们链接到的内容的 cmdlet (Get-GPOReport
),请通过复制将它们组合起来并将下面的 PowerShell 命令粘贴到控制台中。
以下命令查询域中的所有 GPO (Get-GPO
),然后为每个 GPO 生成 XML 报告 (Get-GPOReport
),仅允许那些不存在的 GPO报告中没有要返回的 字符串 (
Select-String
)。
Get-GPO -All | Where-Object {
$_ | Get-GPOReport -ReportType XML | Select-String -NotMatch "<LinksTo>"
}
在教程的环境中,您可以在下面的示例中看到 UnlinkedGPO1 和 UnlinkedGPO2 未链接到任何 OU。
构建未链接的 GPO PowerShell 工具
现在,让我们将您学到的所有内容放在一起,构建一个您可能在现实世界中使用的 PowerShell 脚本。
1. 打开您最喜欢的代码编辑器并将以下 PowerShell 脚本复制/粘贴到其中。将脚本保存为Remove-UnlinkedGPO.ps1。这个脚本:
- 创建一个包含当前日期的文件夹来存储未链接的 GPO 报告。
- 查找 AD 中所有未链接的 GPO。
- 为每个未链接的 GPO 创建 HTML 报告并将其保存到磁盘。
- 创建所有未链接 GPO 的列表并将其附加到文本文件。
- 使用
Remove-GPO
cmdlet 进行确认步骤,删除每个未链接的 GPO。
您还可以通过 GitHub 下载Remove-UnlinkedGPO.ps1 脚本。
Import-Module GroupPolicy
$Date = Get-Date -Format dd_MM_yyyy
$BackupDir = "c:\GPOBackup$Date"
## Creates a directory to store the GPO reports
if (-Not(Test-Path -Path $BackupDir)) {
New-Item -ItemType Directory $BackupDir -Force
}
# Get all GPOs with the gpo report type as XML and also look for the section in the xml report.
# Consider only the GPOs that doesnt have section.
Get-GPO -All | Where-Object { $_ | Get-GPOReport -ReportType XML | Select-String -NotMatch "<LinksTo>" } | ForEach-Object {
# Backup the GPO, HTML report and saving the GPO details to text file are optional.
Backup-GPO -Name $_.DisplayName -Path $BackupDir
# Run the report and save as an HTML report to disk
Get-GPOReport -Name $_.DisplayName -ReportType Html -Path "$BackupDir$($_.DisplayName).html"
# Create and append to a text file called UnlinkedGPOs.txt in the backup folder that
# contains each GPO object that Get-GPO returns
$_ | Select-Object * | Out-File "$BackupDir\UnLinkedGPOs.txt" -Append
# Remove the GPO but first prompt before removing
$_.Displayname | Remove-GPO -Confirm
}
2. 执行Remove-UnlinkedGPO.ps1脚本。
3. 如果发现未链接的 GPO,脚本将提示您将其删除。此提示来自使用 Confirm
开关的 Remove-GPO
cmdlet。要确认删除该单个 GPO,请单击是,否则,单击全部是即可删除所有未链接的 GPO,无需进一步确认。
脚本完成并发现至少一个未链接的 GPO 后,您应该在 C:\GPOBackup\ 文件夹中看到 GPO 内容作为 GUID 文件夹以及 HTML 报告和
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag