wsl不允许此用户登录到这台计算机

这个报错基本不是 Ubuntu/Linux 用户密码问题,而是 Windows 主机在创建 WSL2 虚拟机时,被本机安全登录策略拒绝了。你这个提示里的“不允许此用户登录到这台计算机”高度匹配 Windows 的 CrashOnAuditFail/安全日志满导致的锁定状态:Microsoft 文档说明,安全事件日志满并启用 CrashOnAuditFail 时,Windows 会拒绝非管理员账户登录,并可能显示“登录失败:不允许用户登录到此计算机”。

先按下面做,**不要执行 wsl --unregister**,那个会删除发行版数据;Microsoft 文档也明确说 unregister 后对应分发版的数据、设置和软件会永久丢失。

优先修复:清安全日志 + 重置 CrashOnAuditFail

管理员权限 PowerShell 执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$BackupDir = "$env:USERPROFILE\Desktop\wsl-fix-logs"
New-Item -ItemType Directory -Force $BackupDir | Out-Null

# 先备份安全日志,再清空
wevtutil epl Security "$BackupDir\Security-before-clear.evtx" /ow:true
wevtutil cl Security

# 查看当前值
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v CrashOnAuditFail

# 按 Microsoft 修复步骤重置为 1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v CrashOnAuditFail /t REG_DWORD /d 1 /f

# 重启,注册表更改需要重启才生效
shutdown /r /t 0

Microsoft 给出的修复步骤就是:保存并清除安全事件日志,把 HKLM\SYSTEM\CurrentControlSet\Control\Lsa\CrashOnAuditFail 设置为 1,然后重启。 这个键的 2 表示“只有管理员才能登录”,0 是默认“任何人都可以登录”,1 表示只要系统还能写入安全日志就允许登录。

重启后再用普通 PowerShell 或 Windows Terminal 测试:

1
2
3
4
wsl --shutdown
wsl --update
wsl -l -v
wsl

wsl --update 是官方用于更新 WSL 到最新版的命令,wsl --shutdown 会终止所有正在运行的 WSL 发行版和 WSL2 轻量 VM,适合重启 WSL 环境。

如果重启后还报同样错误

再检查这两处:

  1. 打开 secpol.msc本地策略安全选项,找到
    审核: 如果无法记录安全审核则立即关闭系统
    个人开发机建议设为 已禁用未定义。Microsoft 说明这个策略在安全日志满且无法覆盖时会导致系统停止/锁定;其默认值通常是 Disabled。
  2. 打开 事件查看器Windows 日志安全 → 右键 属性,把保留方式改成 按需覆盖事件,或者增大最大日志大小。Microsoft 文档也把“按需覆盖事件”列为防止再次锁定的方法之一。

如果这是公司电脑、域控策略或安全软件托管的机器,本地设置可能会被组策略覆盖;Microsoft 文档说明组策略会按 Local/Site/Domain/OU 顺序应用并覆盖本机策略。 这种情况下需要让 IT 管理员检查 CrashOnAuditFail、安全日志保留策略,以及用户权限分配。

还不行时检查登录权限项

打开 secpol.msc本地策略用户权限分配

  • 允许本地登录:确保你的 Windows 用户所在组没有被移除。
  • 拒绝本地登录:确保没有包含你的用户或你的用户组。
  • 生成安全审核:默认应包含 Local ServiceNetwork Service;Microsoft 文档说明这是该权限的默认配置。

如果你之前装过安全加固工具、公司管控策略、某些“优化/杀毒/加速器”工具,这些项被改动后也可能导致 HCS/WSL 创建 VM 时失败。

最可能的一条修复路径就是第一段 PowerShell:备份并清空 Security 日志 → 设置 CrashOnAuditFail=1 → 重启

本地安全策略重置为默认

1
2
secedit /configure /cfg "$env:windir\inf\defltbase.inf" /db "$env:windir\security\database\defltbase.sdb" /verbose
gpupdate /force
评论

:D 一言句子获取中...