菜鸟科技网

Active Directory命令有哪些常用操作?

  1. 原生命令行工具:Windows 自带,历史悠久,功能稳定。
  2. PowerShell 模块:现代、功能强大、易于脚本化,是微软目前主推的管理方式。

下面我将详细介绍这两类中最常用和最重要的命令。

Active Directory命令有哪些常用操作?-图1
(图片来源网络,侵删)

原生命令行工具 (CMD)

这些工具在 cmd.exe 中运行,虽然有些老旧,但在很多场景下依然非常快速和有效。

用户和计算机管理

命令 全称 主要用途 示例
dsadd Directory Service Add 添加用户、计算机、组等对象。 dsadd user "CN=John Doe,OU=Users,DC=corp,DC=local" -samid jdoe -pwd P@ssw0rd!
dsmod Directory Service Modify 修改现有对象的属性,如用户密码、描述等。 dsmod user "CN=John Doe,OU=Users,DC=corp,DC=local" -pwd NewP@ssw0rd!
dsrm Directory Service Remove 删除 AD 对象。 dsrm "CN=John Doe,OU=Users,DC=corp,DC=local" -noprompt
dsquery Directory Service Query 在 AD 中查找对象,功能强大,是其他 ds* 命令的输入源。 dsquery user -name "John Doe"
dsquery user -inactive 8 (查找8天未登录的用户)
dsget Directory Service Get 显示对象的详细属性,通常与 dsquery 配合使用。 dsget user "CN=John Doe,OU=Users,DC=corp,DC=local" -samid -email -display
net user Network User 管理本地用户账户,但在域控制器上也可以管理域账户。 net user jdoe * (修改用户密码)
net user jdoe /domain (查看域用户信息)
net group Network Group 管理域本地组和全局组。 net group "Domain Admins" jdoe /add (将用户添加到组)
net group "IT Support" /domain (列出组成员)

组织单位 和域管理

命令 全称 主要用途 示例
dsmove Directory Service Move 移动 AD 对象(将用户从一个 OU 移动到另一个 OU)或重命名对象。 dsmove "CN=John Doe,OU=Users,DC=corp,DC=local" -newparent "OU=IT,OU=Users,DC=corp,DC=local"
dsacls Directory Service ACLs 查看、修改 AD 对象的访问控制列表。 dsacls "OU=IT,DC=corp,DC=local" (查看 OU 的权限)

站点和服务管理

命令 全称 主要用途 示例
repadmin Replication Administrator 极其重要,用于诊断和管理 AD 复制。 repadmin /showrepl (显示所有复制伙伴的复制状态)
repadmin /replsummary (显示复制错误的摘要)
repadmin /showutdvec DC01 (显示更新向量)
dcdiag Domain Controller Diagnosis 诊断工具,检查域控制器的健康状况和配置。 dcdiag /v (详细模式运行所有测试)
dcdiag /test:DNS /s:DC01 (测试特定DC的DNS功能)

PowerShell 模块 (现代、推荐)

PowerShell 提供了更丰富的功能、更清晰的结构和强大的脚本能力,你需要先安装 Active Directory for Windows PowerShell 模块(在 Windows Server 上通常已预装)。

核心模块导入

在开始之前,确保已导入 AD 模块:

Import-Module ActiveDirectory

用户管理

命令 (Cmdlet) 主要用途 示例
New-ADUser 创建新的 AD 用户账户。 New-ADUser -Name "Jane Smith" -SamAccountID jsmith -UserPrincipalName jsmith@corp.local -Path "OU=Users,DC=corp,DC=local" -AccountPassword (Read-Host -AsSecureString "Enter Password")
Set-ADUser 修改现有 AD 用户的属性。 Set-ADUser -Identity jsmith -Department "Sales" -Title "Sales Manager"
Set-ADAccountPassword -Identity jsmith -NewPassword (ConvertTo-SecureString -AsPlainText "NewP@ssw0rd!" -Force) -Reset
Get-ADUser 查询和获取 AD 用户信息。 Get-ADUser -Filter { Department -eq "Sales" }
Get-ADUser -Identity jsmith -Properties Department, Title, Manager
Remove-ADUser 删除 AD 用户账户。 Remove-ADUser -Identity jsmith -Confirm:$false
Enable-ADAccount / Disable-ADAccount 启用或禁用用户账户。 Disable-ADAccount -Identity jsmith
Move-ADObject 移动 AD 对象(比 dsmove 更灵活)。 Move-ADObject -Identity "CN=Jane Smith,OU=Users,DC=corp,DC=local" -TargetPath "OU=Sales,OU=Users,DC=corp,DC=local"

组管理

命令 (Cmdlet) 主要用途 示例
New-ADGroup 创建新的 AD 组。 New-ADGroup -Name "Sales Team" -SamAccountID SalesTeam -GroupScope Global -Path "OU=Groups,DC=corp,DC=local"
Add-ADGroupMember 将成员添加到组。 Add-ADGroupMember -Identity "Sales Team" -Members jsmith, jdoe
Remove-ADGroupMember 从组中移除成员。 Remove-ADGroupMember -Identity "Sales Team" -Members jdoe
Get-ADGroupMember 列出组的所有成员。 Get-ADGroupMember -Identity "Domain Admins"
Get-ADGroup 查询和获取 AD 组信息。 Get-ADGroup -Filter { Name -like "Team*" }

计算机 和对象管理

命令 (Cmdlet) 主要用途 示例
Get-ADComputer 查询域中的计算机。 Get-ADComputer -Filter { OperatingSystem -like "*Windows 10*" }
Get-ADComputer -Identity WS001 -Properties LastLogonDate, OperatingSystem
Get-ADOrganizationalUnit 查询组织单位。 Get-ADOrganizationalUnit -Filter * -Properties * | Format-Table Name, City, Country
Get-ADObject 通用对象查询器,可以查询任何类型的 AD 对象。 Get-ADObject -Filter { ObjectClass -eq "contact" }

站点、服务和复制管理

命令 (Cmdlet) 主要用途 示例
Get-ADReplicationFailure 查找复制错误,是 repadmin /showrepl 的 PowerShell 版本。 Get-ADReplicationFailure -Target DC01
Get-ADReplicationSite 获取 AD 站点信息。 Get-ADReplicationSite -Filter *
Get-ADReplicationSubnet 获取 AD 子网信息。 Get-ADReplicationSubnet -Filter *

如何选择使用哪个工具?

场景 推荐工具 原因
快速执行单次任务 原生命令 (CMD) 命令简短,记忆方便,对于熟悉的老管理员来说速度很快,快速重置一个用户密码。
编写脚本和自动化 PowerShell 拥有强大的变量、循环、条件判断和错误处理能力,可以将多个复杂操作组合成一个脚本。
复杂查询和筛选 PowerShell Get-ADUser-Filter 参数比 dsquery 更灵活,可以轻松结合多个条件,并使用 -Properties 获取任意属性。
深度诊断和故障排除 原生命令 (CMD) repadmindcdiag 是行业标准的诊断工具,提供了非常底层和详细的复制和健康状态信息,是排查问题的首选。
日常批量管理 PowerShell 一次性禁用所有超过90天未登录的用户,或者将某个 OU 的所有用户移动到另一个组,使用 PowerShell 循环脚本非常高效。
特性 原生命令 PowerShell
学习曲线 较低,命令简短 较高,需要理解 .NET 对象和管道
功能 基础,稳定 强大,全面,覆盖所有 AD 功能
脚本能力 弱,难以实现复杂逻辑 极强,是真正的自动化语言
交互性 一般 优秀,可以方便地处理返回的对象
未来趋势 逐渐被取代 微软官方推荐和未来方向

对于新的 AD 管理员,强烈建议直接从 PowerShell 开始学习,因为它代表了未来的方向,并且能让你更高效、更灵活地管理 Active Directory,也要掌握 repadmindcdiag 这类经典的诊断工具。

Active Directory命令有哪些常用操作?-图2
(图片来源网络,侵删)
Active Directory命令有哪些常用操作?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇