NOTE · Engineering Systems
Windows 与 WSL:可回滚的系统排障备忘
整理 Python 启动别名、WSL、网络驱动器、占用文件和系统空间的安全诊断方法。
注册表托盘开关、OOBE 绕过、旧 netsh firewall、递归接管权限等做法不可泛化。本文只推荐能回滚、能验证的排障路径。
Win 键、托盘和首次启动
下面几个短问题应先从可验证的设置排查,不提供未经核验的注册表配方:
- Win 键失效:先检查键盘的 Win-lock/游戏模式、硬件模式开关、屏幕键盘、另一把键盘和键盘管理软件,再检查系统快捷键。不要先改注册表。
- NVIDIA App 不出现在托盘:从 NVIDIA App 自身设置、Windows“启动应用”和托盘图标显示状态检查。修改
nvlddmkm下NVTray、ShowInSedona、StartOnLogin的值没有版本或来源依据,驱动升级也可能覆盖,因此这里只作为历史现象记录。

这张截图不构成修改注册表的建议;没有确认驱动版本、值的语义和可回滚备份时,不应照图修改。
- Windows 首次启动联网要求:
OOBE\BYPASSNRO属于会随构建和组织策略变化的绕过方式,不作为当前部署指南。个人机器和组织设备分别按当前微软 OOBE/Autopilot 文档处理。
Python 命令打开 Microsoft Store
先确认命令解析到了哪里:
Get-Command python -All
where.exe python
py -0p
如果结果指向 WindowsApps 的应用执行别名,而机器上另有真实 Python,可在“设置 → 应用 → 高级应用设置 → 应用执行别名”中检查 python.exe / python3.exe,或使用 Python Launcher:
py -3 --version
不要靠复制另一个目录里的 python.exe 修复 PATH。
WSL 状态与恢复
wsl --status
wsl --version
wsl --list --verbose
温和重启 WSL 虚拟机:
wsl --shutdown
在迁移或修复发行版前先导出备份:
wsl --export DISTRO_NAME D:\Backups\DISTRO_NAME.tar
wsl --unregister 会删除发行版及其数据,不属于普通排障步骤;本文不提供“先删再试”的流程。
若 \\wsl.localhost 无法访问,应先检查发行版是否运行、WSL 服务状态和资源情况,而不是修改共享权限:
wsl --list --running
wsl --distribution DISTRO_NAME --exec df -h
把 WSL 副本迁到非系统盘
官方支持 --export / --import。安全做法是先导入为新名字并验证,不急着注销原发行版:
wsl --shutdown
wsl --export DISTRO_NAME D:\Backups\DISTRO_NAME.tar
Get-FileHash D:\Backups\DISTRO_NAME.tar -Algorithm SHA256
wsl --import DISTRO_NAME_MOVED D:\WSL\DISTRO_NAME_MOVED D:\Backups\DISTRO_NAME.tar --version 2
wsl --list --verbose
wsl --distribution DISTRO_NAME_MOVED
在新副本中检查普通用户、home、项目文件、包、systemd/服务和网络,再单独决定默认发行版与旧副本。--import 的发行版可能默认进入 root,需要按该发行版文档设置默认用户。
wsl --unregister 会永久删除原发行版的数据和配置;仅有一个 tar 文件并不等于备份已经可恢复。必须确认哈希、成功导入并抽查重要文件后,才考虑该破坏性操作。参见 Microsoft:WSL 基本命令。
常见错误码不是一键修复结论
0x80072EE2通常表示请求超时,继续区分 Store/Windows Update、DNS、代理、TLS 和防火墙;0x80070002表示系统找不到指定文件,结合触发命令、发行版注册状态、事件日志和实际 VHDX/路径定位;\\wsl.localhost报资源不足时,先看发行版是否运行、宿主机内存/磁盘和 WSL 日志,不通过修改共享 ACL 绕过。
先保存完整错误和 wsl --status、wsl --version、wsl --list --verbose 输出,再查与当前 WSL 版本对应的官方 issue/文档。
文件或移动硬盘“正在使用”
先关闭位于该盘上的文件、终端、编辑器和媒体库。再用任务管理器/资源监视器查找相关句柄;需要更细信息时可使用微软 Sysinternals Process Explorer 或 Handle。
不要用强制拔盘验证猜测。确认写入完成、文件系统无活动后,再从系统托盘安全弹出。
资源监视器的“关联的句柄”或 Sysinternals Process Explorer/Handle 能按盘符、路径搜索占用者。系统索引、杀毒扫描、终端当前目录和编辑器文件监视都可能持有句柄;关闭具体程序比结束 Explorer 或强制离线磁盘更安全。
权限提示
先查看当前 ACL:
icacls "C:\PATH\TO\TARGET"
“需要来自某用户的权限”不等于应递归取得整个目录的所有权。系统目录、应用目录和其他用户目录的 ACL 有明确用途。只有确认目标是自己的数据、已有备份且理解继承范围时,才在图形界面修改所有者或权限。
不把“Administrators 完全控制整个目录树”作为通用删除方法。
网络驱动器
查看现有映射:
net use
删除已经确认不再使用的映射:
net use DRIVE_LETTER: /delete
DRIVE_LETTER 是占位符。删除映射不会删除服务器数据,但正在使用该盘符的程序会失去连接。
局域网共享异常时补充检查:
Get-SmbConnection
Get-SmbMapping
Test-NetConnection SERVER_HOST -Port 445
Windows 10/11 与当前 Samba 通常使用 SMB2/SMB3,不应为访问旧设备就全局启用 SMB1。先确认服务器协议、账号、共享权限、文件 ACL 和凭据管理器中的旧凭据。删除本地账户前也应先迁出其桌面、文档、浏览器资料、加密文件和应用数据。
端口被占用
Get-NetTCPConnection -State Listen |
Sort-Object LocalPort |
Select-Object LocalAddress, LocalPort, OwningProcess
定位具体端口:
Get-NetTCPConnection -LocalPort PORT_NUMBER |
Select-Object LocalAddress, LocalPort, State, OwningProcess
Get-Process -Id PROCESS_ID
确认进程身份和服务关系后,再决定改端口、停止服务或退出应用。不要因为看到 PID 就直接强制结束。
网络与防火墙
Get-NetIPConfiguration
Get-NetRoute
Test-NetConnection SERVER_HOST -Port PORT_NUMBER
Get-NetFirewallProfile
旧 netsh firewall set icmpsetting type=all mode=enable 会使用过时接口并放宽整个 ICMP 范围,已删除。需要测试 ICMP 时,应在 Windows Defender 防火墙高级安全中创建边界明确、可命名、可删除的入站规则,并限制配置文件和来源地址。
“一台能 ping 另一台、反向不通”通常是两端防火墙配置、网络 Profile、路由或 ICMP 策略不对称,并不自动说明网卡坏了。Ping 也不等价于应用端口可达;继续用 Test-NetConnection 测目标服务端口。
UDP 广播收不到时确认发送地址、端口、绑定接口、子网边界、防火墙和虚拟网卡。广播通常不会跨路由器转发;不要通过关闭全部防火墙来证明代码“没问题”。
远程桌面只应为当前网络 Profile 和明确来源开放规则。微软 Wi-Fi Direct Virtual Adapter 被系统功能使用时,设备管理器中直接禁用可能影响无线显示、热点等功能;先确认实际依赖。
Everything 索引
下面两条操作仍然有效:
- 手动重扫文件夹索引:
Tools → Options → Folders → Rescan All Now; - 同一结果出现两份时,检查是否把已由 NTFS 索引覆盖的卷又加入 Folder Index。移除重复的 Folder 条目,不删除真实文件。
对离线移动硬盘,强制全量重建可能暂时把不可用目录显示为空;连接并确认盘符后再重扫。当前菜单与原理见 voidtools 官方排障页。
Alt+Tab、截图和 Windows Spotlight
- Alt+Tab 是否显示 Edge 标签页由 Windows 多任务设置控制;如果只想切换应用窗口,在当前系统设置中把标签页数量改为“不显示标签页”。
- 截图工具的自动保存位置和开关会随 Windows 版本变化,先从 Snipping Tool 设置和“图片/屏幕截图”目录确认,不靠第三方注册表脚本。
- Windows Spotlight 是动态下载内容。若只是想固定喜欢的锁屏图,优先从“设置 → 个性化 → 锁屏界面”切换为图片并选择自己已保存的文件;不要依赖内部缓存文件名长期不变。
- 记事本显示、下划线和输入异常先用纯文本、另一字体和输入法复现,区分渲染、格式和输入法,不替换系统字体。
电池报告
旧链接可由系统自带命令替代:
powercfg /batteryreport /output "%USERPROFILE%\Desktop\battery-report.html"
报告中的 Design Capacity、Full Charge Capacity 和使用历史是估算与固件上报,不是一次测量就能证明电芯健康。结合多个充放电周期、异常关机和厂商诊断判断。命令定义见 Microsoft powercfg 文档。
pagefile、hiberfil 与系统空间
pagefile.sys 和 hiberfil.sys 是系统管理文件,不应在资源管理器中强删。先查看休眠和睡眠能力:
powercfg /a
关闭休眠会同时影响依赖休眠文件的功能,具体边界见《Windows 睡眠、休眠与电源计划》。虚拟内存则优先保留系统管理,只有在明确工作负载、崩溃转储和磁盘约束后才调整。
Windows 上 pip 缓存、UE 派生数据缓存等目录也可能占空间。先用对应工具查看和清理策略,不用目录联接偷偷搬走仍在写入的缓存。确需迁移大型应用目录时,使用本博客 mklink /J 的备份、校验和回滚流程,并优先使用应用官方提供的缓存位置设置。
工具安装类旧链接的处理
Visual Studio、CUDA、SWIG、FFmpeg 和 VMware 的安装入口都应使用各自官方发行页并记录版本;过时的 CSDN 教程与 Windows 7 虚拟机修补步骤不应作为当前建议。多 CUDA 版本是否能共存不仅由目录决定,还涉及驱动、PATH、编译器和项目环境,最好由 Conda、容器或构建脚本隔离。
浏览器疑似劫持时检查扩展、搜索引擎策略、快捷方式目标、代理、DNS、计划任务和安全软件报告;不要下载名字叫“一键修复”的未知工具。
不建议的高风险做法
- 修改未记录来源的 NVIDIA 注册表值;
- 绕过 Windows 首次启动联网流程;
- 全局放宽 ICMP 或防火墙;
- 递归取得任意目录所有权和完全控制;
- 从别的电脑复制系统 OpenSSH 文件;
- 无证据的浏览器劫持、驱动和 VM “一键修复”链接;
- 支持未核实注册表改动的旧截图,以及与正文无关的身份页脚。
Win 键、Everything、WSL 迁移和电池报告等安全主题仍可按上文的受支持方式处理。
参考资料与书签
以下 48 条仅作为历史检索入口。第三方注册表、权限接管、防火墙、系统文件删除、旧驱动、虚拟机和缓存迁移教程可能不适用于当前 Windows;先查当前微软或软件厂商文档、建立备份和回滚点,不要直接照抄。
- Win 键被锁住
- 移动硬盘提示“设备正在使用中”参考一
- 移动硬盘提示“设备正在使用中”参考二
- win11 系统【文件共享】局域网共享本地电脑文件夹以及密码和访问权限设置
- Win10 无法访问 Samba 共享文件夹
- win11 删除本地账户
- win10 如何关闭 Alt+tab 只切换 Edge 浏览器的网页
- win11 如何找到桌面聚焦图片的位置并获取
- windows 记事本不显示下划线的原因及解决方法
- IPv6 测试通过但 ping 失败
- CMD 运行 Python 时弹出微软应用商店
- win11 没有本地组策略编辑器
- win11 打开 secpol.msc、gpedit.msc 显示
试图引用不存在的令牌 - win 键与 alt+tab 键失效
- 电脑之间互相 ping,只有一方可以 ping 通
- 查看笔记本电池健康度的两种方法和电池报告解析
- 浏览器劫持
- wsl 迁移到非系统盘(我用的方法一)
- wsl 详细介绍视频
- wsl 安装 ros
- wsl.localhost 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。系统资源不足,无法完成请求的服务
- wsl 安装过程中出现 0x80072EE2 错误
- wsl 启动出现错误 2147942402 (0x80070002)
- wsl 安装 docker-ce-cli
- 解决 office 登录一直转圈
- 解决 onedrive 同步被挂起
- ffmpeg 安装教程(windows 版)
- Everything 搜索移动硬盘文件
- Everything 手动更新文件夹索引
- Everything 搜索结果重复
- visual studio2022 下载安装详细教程
- 在 windows 上安装多个版本的 cuda
- win11 下安装 swig
- 使用 vmware 安装 win7 虚拟机
- 解决虚拟机安装 win7 的 vmware tools 失败的问题
- vmware workstation 侧通道缓解开关位置
- 当 443 端口被占用时如何解决
- win11 关闭截图自动保存
- win11 系统的截图保存在哪里
- [winerror 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次
- UE4/5 更改缓存路径,为 C 盘减压(各种版本通用方法)
- udp 广播包发不出去或接收不到问题
- Windows 中的 pagefile.sys 可以删除吗?若可以,怎么删除?
- C 盘 hiberfil.sys 文件可以删除吗
- 更改 Windows 上 pip 缓存位置
- 删除不用的网络驱动器
- win11 允许远程桌面通过防火墙
- 设备管理器中新增的 wifi 网卡 Microsoft Wi-Fi Direct Virtual 的关闭方法