前言
嘿,朋友们!在我们上一篇文章《通过 PowerShell 实现 AD 域用户的管理(增、删、查、改)》中,我们探讨了如何有效地管理 Active Directory (AD) 域用户,包括用户的增、删、查、改操作。希望这些内容能帮助到你们在日常工作中更好地管理用户账户。
今天,我们将继续深入这个主题,转而探讨一个同样重要但常常被忽视的方面——域组的使用方法。域组在组织和管理用户方面发挥着至关重要的作用。通过合理地使用域组,我们不仅可以简化权限管理,还能提高安全性和效率。
1.新增域组
# 创建全局安全用户组,设置组名、显示名称,指定OU路径、描述
New-ADGroup -Name "ITAdmins Test" -SamAccountName "ITAdminsTest" -GroupCategory Security -GroupScope Global -DisplayName "ITAdminsTest" -Path "OU=Groups,OU=BaiYang,DC=baiyang,DC=org" -Description "IT测试组"
# 参数说明:
-Name: 组名和对象名称DN
-SamAccountName:SAM 帐户名,用于身份验证的唯一标识符
-GroupCategory:指定组的类型。通讯组(Distribution or 0) 或 安全组(Security or 1)
-GroupScope:组作用域。本地域(DomainLocal or 0)全局(Global or 1)通用(Universal or 2)
-DisplayName:组的显示名称。即用户友好名称,通常在用户界面中显示。
-Path: 指定组织单位 (OU) 下,组将被创建和存储的位置。
-Description:指定组的描述信息。
- 更多参数可以参阅微软文档: https://learn.microsoft.com/en-us/powershell/module/activedirectory/new-adgroup?view=windowsserver2025-ps
2.查询域组
# 获取用户组信息
Get-ADGroup -Identity "ITAdminsTest"
#>
DistinguishedName : CN=ITAdmins Test,OU=Groups,OU=BaiYang,DC=baiyang,DC=org
GroupCategory : Security
GroupScope : Global
Name : ITest Users
ObjectClass : group
ObjectGUID : 8bc25213-c6ff-4ab5-bffd-43dab58d4ef2
SamAccountName : ITestUsers
SID : S-1-5-21-1483408722-1403447730-390134965-1205
3.修改域组
# 把用户组ITAdminsTest的描述改成“IT测试管理组”,显示名称改成“ITestAdmins”
Set-ADGroup -Identity "ITAdminsTest" -Description "IT测试管理组" -DisplayName "ITestAdmins" -PassThru
4.将用户添加到域组
# 添加用户到用户组
Add-ADGroupMember -Identity "ITAdminsTest" -Members "baiyang001"
# 添加多个用户到用户组
Add-ADGroupMember -Identity "ITAdminsTest" -Members "baiyang001", "baiyang002"
5.查询域组成员
# 获取组成员,包括子组的成员
Get-ADGroupMember -Identity "ITAdminsTest" -Recursive
# 获取组成员,获取成员用户名,这样成员的SAM帐户名就出来了,多用于批量处理
(Get-ADGroupMember -Identity "ITAdminsTest" -Recursive).SamAccountName
6.将用户从域组中移除
# 移除AD组中的用户
Remove-ADGroupMember -Identity "ITAdminsTest" -Members "baiyang001" -Confirm:$False
7.删除域组
# 删除用户组
Remove-ADGroup -Identity "ITAdminsTest" -Confirm:$False
8.PowerShell 批量操作域组
示例: 使用 foreach 循环对域组进行批量遍历操作,可以自定义用户或者通过读取csv文件。
# 定义用户组列表,包含组名、SAM账户名和显示名称及描述
$groups = @(
@{Name="IT运维组"; SamAccountName="ityunweizu"; DisplayName="IT运维组"; Description="负责公司的IT运维工作"},
@{Name="开发组"; SamAccountName="kaifazhu"; DisplayName="开发组"; Description="负责软件开发和维护"},
@{Name="财务组"; SamAccountName="caiwuzu"; DisplayName="财务组"; Description="负责公司的财务管理"},
@{Name="人事组"; SamAccountName="renshizu"; DisplayName="人事组"; Description="负责员工管理和人事事务"}
)
# 遍历用户组列表并创建 AD 用户组
foreach ($group in $groups) {
New-ADGroup -Name $group.Name `
-SamAccountName $group.SamAccountName `
-GroupCategory Security `
-GroupScope Global `
-DisplayName $group.DisplayName `
-Description $group.Description `
-Path "OU=Groups,OU=BaiYang,DC=baiyang,DC=org"
}
小结
通过合理配置域组,你可以简化用户权限管理、增强安全性并提高团队的协作效率。无论是新增域组、修改权限组,还是删除冗余组,这些方法都能在实际工作中带来显著的便利。希望你能将这些实际应用于日常管理中,提升工作效率!