Windows本地用户信息需分层提取:net user查基础列表,wmic导出含隐藏账户的CSV,Get-LocalUser获取结构化数据并支持筛选导出,再结合组成员检查实现完整权限审计。
windows 本地用户信息不能靠单条命令“一键导出全部”,但能用几组标准命令分层提取,覆盖用户名、启用状态、全名、描述、最后登录时间等核心字段。关键是选对工具组合:日常筛查用 net user,完整枚举用 wmic,结构化导出用 get-localuser。
用 net user 快速列出基础用户列表
适合普通权限下快速查看所有可见本地账户(不含隐藏账户),输出简洁,含启用/禁用状态:
- 打开 CMD(无需管理员),直接运行:
net user - 导出为文本供人工查阅:
net user > C:\users_basic.txt - 若只要纯用户名(去掉标题和空行),可用:
net user | findstr /r "^[a-zA-Z0-9]" | findstr /v "command completed" > C:\usernames.txt
用 wmic 导出全部账户(含隐藏账户)
能读取注册表底层数据,包括以 $ 结尾的隐藏账户、系统内置账户(如 WDAGUtilityAccount),需管理员权限:
- 管理员运行 CMD,执行:
wmic useraccount get name,sid,fullname,disabled,localaccount /format:csv > %userprofile%\Desktop\all_users.csv - 输出为 CSV 格式,可直接用 Excel 打开;
disabled=TRUE表示账户已禁用,localaccount=TRUE表示是本地账户(非域账户) - 如只需用户名和 SID(用于后续权限分析),简化为:
wmic useraccount get name,sid > C:\users_with_sid.txt
用 PowerShell 的 Get-LocalUser 获取结构化信息
返回对象类型数据,字段丰富、支持筛选和导出,适合运维审计或自动化处理:
- 在 PowerShell(普通权限即可)中运行:
Get-LocalUser | Select-Object Name,Enabled,FullName,Description,LastLogon | Export-Csv -Path C:\local_users.csv -NoTypeInformation - 可加条件筛选,例如只导出启用的用户:
Get-LocalUser | Where-Object {$_.Enabled -eq $true} | ... - 若需包含密码策略(如是否强制改密、密码过期时间),加上
PasswordLastSet和PasswordExpires字段(部分字段需系统版本支持)
补充:导出用户所属本地组关系
单纯用户列表不够,权限实际由组成员身份决定。可批量检查每个用户是否属于关键组(如 Administrators、Remote Desktop Users):
- 查所有用户是否在 Administrators 组:
Get-LocalUser | ForEach-Object { $u = $_.Name; $inAdmin = (Get-LocalGroupMember -Group "Administrators" -ErrorAction SilentlyContinue | Where-Object {$_.Name -match "$u"}) -ne $null; [PSCustomObject]@{User=$u; InAdministrators=$inAdmin} } | Export-Csv C:\group_membership.csv -NoTypeInformation - 导出某组全部成员(如 Remote Desktop Users):
net localgroup "Remote Desktop Users" > C:\rdp_members.txt


















