wsl不允许此用户登录到这台计算机
这个报错基本不是 Ubuntu/Linux 用户密码问题,而是 Windows 主机在创建 WSL2 虚拟机时,被本机安全登录策略拒绝了。你这个提示里的“不允许此用户登录到这台计算机”高度匹配 Windows 的 CrashOnAuditFail/安全日志满导致的锁定状态:Microsoft 文档说明,安全事件日志满并启用 CrashOnAuditFail 时,Windows 会拒绝非管理员账户登录,并可能显示“登录失败:不允许用户登录到此计算机”。
先按下面做,**不要执行 wsl --unregister**,那个会删除发行版数据;Microsoft 文档也明确说 unregister 后对应分发版的数据、设置和软件会永久丢失。
优先修复:清安全日志 + 重置 CrashOnAuditFail
用 管理员权限 PowerShell 执行:
1 | $BackupDir = "$env:USERPROFILE\Desktop\wsl-fix-logs" |
Microsoft 给出的修复步骤就是:保存并清除安全事件日志,把 HKLM\SYSTEM\CurrentControlSet\Control\Lsa\CrashOnAuditFail 设置为 1,然后重启。 这个键的 2 表示“只有管理员才能登录”,0 是默认“任何人都可以登录”,1 表示只要系统还能写入安全日志就允许登录。
重启后再用普通 PowerShell 或 Windows Terminal 测试:
1 | wsl --shutdown |
wsl --update 是官方用于更新 WSL 到最新版的命令,wsl --shutdown 会终止所有正在运行的 WSL 发行版和 WSL2 轻量 VM,适合重启 WSL 环境。
如果重启后还报同样错误
再检查这两处:
- 打开
secpol.msc→ 本地策略 → 安全选项,找到
审核: 如果无法记录安全审核则立即关闭系统
个人开发机建议设为 已禁用 或 未定义。Microsoft 说明这个策略在安全日志满且无法覆盖时会导致系统停止/锁定;其默认值通常是 Disabled。 - 打开 事件查看器 → Windows 日志 → 安全 → 右键 属性,把保留方式改成 按需覆盖事件,或者增大最大日志大小。Microsoft 文档也把“按需覆盖事件”列为防止再次锁定的方法之一。
如果这是公司电脑、域控策略或安全软件托管的机器,本地设置可能会被组策略覆盖;Microsoft 文档说明组策略会按 Local/Site/Domain/OU 顺序应用并覆盖本机策略。 这种情况下需要让 IT 管理员检查 CrashOnAuditFail、安全日志保留策略,以及用户权限分配。
还不行时检查登录权限项
打开 secpol.msc → 本地策略 → 用户权限分配:
- 允许本地登录:确保你的 Windows 用户所在组没有被移除。
- 拒绝本地登录:确保没有包含你的用户或你的用户组。
- 生成安全审核:默认应包含
Local Service和Network Service;Microsoft 文档说明这是该权限的默认配置。
如果你之前装过安全加固工具、公司管控策略、某些“优化/杀毒/加速器”工具,这些项被改动后也可能导致 HCS/WSL 创建 VM 时失败。
最可能的一条修复路径就是第一段 PowerShell:备份并清空 Security 日志 → 设置 CrashOnAuditFail=1 → 重启。
本地安全策略重置为默认
1 | secedit /configure /cfg "$env:windir\inf\defltbase.inf" /db "$env:windir\security\database\defltbase.sdb" /verbose |