首页/系统/Windows 运维速查/dsquery user 查询域用户

dsquery user 查询域用户

AD DS 传统命令行工具:按名称/SAM 名模糊找用户,输出 DN 供其他 ds* 工具接力使用。

Windows 运维速查系统更新于 2026-10-13

dsquery user 是什么

dsquery 是 AD DS 自带的传统命令行查询工具族,dsquery user 专门查找用户对象。它的强项是模糊匹配与范围限定:可以只在一个 OU 下按名称前缀找,也可以按 SAM 名精确取。输出是对象 DN 格式的字符串,天然适合管道给 dsget、dsmod、dsrm 接力,实现“查 → 读属性 → 改属性 → 删对象”的一串式操作。

基本信息

适用平台Windows Server 域控自带;客户端需从 RSAT 安装
语法dsquery user [起始OU] -name 名称* | -samid 账号
输出格式对象的 DN 字符串,每行一条
常用配套dsget 读属性、dsmod 改属性、dsrm 删除对象
范围限定把 OU 放在对象参数之前,可只在指定子树里找
现代替代PowerShell 的 Get-ADUser(RSAT 的 ActiveDirectory 模块)

典型使用场景

  • 凭姓名片段找账号,确认 SAM 名与所在 OU
  • 接管老脚本:既有工具链都是 ds* 系列,无需重写
  • 在指定 OU 子树内做批量查询,避免跨部门同名账号混入
  • 把查到的 DN 直接管道给 dsget 读部门、邮箱等信息
  • 快速核对某账号是否已在域里,作为建号前检查

常用示例

常用示例
dsquery user -name zhangsan*                                  # 按姓名前缀模糊查
dsquery user "OU=Sales,DC=corp,DC=local" -name *             # 只查 Sales 这个 OU 下的全部用户
dsquery user -samid ops01 | dsget user -display -dept -email -disabled   # 查到后直接读属性
dsquery user -stalepwd 90 -limit 0                            # 找出 90 天没改密码的账号
dsquery user -inactive 4 -limit 0                             # 找出 4 周未登录的账号
dsquery user -name * -limit 0 | find /c "CN="                # 统计总用户数
dsquery user -samid ops01 | dsmod user -desc "已离职"          # 管道接力改属性

输出逐行读法

输出形态含义后续用法
CN=张三,OU=Sales,DC=corp对象的完整 DN可管道给 dsget/dsmod/dsrm
多行输出匹配到多个对象建议先限定 OU 缩小范围
无输出没有匹配项确认名称拼写与查询范围
DN 含逗号与等号标准格式,非报错整体作为参数传给下一命令
dsquery 依赖于工具安装:域控上自带,客户端需要装 RSAT。服务器核心版或跨平台排障环境里,用 Get-ADUser 更省事,语法也更适合脚本处理。
默认返回条数有上限,做全量盘点时必须显式加 -limit 0,否则你会拿到一份看着完整、实则被截断的名单。

易错点

  • 忘记 -limit 0 导致结果被截断,盘点数字偏小却毫无提示
  • 通配符 * 在部分 shell 里会先被展开,导致命令语义变化,必要时加引号
  • 把 OU 参数写在 -name 之后,限定范围不生效,结果混入其他 OU 的同名账号
  • 把 dsquery 的输出当成普通字符串随意剪切,DN 里本身含逗号与等号,应按整行传给下一级命令

数据来源与参考

  • Microsoft Learn:dsquery user
  • Microsoft Learn:dsget

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌