[玩转系统] 如何安装 PowerShell Active Directory 模块和管理 AD
作者:精品下载站 日期:2024-12-15 00:45:56 浏览:14 分类:玩电脑
如何安装 PowerShell Active Directory 模块和管理 AD
每个 Windows 系统管理员不仅应该能够使用图形 AD 管理单元(通常是 ADUC,Active Directory 用户和计算机),还应该能够使用 PowerShell cmdlet 来执行日常 Active Directory 管理任务。最常见的是,Windows PowerShell 的 Active Directory 模块用于域和对象管理任务(用户、计算机、组)。在本文中,我们将了解如何安装
RSAT-AD-PowerShell
Windows 上的模块,了解其基本功能以及可用于管理 AD 和与 AD 交互的流行 cmdlet。
如何在 Windows 10 和 11 上安装 Active Directory PowerShell 模块?
您不仅可以在服务器上安装 RSAT-AD PowerShell 模块,还可以在工作站上安装。该模块包含在 Windows 的 RSAT(远程服务器管理工具)包中。
在当前版本的 Windows 11 和 Windows 10 中,RSAT 组件作为按需功能在线安装。您可以使用以下命令安装该模块:
Add-WindowsCapability -online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
或者通过设置 -> 应用程序 -> 可选功能 -> 添加功能 -> RSAT:Active Directory 域服务和轻量级目录服务工具。
在以前版本的 Windows 上,必须手动下载并安装 RSAT 软件包。之后,您需要从控制面板启用 PowerShell 的 AD 模块:程序和功能 -> 打开或关闭 Windows 功能 -> 远程服务器管理工具 -> 角色管理工具 -> AD DS 和 AD LDS 工具。
您必须首先安装 WindowsCompatibility 模块才能在 PowerShell Core 6.x、7.x 中使用 AD cmdlet:
Install-Module -Name WindowsCompatibility
然后将该模块加载到您的会话中:
Import-Module -Name WindowsCompatibility
Import-WinModule -Name ActiveDirectory
现在,您可以在 PowerShell Core 7.x 脚本中使用 AD cmdlet。
如何在 Windows 上安装最新版本的 PowerShell?
在 Windows Server 上安装 RSAT-AD-PowerShell 模块
在 Windows Server 上,您可以从服务器管理器图形控制台或使用 PowerShell 安装适用于 Windows PowerShell 的 Active Directory 模块。
您可以使用以下命令检查 Active Directory 模块是否已安装:
Get-WindowsFeature -Name "RSAT-AD-PowerShell"
如果缺少该模块,请安装它:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
要通过服务器管理器安装该模块,请转至添加角色和功能 -> 功能 -> 远程服务器管理工具 -> 角色管理工具 -> AD DS 和 AD LDS 工具->启用Windows PowerShell 的 Active Directory 模块。
通过使用 RSAT-AD PowerShell 模块,您不需要使用本地域控制器会话来管理 Active Directory。该模块可以安装在任何成员服务器或工作站上。在 AD 域控制器上,当部署 Active Directory 域服务 (AD DS) 角色时(当服务器升级为 DC 时),该模块会自动安装。
该模块通过 Active Directory Web 服务与 AD 进行交互,该服务必须在域控制器上运行,并且可供 TCP 端口 9389 上的客户端使用。使用 Test-NetConnection cmdlet 验证该端口未被 DC 上的防火墙阻止:
Test-NetConnection MUN-DC1 -port 9389
使用 PowerShell 管理 Active Directory
Windows PowerShell 的 Active Directory 模块具有大量用于与 AD 交互的 cmdlet。 Windows Server 2022/Windows 11 的当前版本模块中提供了 147 个 AD PowerShell cmdlet。
检查计算机上是否安装了该模块:
Get-Module -Name ActiveDirectory -ListAvailable
在使用 Active Directory 模块 cmdlet 之前,必须将其导入 PowerShell 会话(从 Windows Server 2012 R2/Windows 8.1 开始,该模块会自动导入)。
Import-Module ActiveDirectory
确保 AD 模块已加载到您的 PowerShell 会话中:
Get-Module
您可以显示可用 Active Directory cmdlet 的完整列表:
Get-Command -module ActiveDirectory
AD 模块中 cmdlet 的总数:
Get-Command -module ActiveDirectory |measure-object|select count
大多数 RSAT-AD PowerShell 模块 cmdlet 以
Get-
,
Set-
或者
New-
前缀。
获取 - 类 cmdlet 用于从 Active Directory 获取不同的信息(
Get-ADUser
— 用户属性,
Get-ADComputer
- 计算机设置,
Get-ADGroupMember
— 团体成员身份等)。您无需成为域管理员即可使用这些 cmdlet。任何域用户都可以运行 PowerShell 命令来获取 AD 对象属性的值(机密属性除外,例如 LAPS 的示例);
Set-类 cmdlet 用于设置(更改)Active Directory 中的对象属性。例如,您可以更改用户属性 (Set-ADUser)、计算机设置 (Set-ADComputer) 等。要执行这些操作,您的帐户必须对要修改的对象具有写入权限(请参阅文章如何在 Active Directory 中委派管理员权限);
以 New- 开头的命令允许您创建 AD 对象(创建用户 -
New-ADUser
,创建一个群组 —
New-ADGroup
,创建一个组织单位 —
New-ADOrganizationalUnit
);
以 Add- 开头的 Cmdlet:将用户添加到组 (
Add-ADGroupMember
),添加细粒度密码策略(
Add-ADFineGrainedPasswordPolicySubject
);
删除 - cmdlet 用于删除 AD 对象
Remove-ADGroup
,
Remove-ADComputer
,
Remove-ADUser
)。
您可以使用特定的 PowerShell cmdlet 仅管理某些 AD 组件:
Enable-ADOptionalFeature
- 启用可选的 AD 功能(例如,AD 回收站用于恢复已删除的对象);
Install-ADServiceAccount
- 配置托管服务帐户(MSA、gMSA);
Search-ADAccount
- 允许您在 Active Directory 中查找禁用、不活动、锁定的用户和计算机帐户;
Enable-ADAccount
/
Disable-ADAccount
/
Unlock-ADAccount
- 启用/禁用/解锁帐户。
默认情况下,PowerShell cmdlet 连接到环境中最近的域控制器 (LOGONSERVER)。使用-Server参数,您可以连接到不同域控制器或不同域中的ADDS(您可以使用
nltest /dclist:newad.com
命令)。
-Server 参数可用于几乎所有模块 cmdlet。例如
Get-ADuser j.smith -Server mun-dc1.a-d.site
您还可以使用-Credential参数来指定备用 Active Directory 用户凭据。
$creds = Get-Credential
Get-ADUser -Filter * -Credential $creds
以下是如何获取有关任何 cmdlet 的帮助
get-help Set-ADUser
您可以显示使用 Active Directory cmdlet 的示例,如下所示:
(get-help New-ADComputer).examples
从远程计算机导入 Active Directory PowerShell 模块
无需在所有计算机上安装 AD PowerShell 模块。管理员可以从域控制器(需要域管理员权限)或任何其他计算机远程导入此模块。
PowerShell Remoting 用于连接到远程计算机。这需要在远程主机上启用并配置 Windows 远程管理 (WinRM)。
与安装了 AD PowerShell 模块的远程计算机创建新会话:
$psSess = New-PSSession -ComputerName DC_or_Comp_with_ADPosh
将 ActiveDirectory 模块从远程计算机导入到本地 PS 会话中:
Import-Module -PSsession $psSess -Name ActiveDirectory
现在,您可以从计算机上的 Active Directory 模块运行任何命令,就像该模块安装在本地一样。但是,它们将在远程主机上执行。
您可以将这些命令添加到 PowerShell 配置文件中,以便在启动 powershell.exe 控制台时自动从远程会话导入模块。跑过
notepad $profile.CurrentUserAllHosts
打开您的 PS 配置文件。
您可以使用以下命令结束远程会话:
Remove-PSSession -Session $psSess
这种通过 PowerShell 隐式远程处理导入 AD 模块的方法允许您从无法安装模块本地副本的 Linux 和 MacOS 主机使用 PowerShell cmdlet。
了解如何在 Linux 上安装 PowerShell Core。
您还可以在不安装 RSAT 的情况下使用 PowerShell 的 Active Directory 模块。去做
只需从安装了 RSAT-AD PowerShell 模块的计算机中复制一些文件即可:
目录
C:\Windows\System32\WindowsPowerShell\v1.0\Modules
文件
ActiveDirectory.Management.dll
文件
ActiveDirectory.Management.resources.dll
然后您需要将该模块导入到当前会话中:
Import-Module C:\PS\ADmodule\Microsoft.ActiveDirectory.Management.dll
Import-Module C:\PS\ADmodule\Microsoft.ActiveDirectory.Management.resources.dll
之后,您可以使用所有 AD 模块 cmdlet,而无需安装 RSAT。
Active Directory 的常见 PowerShell 命令
让我们看一下可以使用 Active Directory for PowerShell cmdlet 执行的一些典型管理任务。
您可以在 WOSHub 网站上找到一些有关如何将 Active Directory 用于 PowerShell 模块 cmdlet 的有用示例。请点击链接获取详细说明。
New-ADUser:创建AD用户
要创建新的 AD 用户,您可以使用 New-ADUser cmdlet。您可以使用以下命令创建用户:
New-ADUser -Name "Mila Beck" -GivenName "Mila" -Surname "Beck" -SamAccountName "mbeck" -UserPrincipalName "[email protected]" -Path "OU=Users,OU=Berlin,OU=DE,DC=a-d,DC=com" -AccountPassword(Read-Host -AsSecureString "Input User Password") -Enabled $true
有关 New-ADUser cmdlet 的详细信息(包括有关如何批量创建用户域帐户的示例),请参阅本文。
Get-ADComputer:获取计算机对象属性
要获取特定 OU 中计算机对象的属性(计算机名称和上次登录日期),请使用 Get-ADComputer cmdlet:
Get-ADComputer -SearchBase ‘OU=CA,OU=USA,DC=a-d,DC=com’ -Filter * -Properties * | FT Name, LastLogonDate -Autosize
Add-ADGroupMember:将 Active Directory 用户添加到组中
要将用户添加到 AD 域中的现有安全组,请运行以下命令:
Add-AdGroupMember -Identity LondonSales -Members e.braun, l.wolf
显示 AD 组中的用户列表并将其导出到 CSV 文件:
Get-ADGroupMember LondonSales -recursive| ft samaccountname| Out-File c:\ps\export_ad_users.csv
了解有关使用 PowerShell 管理 AD 组的更多信息。
Set-ADAccountPassword:在 AD 中重置用户密码
要使用 PowerShell 在 AD 中重置用户密码:
Set-ADAccountPassword m.lorenz -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “Ne8Pa$$0rd1” -Force -Verbose) -PassThru
如何解锁、启用和禁用 Active Directory 帐户?
要禁用 AD 用户帐户:
Disable-ADAccount m.lorenz
启用帐户:
Enable-ADAccount m.lorenz
解锁被域密码策略锁定的帐户:
Unlock-ADAccount m.lorenz
Search-ADAccount:如何查找不活动和禁用的 AD 对象?
要查找并禁用 AD 域中超过 90 天未登录的所有计算机,请使用 Search-ADAccount cmdlet:
$timespan = New-Timespan -Days 90
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan $timespan | Disable-ADAccount
New-ADOrganizationalUnit:在AD中创建组织单位
要在 AD 中快速创建典型的组织单位结构,您可以使用 PowerShell 脚本。假设您要创建多个以状态作为名称的 OU,并创建典型的对象容器。通过图形 ADUC 管理单元手动创建此 AD 结构非常耗时。 PowerShell 的 AD 模块允许在几秒钟内解决此任务(编写脚本的时间除外):
$fqdn = Get-ADDomain
$fulldomain = $fqdn.DNSRoot
$domain = $fulldomain.split(".")
$Dom = $domain[0]
$Ext = $domain[1]
$Sites = ("Nevada","Texas","California","Florida")
$Services = ("Users","Admins","Computers","Servers","Contacts","Service Accounts")
$FirstOU ="USA"
New-ADOrganizationalUnit -Name $FirstOU -Description $FirstOU -Path "DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($S in $Sites)
{
New-ADOrganizationalUnit -Name $S -Description "$S" -Path "OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($Serv in $Services)
{
New-ADOrganizationalUnit -Name $Serv -Description "$S $Serv" -Path "OU=$S,OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
}
}
运行脚本后,您将在 Active Directory 中看到以下 OU 结构。
要在 AD 容器之间移动对象,您可以使用 Move-ADObject cmdlet:
$TargetOU = "OU=Sales,OU=Computers,DC=a-d,DC=com"
Get-ADComputer -Filter 'Name -like "SalesPC*"' | Move-ADObject -TargetPath $TargetOU
Get-ADReplicationFailure:检查 Active Directory 复制
您可以使用 Get-ADReplicationFailure cmdlet 检查 AD 域控制器之间的复制状态:
Get-ADReplicationFailure -Target NY-DC01,NY-DC02
您可以使用此命令检查域控制器和 Active Directory 的运行状况。
要获取有关域中所有 DC 的信息,请使用 Get-AdDomainController cmdlet:
Get-ADDomainController -filter * | select hostname,IPv4Address,IsGlobalCatalog,IsReadOnly,OperatingSystem | format-table -auto
在本文中,我们了解了如何安装和使用 Active Directory PowerShell 模块进行 AD 域管理。我希望本文能够鼓励您进一步探索此模块并开始自动化大部分 AD 管理任务。
猜你还喜欢
- 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年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][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