[玩转系统] 使用 PowerShell 管理 Active Directory 组
作者:精品下载站 日期:2024-12-14 23:15:00 浏览:14 分类:玩电脑
使用 PowerShell 管理 Active Directory 组
Active Directory 用户和计算机 (ADUC) 图形管理单元并不是管理 Active Directory 中安全组的唯一工具。您可以使用简单的 PowerShell 命令对 Active Directory 域中的用户组进行日常管理。在本文中,我们将了解如何使用 PowerShell 在 AD 中创建新组、向其中添加(或删除)用户、显示/导出组用户列表以及管理 AD 组时经常使用的其他有用命令。
要管理 AD 组,您可以使用 Windows PowerShell 的 Active Directory 模块。 RSAT-AD-PowerShell 模块在所有版本的 Windows Server(从 Windows Server 2008R2 开始)中均可用,并且可以作为 RSAT 功能安装在 Windows 10 和 Windows 11 桌面上。
检查 AD 模块是否已加载到当前 PowerShell 会话中:
Get-Module -Listavailable
如您所见,ActiveDirectory 模块已加载。如果没有,请使用以下命令导入:
Import-Module ActiveDirectory
让我们列出允许您管理 AD 组的 PowerShell cmdlet:
Get-Command -Module ActiveDirectory -Name "*Group*"
有 11 个可用的 cmdlet:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
New-ADGroup:使用 PowerShell 创建新的 AD 组
使用 New-ADGroup 命令在指定的 Active Directory 容器 (OU) 中创建新的安全组:
New-ADGroup "TestADGroup" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=a-d,DC=com' -GroupScope Global -PassThru -Verbose
您可以使用 Description 和 DisplayName 属性来指定组描述和显示名称。
您可以使用GroupScope参数来设置以下类型的组之一:
0=本地域
1=全局
2=通用
您可以按如下方式创建通讯组:
New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=a-d,DC=com' -GroupCategory Distribution -GroupScope Global -PassThru -Verbose
通讯组可用于发送电子邮件和/或授予 AD 权限。在此处了解有关 Exchange 通讯组的更多信息。
创建AD组时,可以填写任意属性。设置各种组属性值的最简单方法是通过哈希表:
$attrs = @{"mail"="[email protected]";"displayname"="ALL Munich Admins"}
New-ADGroup -Name MUNAdmins -GroupScope Global -OtherAttributes $attrs
通过 Add-AdGroupMember 将用户添加到 Active Directory
您可以使用 Add-AdGroupMember cmdlet 将用户添加到 Active Directory 组。让我们将两个用户添加到新组中:
Add-AdGroupMember -Identity TestADGroup -Members user1, user2
如果需要一次将大量用户添加到组中,可以将用户名列表保存到 CSV 文件中,然后将此 CSV 文件导入到 PowerShell 中,并使用简单的 PowerShell 脚本将每个用户添加到组中。
CSV 文件的格式应如下所示(用户必须连续列出,并以 users 作为列标题)。
Import-CSV .\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}
要获取组 (groupX) 的所有成员并将它们添加到另一个组 (groupY),请使用以下命令:
Get-ADGroupMember “GroupX” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-Y” -Members $_}
如果需要将所有嵌套组的成员复制到新组(递归地),请运行以下命令:
Get-ADGroupMember -Identity “GroupX” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupY” -Members $_}
在上一篇文章中,我们展示了一个 PowerShell 脚本,该脚本允许您从一个用户复制 AD 组成员身份并将另一个用户添加到同一组列表中。
您可以在 Windows2016Forest 架构及更高版本中使用 Active Directory 中的临时(基于时间的)组成员身份功能。要将用户临时添加到 AD 组(例如 1 小时),请运行以下命令:
$ttl = New-TimeSpan -Minutes 60
Add-ADGroupMember -Identity "Domain Admins" -Members j.lennon -MemberTimeToLive $ttl
一小时后,该用户将自动从该安全组中删除。
Remove-ADGroupMember:使用 PowerShell 从 AD 组中删除用户
要从 AD 组中删除用户,请使用 Remove-ADGroupMember cmdlet。让我们从组中删除两个用户:
Remove-ADGroupMember -Identity TestADGroup -Members user1, user2
确认用户删除:
如果您必须根据 CSV 文件中的用户列表从组中删除用户,请使用以下命令:
Import-CSV .\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}
您无法在本地 Active Directory 中使用动态用户组(与 Azure AD 不同)。但是,您可以创建一个计划的 PowerShell 脚本,该脚本将使用以下命令自动在组中添加或删除用户:
Add-ADGroupMember
和
Remove-ADGroupMember
cmdlet。详细了解如何使用 PowerShell 在 Active Directory 中创建动态用户组。
使用 Get-ADGroup 查找 Active Directory 组
Get-ADGroup cmdlet 将帮助您获取有关 AD 域组的信息:
Get-ADGroup 'TestADGroup'
此命令显示有关组的主要属性的信息(DN、组类型、名称、SID)。要显示所有组属性的值,请运行以下命令:
Get-ADGroup 'TestADGroup' -properties *
如您所见,现在显示了诸如组创建和修改时间、描述等属性。
您可以使用 Get-ADGroup cmdlet 按模式搜索 AD 中的组。例如,以下命令可用于查找名称中包含短语 admins 的所有 AD 组:
Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table
或者 :
Get-ADGroup -Filter {name -like "*admins*"} -Properties Description,info | Select Name,samaccountname,Description,info
使用 Get-ADGroup,您可以获得组成员列表(存储在 members 属性中):
Get-ADGroup -Identity "Domain Admins" -Properties members | Select-Object -ExpandProperty members
但是,使用 Get-ADGroupMember cmdlet 获取组成员身份要方便得多。
Get-ADGroupMember:如何获取和导出 Active Directory 组成员?
Get-ADGroupMember cmdlet 可让您获取 AD 组的成员。这些可以是用户、计算机、其他组或托管服务帐户 (MSA/gMSA)。
Get-ADGroupMember 'TestADGroup'
要在结果中仅显示用户名,请运行:
Get-ADGroupMember 'TestADGroup'| ft name
如果该组包含其他域组,请使用递归参数显示包含所有嵌套组的完整成员列表。
Get-ADGroupMember ADadmins -recursive| ft name
要将特定组成员的帐户列表导出到 CSV 文件(以便在 Excel 中进一步使用),请运行以下命令:
Get-ADGroupMember 'ADadmins' -recursive| ft samaccountname| Out-File c:\PS\ADadminsList.csv
您可以将组中用户的信息导出到文本文件。 Get-ADUser cmdlet 用于获取用户的扩展属性。例如,除了帐户名称之外,您还可以显示组用户的 UserPrincipalName、职位和电话号码:
Get-ADGroupMember -Identity ADadmins -recursive| foreach { Get-ADUser $_ -properties title, OfficePhone|Select-Object title, OfficePhone }
您可以像这样计算组中的用户数量:
(Get-ADGroupMember -Identity 'domain admins').Count
要获取特定 OU 中的空组列表,请使用以下命令:
Get-ADGroup -Filter * -Properties Members -searchbase “OU=NY,OU-US,DC=corp,dc=a-d,DC=com” | where {-not $_.members} | select Name
Get-ADGroupMember cmdlet 可用于创建一个简单的 PowerShell 脚本,通知管理员有人已将新用户添加到特定 AD 组。
Set-ADGroup:修改 Active Directory 组属性
Set-ADGroup cmdlet 允许您更改任何 Active Directory 组的属性(属性)。例如,您可以更改组的描述和名称:
Set-ADGroup -Identity MunAdmins -Description “Munich Admins Group”
或者 :
Get-ADGroup -Identity MunAdmins | Set-ADGroup -Description “Munich Admins Group”
从 Exchange GAL 中隐藏特定组:
Set-ADGroup -id MunAdmins -replace @{hideDLMembership=$true}
您可以一次更改多个组属性。使用 HashTable 可以方便地设置更改列表:
$attrs = @{"mail"="[email protected]";"displayname"="ALL MUN Admins"}
Set-ADGroup -Identity MunAdmins -Add $attrs
您可以使用以下命令获取 AD 组属性列表
get-adgroup munadmins -Properties *
或从 ADUC 控制台中的“属性编辑器”选项卡。
Remove-ADGroup:如何使用 PowerShell 删除 Active Directory 中的组?
要删除 Active Directory 中的组,请使用 Remove-ADGroup cmdlet:
Remove-ADGroup -Identity MunSales
删除组时,系统会提示您确认删除。要禁用删除确认,请添加确认开关:
Remove-ADGroup -Identity MunSales -Confirm:$false
可以从 Active Directory 回收站恢复已删除的组(和其他 AD 对象):
Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MunSales*' } -IncludeDeletedObjects| Restore-ADObject -verbose
猜你还喜欢
- 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 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[剧集] [央视][笑傲江湖][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
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [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