用wmic useraccount get name,sid可快速枚举全部账户(含隐藏账号),再通过注册表sam路径或powershell筛选$结尾账户,能精准识别test$等隐藏用户。

要确认当前 Windows 电脑中是否存在隐藏用户账号,不能只依赖常规图形界面或基础命令,因为隐藏账户(如以$结尾的test$)在net user、计算机管理、控制面板中默认不显示。必须通过底层注册表路径或绕过显示限制的系统接口直接读取账户数据库。
用 wmic 命令快速枚举全部账户(含隐藏账号)
这是最轻量、无需修改权限、一步到位的方法,能直接从系统账户数据库拉取原始记录,覆盖net user的盲区。
第一步:以管理员身份运行 Windows 终端(右键“开始”→选择“Windows 终端(管理员)”)。
第二步:输入并执行:wmic useraccount get name,sid → 回车。
第三步:在输出结果中逐行检查name列——所有形如backup$、admin123$、svc$的条目都是隐藏账户;同时比对sid列末尾数字,若为500(Administrator)、501(Guest)等已知值可辅助验证,但503、1004等非标值需警惕。
注意:WDAGUtilityAccount、DefaultAccount、Guest 等是系统内置账户,不是人为创建的隐藏账号,无需特别处理。
通过注册表手动核查隐藏账户(精准定位,适用于深度排查)
该方法直击账户存储根目录,能发现 wmic 可能遗漏的异常注册表项(例如权限被篡改、SID 残留未清理的账户),但需临时提权访问受保护的 SAM 分支。
方法一:打开注册表编辑器 → 按Win + R,输入regedit,回车。
方法二:导航至路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList → 展开每个子项,查看右侧ProfileImagePath的值,路径中包含的文件夹名即为实际用户名(例如C:\Users\hacker$)。
方法三:进入真正底层路径:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names → 此处每个子项名称就是用户名(包括test$),但首次打开时通常为空白或提示“无法打开”,这是因为当前用户无读取权限。
【必须先完成权限提升】:右键SAM文件夹 → “权限” → 添加当前管理员账户(如Administrators)→ 勾选“完全控制”和“读取” → 点击“确定”。关闭注册表编辑器后重新打开,才能看到Names下的真实用户名列表。
用 PowerShell 获取结构化隐藏账户信息(支持筛选与导出)
Get-LocalUser 默认不返回隐藏账户,但配合 WMI 过滤可补全。此方法适合需要导出为 CSV 或批量判断启用状态的场景。
① 按Win + X → 选择“Windows PowerShell(管理员)”。
② 输入并执行:Get-WmiObject -Class Win32_UserAccount | Where-Object {$_.Name -match '\$$'} | Select-Object Name,Disabled,SID,FullName → 回车。
③ 输出中每行代表一个以$结尾的账户,Disabled列显示True表示该隐藏账户已被禁用,False表示处于可用状态。
④ 如需保存到桌面:在上条命令末尾追加 | Export-Csv "$env:USERPROFILE\Desktop\hidden_users.csv" -NoTypeInformation。











