作为Windows系统管理员,管理Active Directory(AD)组可能是您每天都要做的事情。虽然您可以使用Active Directory用户和计算机(ADUC)MMC插件,但是当您需要跨多个域管理组或自动执行组管理任务时会发生什么?这就是PowerShell派上用场的地方。
在这个实践教程中,您将学习如何使用PowerShell像专家一样管理AD组。您将学习如何使用实际的现实示例来查询组,创建新组以及修改现有组。
先决条件
如果您想要按照本教程进行操作,请确保您已经具备以下先决条件:
- 连接到Active Directory域的Windows计算机(Windows 10/11或Windows Server)
- 具有管理AD组权限的用户帐户
使用PowerShell查询AD组
让我们从一个常见场景开始 – 您是一家公司的新IT管理员,需要审计AD组结构。您的经理想要知道不同部门存在哪些组。在这里,Get-ADGroup
cmdlet将成为您的好帮手。
按名称查找组
也许最简单的任务是查找包含特定文本在其名称中的组。例如,要查找所有名称中包含“销售”的组:
Get-ADGroup -Filter 'Name -like "Sales"'
星号 (*) 是通配符,可以匹配“Sales”前后的任何字符。此命令将返回所有名称中包含“Sales”的组。
按组类型过滤
也许您只想查看安全组(而不是分发组)。您可以使用 -and
操作符添加额外的过滤条件:
Get-ADGroup -Filter 'Name -like "Sales" -and GroupCategory -eq "Security"'
现在您只会看到名称中包含“Sales”的安全组。
在特定组织单位中搜索
需要在特定的组织单位(OU)中查找组吗?使用 SearchBase
参数:
Get-ADGroup -Filter * -SearchBase 'OU=Engineering,DC=company,DC=local'
此命令查找工程OU及其子OU中的所有组。
查找最近创建的组
想知道哪些组是在某个日期之后创建的吗?过滤 whenCreated
属性:
Get-ADGroup -Filter 'whenCreated -ge "2023-01-01"'
这将返回在2023年1月1日或之后创建的所有组。
创建新的AD组
现在让我们看看如何创建新组。也许您的公司正在重组,您需要为新部门创建组。
创建安全组
以下是为IT支持人员创建新安全组的方法:
New-ADGroup -Name "IT_Support" `
-GroupScope Global `
-GroupCategory Security `
-Description "Group for IT support staff" `
-Path "OU=IT,DC=company,DC=local"
这将在IT组织单位中创建一个名为“IT_Support”的全局安全组。
创建分发组
需要一个电子邮件分发组吗?只需更改几个参数:
New-ADGroup -Name "Marketing_News" `
-GroupScope DomainLocal `
-GroupCategory Distribution `
-Description "Group for receiving marketing updates" `
-Path "OU=Marketing,DC=company,DC=local"
一次创建多个组
有多个相似的组要创建吗?使用循环:
$regions = "North", "South", "East", "West"
foreach ($region in $regions) {
New-ADGroup -Name "Sales_$region" `
-GroupScope Global `
-GroupCategory Security `
-Description "Sales team for $region region" `
-Path "OU=Sales,DC=company,DC=local"
}
修改现有组
组织中的事物是不断变化的。组需要重命名,更新描述和修改范围。让我们看看如何处理这些任务。
重命名组
要重命名一个组,您需要更改其名称和samAccountName:
# 首先重命名组对象
Get-ADGroup EngineeringTeam | Rename-ADObject -NewName TechTeam
# 然后更新samAccountName
Get-ADGroup EngineeringTeam | Set-ADGroup -SamAccountName TechTeam
更新组描述
需要更新组的描述吗?使用Set-ADGroup
一行代码:
Get-ADGroup TechTeam | Set-ADGroup -Description 'Technical Team for Engineering Projects'
更改组范围
如果您需要更改组的范围(例如从全球到通用):
Get-ADGroup TechTeam | Set-ADGroup -GroupScope Universal
专业提示
以下是一些提示,可以让您的AD组管理更加高效:
-
- 查询多个组时始终使用 `-Filter` 而不是 `-Identity` – 这更高效
-
- 请记住,如果组中有成员,则无法更改组范围 – 请先移除成员
-
- 在进行更改时使用 `-WhatIf` 参数以预览将会发生的情况
- 始终先在非生产环境中测试您的组更改
概要
您现在应该已经建立了一个管理 AD 组的 PowerShell 基础。虽然 Active Directory 用户和计算机管理工具适用于一次性任务,但 PowerShell 赋予您自动化和大规模管理组的能力。
请记住 – 这里展示的示例只是个开始。PowerShell 的 AD cmdlet 非常强大和灵活。随着您对这些基础知识越来越熟悉,您可以构建更复杂的解决方案以满足您组织的需求。
想要了解更多关于 Active Directory PowerShell 的知识吗?查看我们的其他教程: