本机账户安全检查是什么
这是一套固定动作的例行核查:看管理员组里都有谁、有没有密码永不过期的账号、Guest 是否被启用、长期未登录的账号是否还在。它不需要专业工具,几条 PowerShell 命令就能导出清单,把结果按月归档后,就形成了一份能追溯的基线记录。发现异常账号时,先确认用途再处置,不要直接删。
基本信息
| 适用平台 | Windows 10/11、Server 2016 及以后 |
|---|---|
| 检查项 | 管理员组成员、密码过期设置、Guest 状态、长期未登录账户 |
| 常用命令 | Get-LocalGroupMember、Get-LocalUser、Export-Csv |
| 建议频率 | 月度,以及任何账户变更之后 |
| 归档方式 | 导出 CSV 并按日期命名留存 |
| 关联策略 | net accounts 的策略值一并记录 |
检查项清单
- 管理员组成员:逐个确认身份与用途,剔除临时授权
- 密码永不过期:服务账户可以有,人类账号要追问原因
- Guest 状态:应为禁用,启用即为风险点
- 长期未登录:按 LastLogon 排序,逐个确认是否可停用
- 空密码与弱策略:核对 net accounts 基线值
- 账户描述:空描述的账号往往是历史遗留
常用示例
常用示例
Get-LocalGroupMember -Group Administrators | Select-Object Name, PrincipalSource # 管理员都有谁
Get-LocalUser | Where-Object { $_.Enabled -and $null -eq $_.PasswordExpires } | Select-Object Name, LastLogon # 密码永不过期且启用的账号
Get-LocalUser -Name Guest | Select-Object Name, Enabled, Description # Guest 是否启用
Get-LocalUser | Where-Object Enabled | Sort-Object LastLogon | Select-Object Name, LastLogon -First 10 # 最久未登录
net accounts # 策略基线
Get-LocalUser | Export-Csv D:\audit\localusers_20261013.csv -NoTypeInformation -Encoding UTF8 # 归档风险信号读法
| 发现项 | 风险含义 | 处理建议 |
|---|---|---|
| 管理员组有陌生账号 | 可能为未登记的授权 | 确认用途,无主则移除 |
| 人类账号密码永不过期 | 口令长期不换风险 | 核对原因并按基线整改 |
| Guest 启用 | 匿名访问入口 | 确认无依赖后禁用 |
| 长期未登录仍启用 | 攻击面残留 | 评估后停用 |
| 描述为空的账号 | 用途不明 | 补充说明或走清理流程 |
PasswordExpires 为 $null 的账号表示密码永不过期,服务账户常见这种配置,但出现在人类账号上就要追一下原因;审计的重点不是数量,而是每一个都能解释得清。
清理账号前先确认它没有被计划任务、服务、共享授权或应用配置引用:很多“没人用”的账号其实承担着自动化身份,停掉之后故障会以完全无关的症状出现。