可以使用 PowerShell 或旧版 dsquery 命令从命令行查询 Active Directory。

PowerShell Active Directory 命令

列出所有用户:

命令
Get-ADUser -Filter *

查找特定用户:

命令
Get-ADUser -Identity "username"

按姓名搜索用户:

命令
Get-ADUser -Filter "Name -like '*John*'"

列出所有计算机:

命令
Get-ADComputer -Filter *

列出所有组:

命令
Get-ADGroup -Filter *

获取域名信息:

命令
Get-ADDomain

获取域控制器:

命令
Get-ADDomainController -Filter *

启用PowerShell AD模块

如果 Get-ADUser 不起作用,请启用该模块:

Windows 服务器:

命令
Import-Module ActiveDirectory

Windows 10/11: 从“设置”>“应用程序”>“可选功能”安装 RSAT(远程服务器管理工具)。

然后运行:

命令
Import-Module ActiveDirectory

旧版 DSQUERY 命令

在加入域的计算机上无需 PowerShell 模块即可工作。

查找所有用户:

命令
dsquery user

按名称查找用户:

命令
dsquery user -name "John*"

查找所有计算机:

命令
dsquery computer

查找所有组:

命令
dsquery group

查找禁用帐户:

命令
dsquery user -disabled

查找不活动的计算机(90 天):

命令
dsquery computer -inactive 12

12 周 = 大约 90 天。

获取详细的用户信息

PowerShell - 显示所有属性:

命令
Get-ADUser -Identity "username" -Properties *

DSGET(旧版):

命令
dsquery user -name "username" | dsget user -display -email -mobile

查找用户的组成员资格

PowerShell:

命令
Get-ADPrincipalGroupMembership -Identity "username"

DSGET:

命令
dsget user "CN=Username,OU=Users,DC=domain,DC=com" -memberof

查找群组成员

PowerShell:

命令
Get-ADGroupMember -Identity "GroupName"

DSGET:

命令
dsget group "CN=GroupName,OU=Groups,DC=domain,DC=com" -members

检查用户是否被锁定

PowerShell:

命令
Get-ADUser -Identity "username" -Properties LockedOut | Select-Object Name,LockedOut

解锁用户:

命令
Unlock-ADAccount -Identity "username"

重置用户密码

命令
Set-ADAccountPassword -Identity "username" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "NewPassword123!" -Force)

下次登录时强制更改密码:

命令
Set-ADUser -Identity "username" -ChangePasswordAtLogon $true

搜索计算机

姓名:

命令
Get-ADComputer -Filter "Name -like '*DESKTOP*'"

按操作系统:

命令
Get-ADComputer -Filter "OperatingSystem -like '*Windows 11*'" -Properties OperatingSystem

将结果导出到 CSV

PowerShell:

命令
Get-ADUser -Filter * -Properties DisplayName,EmailAddress | Export-Csv users.csv -NoTypeInformation

创建包含用户数据的 CSV 文件。

常用滤镜

过去 30 天内创建的用户:

命令
$date = (Get-Date).AddDays(-30)
Get-ADUser -Filter "Created -gt '$date'" -Properties Created

用户从未登录:

命令
Get-ADUser -Filter "LastLogonDate -notlike '*'" -Properties LastLogonDate

90 天未登录的计算机:

命令
$date = (Get-Date).AddDays(-90)
Get-ADComputer -Filter "LastLogonDate -lt '$date'" -Properties LastLogonDate

故障排除

“Get-ADUser 无法识别”: 导入ActiveDirectory模块或安装RSAT。

“无法联系服务器”: 不在域网络或无法访问域控制器上。

“访问被拒绝”: 需要域管理员或适当的 AD 权限。

DSQUERY 不返回任何内容: 检查语法,确保加入域,验证网络连接。

底线

PowerShell(现代):

命令
Get-ADUser -Filter * | Find users
Get-ADComputer -Filter * | Find computers
Get-ADGroup -Filter * | Find groups

DSQUERY(旧版):

命令
dsquery user | Find users
dsquery computer | Find computers
dsquery group | Find groups

PowerShell 更强大,但需要 ActiveDirectory 模块。 DSQUERY 可在加入域的计算机上运行,​​无需额外设置。

两者都需要域网络连接和适当的权限。