可以使用 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 可在加入域的计算机上运行,无需额外设置。
两者都需要域网络连接和适当的权限。