WIN 的折腾

  • windows 下日常环境的一些折腾

  • 资料来源:

    <>

  • 更新

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    20.06.01 初始化
    20.06.17 添加 win32
    20.07.20 添加 win ssh
    20.12.28 添加 win10 修复
    21.01.01 ltsc 安装微软商店
    21.01.19 备份 uwp 数据
    21.02.21 邮件 wlibim.dll 错误
    21.09.08 edge 由你的组织管理
    21.09.15 Nvidia Container 占用过高 cpu
    21.11.02 firefox 打开的问题
    22.08.22 更新一些新的备份
    23.04.26 一些最近坑的汇总..
    23.06.08 另外一些坑
    23.08.03 windows 系统修复

导语

这算是个集合贴,日常在 win 10 下遇到的各种奇葩问题.

Win10 镜像

一开始所有镜像都是在 MSDN 我告诉你 下的.但是 2004 还没有更新 ed2k.

实际上没有那么麻烦,win10 官方就有最新的 镜像 但是要求浏览器的 user-agent 设置成非 windows.还有就是满宽带.

还有另一种获取镜像方式 -> uup dump

  • 似乎是从微软服务器获取镜像所需要的全部文件,然后本地压成 ISO 镜像.
  • 这样可以让镜像只包含单版本,镜像体积小了很多.
  • 许多官方没有提供下载的版本 (例如现在的 22h2),都能用这样的方式获取到.

Win10 启动盘

win10 官方镜像制作 这个网址实际上和上面是一个,只是不同的 user-agent 会跳转.

点击立刻下载工具,下载 MediaCreationTool2004.exe 按照操作继续就行了,注意这个工具会下载最新 2004 的镜像.

启动盘各种问题

首先先换个 usb 口,有的 u 盘对 usb3 的兼容性不太好.

其次,官方 MediaCreationTool 制作的启动盘可能会有问题,所以官方推荐 rufus 写盘 (说实话,这真的是官方推荐的…)

win10 启动盘选择镜像 -> 标准 windows 安装 -> GPT .写完直接启动.

说实话,我还记得好像可以吧 win10 镜像直接解压到 u 盘根目录,直接启动就可以了.(好久没用,未验证)

IPv6 不可用

明明有 v6 地址,但就是 ping 不通连不上.但是断开 wifi 重连,马上就好.

实际上可能是防火墙的问题,特别是 windows defender -> 防火墙 -> 阻止所有传入连接,一定要关掉.

Win10 邮件/日历/通讯录 无法添加账户

这是个老问题了,遇到过很多次.微软官方给的操作一般是重置应用,执行修复系统命令,但是甚少能起到作用.

首先看看系统隐私设置中 账户信息/联系人/日历/电子邮件的权限给没给 邮件和日历应用.

如果是卡在添加账户一直转圈,可能和文件系统权限有关系,到系统盘/Program Files/WindowsApps 将这个文件夹的权限设置为你的账户后,将只读去掉 (会有错误,但忽略即可),重启,完成.

Win10 邮件闪退

好好的系统,突然邮件开始闪退,还是就不回来了那种…

windows 事件查看器

1
2
3
4
5
6
7
8
9
10
11
错误应用程序名称: HxOutlook.exe,版本: 16.0.13426.20644,时间戳: 0x601b3d1d
错误模块名称: wlibim.dll,版本: 16.0.13426.20632,时间戳: 0x6014b061
异常代码: 0xc000001d
错误偏移量: 0x0000000000b38bb2
错误进程 ID: 0xd50
错误应用程序启动时间: 0x01d7085b58bd33ef
错误应用程序路径: C:\Program Files\WindowsApps\microsoft.windowscommunicationsapps_16005.13426.20688.0_x64__8wekyb3d8bbwe\HxOutlook.exe
错误模块路径: C:\Program Files\WindowsApps\microsoft.windowscommunicationsapps_16005.13426.20688.0_x64__8wekyb3d8bbwe\wlibim.dll
报告 ID: 34a92b8d-d6f4-4d91-b2bd-d25e161f3fa8
错误程序包全名: microsoft.windowscommunicationsapps_16005.13426.20688.0_x64__8wekyb3d8bbwe
错误程序包相对应用程序 ID: microsoft.windowslive.mail

反正搜索一番,没啥有用的,破罐子破摔.powershell 管理员权限

1
Get-AppxPackage \*communi\* | Remove-AppxPackage

卸载邮件,微软商店重装.一切正常…

wsl2 与 Ryzen Master 冲突

已经不存在了

具体表现是打开 Master 提示 Virtualization Based Security 必须关闭.

Virtualization Based Security 实际上指的是 windows defender -> 设备安全性 -> 内核隔离 -> 内存完整性.虽然已经关掉了,但 Ryzen Master 还是提示必须关闭.

解决方案具体来说在 WSL2 and Ryzen Master - Virtualization Based Security. #4771

这个锅在 amd 不是微软,算是 amd 没有适配新特性,解决起来也比较麻烦,但是总归有的解决,没有吃电脑…

最终是用 IDA 解决了,步骤按照原教程来就可以了.对应 视频教程

Wsl2 占用大量内存

wls2 按道理来说有自动的内存回收,但是时常会直接占用到宿主机的大量内存,尤其是实验室那台只有 8g 的机器…

好在有办法全局限制,创建 %UserProfile%\.wslconfig 写入

1
2
3
4
5
[wsl2]
processors=4
memory=1.0GB
swap=3GB
localhostForwarding=true

大致上限制使用 4 个 CPU, 内存 1G, swap 3G, 允许 localhost:port 转发.

AX200 强刷 Killer AX1650

英特尔的 cpu 这几年不太给力,但是 wifi6 网卡实在是够意思了.

AX200 的价格和性能,仿佛预示着 wifi6 的全面普及,但是没钱上 wifi 6 路由 o( ̄▽ ̄)o.

AX200 又是 Killer AX1650 的马甲,两者就硬件 id 不一样,可以强刷,据说有提升,不折腾不死星人,所以开刷.

因为 wsl2 上了 win10 2004 对驱动的校验有变化,以前的教程都失效了.

把 Intel AX200 系列网卡刷成 Killer AX1650 系列网卡教程 最简方法

这是经过完整验证,驱动和杀手的软件都能正确安装的教程.

提升还是相当可观的,尤其是在弱信号条件下,拉 win10 镜像,AX200 只有 40M, AX1650 能到 150M.

字体模糊

字体渲染的问题可以交给 MacType,但是高分屏缩放还是有个别应用字体模糊…尝试自定义缩放到 124%.这样字体就不模糊了.但是貌似排版有会有问题,反正很折腾.

另一种解决方式 参考: https://www.v2ex.com/t/542341

  • 开启超虚拟分辨率,类似于全局抗锯齿,然后将 win 的缩放调整到 200% 及以上.

Win32 应用

自从当年开发环境被搞坏 N 次找到元凶 QQProtect 以后,再也没在主力机上安装过任何其他软件.但奈何联系都是微信和 QQ 逃不过的.

微软倒是看到 uwp 推不动,换成 win32 转制应用就快多了,QQ 微信也有 win32 转制的,但是吧安装为系统应用,虽然没有了 QQProtect 但是这个前科实在是不敢用.

直到发现可以自行提取 win32 转制的应用,相当于是官方的绿色版,还能扔到沙盒里运行,这就好多了.具体见另一篇博客.

Win Ssh 通过代理连接

linux 上 ssh 通过代理连接很简单,在 .ssh/config 上配置 ProxyCommand nc -x 127.0.0.1:1080 %h %p

win 上就没那么简单了,win 自带的 openssh 不支持上面的命令…

这是需要转向 connect 求助了,connect 可以让 ssh 非常轻松的通过代理连接.

  • 下载 connect.exe ,你可以在 downloads 下载,如果你安装了 git for windows(应该都有吧) 在 X:\Program Files\Git\mingw64\bin 下能找到.
  • 把 connect.exe 加入路径,可以加到系统环境变量的 path 下,我懒直接复制到了 C:\WINDOWS\System32\OpenSSH\.
  • 修改 .ssh/config 类似 ProxyCommand connect.exe -S 127.0.0.1:1080 %h %p 代表是 socks 代理 端口 1080,如果加入了环境变量的 path 不需要写全 connect.exe.

connect 的 文档

Win10 修复系统文件

参考 > https:/a/support.microsoft.com/zh-cn/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system

日常总会遇到一些非常难解,无厘头的问题,最近的一个是 微软商店突然抽风,网络是正常的…

一些错误是系统文件错误导致的,win10 自带了修复命令.

  • dism: DISM.exe /Online /Cleanup-image /Restorehealth
    • 必须在联网状态下进行,DISM 通过 Windows 更新提供修复损坏所需的文件.
  • sfc: sfc /scannow
    • 描所有受保护的系统文件,并用位于 %WinDir%\System32\dllcache 的压缩文件夹中的缓存副本替换损坏的文件.

以上两个命令可以解决一些问题,如果还不行,就必须考虑保留全部配置重装系统了.

LTSC 安装微软商店

虚拟机还是 ltsc 最节省资源.最新的是 ltsc 2019 基于 1803 企业版精简.

但是 ltsc 把微软商店,uwp 全精简了,非常不方便,需求重新安装 uwp 环境.

尝试过一些教程后就是 LTSC-Add-MicrosoftStore 最稳

注意:

  • ltsc 安装后不要更新,直接运行 LTSC-Add-MicrosoftStore .
  • 更新后再安装会有冲突,导致一些小毛病.但是也能补救
    • Win+R 打开运行,输入 WSReset.exe.
    • 该命令会清空并重置 Windows Store 商店的所有缓存。

备份 Uwp 数据

当前用户的所有 uwp 应用数据都在 user\AppData\Local\Packages 下.

文件夹名称可以打开 uwp 应用从任务管理器获取.

Edge 由你的组织管理

某天突然显示 edge 被组织接管,而且仅在主力机上,异常费解.

时隔多日终于从组织管理中解脱…个中原因不尽相同,这里的方法不能保证一定解决.

首先确认,没有作妖的软件.

  • 打开 edge://policy 确认现在那些策略被组织管理.
  • 打开注册表编辑器,win+r 运行 regedit
  • 定位 edge 相关键值,对比 edge://policy 页面,删除注册表键值,一定要全删干净.

最近的更新导致键值位置不再只是下面三个.最保险是从注册表编辑器搜索确定位置.

键值位置

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EdgeUpdate
  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge
  • HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge

我这里对应键值是在 HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge,全删除, 22h2 键值位置又变了,注册表挨个搜索全删, edge 才能从组织管理解脱…

Nvidia Container 占用过高 Cpu

主力机最近更新了 nvidia 驱动,结果每隔一段时间,cpu 风扇就会转起来,而且比较卡.

任务管理器显示 Nvidia Container 时不时会占用 cpu.

尝试搜索发现有用户遇到过 NVDisplay.ContainerLocalSystem cpu 占用率很高的情况,和这里似乎不太一样.

没有什么太好的办法,直接禁用了 NVDisplay.ContainerLocalSystem 服务,目前还没有遇到什么问题.

Firefox 打开问题

好不容易迁移到了 win11 当头一个 bug 是打开 firefox 无法打开.

1
2
<toolbarbutton id="UITourTooltipClose" class="close-icon"
--------------^

似乎是迁移的原因,无论如何在 *\Firefox\Profiles 下找到你的配置目录;

之后找到 addonStartup.json.lz4 文件,直接删除.

随后就能打开 firefox 了,但是需要重新启用一遍拓展.

多开 Firefox

about:profiles 新建配置文件 user,然后启动时增加 -p user ,不再需要 -no-remote.

windows 可以新建快捷方式,属性 -> 目标 添加参数.

0xc000000f Or 0xc0000225 错误

这是个很迷的错误, 双系统 一个 win10 单独是打游戏的,某天突然提示上述错误…

排查

  • 搜了半天非常可能是 \Windows\system32\winload.efi 出错了.
  • 双系统开机排查,进到 \Windows\system32\ 发现干脆报错,看起来 似乎是磁盘错误锁 system32
  • so 先修复磁盘试试?

任意 PE or Win 安装介质 进入 CMD 执行 chkdsk c: /f, 果然有错误,修正完毕; my power is back !

Hyper-v 支持 Usb 摄像头

转载自 > https://champhoon.xyz/note/vm-webcam/

hyper-v 实在好用,除了 usb 重定向… 好在还是能开启支持的.

  • 本地组策略编辑器 -> 计算机配置 - 管理模板 - Windows 组件 - 远程桌面服务 - 远程桌面连接客户端 - RemoteFX USB 设备重定向
  • 允许此计算机中受支持的其他 RemoteFX USB 设备的 RDP 重定向 -> 已启用 -> reboot
  • 跟 hyper-v 挂载本地磁盘相同, 进入 rdp 时候,点击 选项 - 更多 - 其他支持的 RemoteFX 设备; 此时摄像机就在此列.

定时任务 DISM 修复

已经出现了 3 次了,突然硬盘挂掉系统无法启动. 健康度检查完全正常, 完全没得着落.

无奈这次换了新的固态,增加个定时任务每日执行 dism 修复命令. 脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# coding: utf-8
# 运行 DISM 命令进行系统健康检查

Write-Host "DISM Check Started..."

$scanResult = dism /Online /Cleanup-Image /ScanHealth
$checkResult = dism /Online /Cleanup-Image /CheckHealth

$foundIssueScan = $true
$foundIssueCheck = $true

# 遍历 $scanResult 数组
foreach ($scanItem in $scanResult) {
# 如果检测到没问题,检查 $checkResult 数组
if ($scanItem -match "未检测到组件存储损坏") {
$foundIssueScan = $false
break
}
}

foreach ($checkItem in $checkResult) {
if ($checkItem -match "未检测到组件存储损坏") {
# 如果检测到没问题,将 $foundIssue 设置为 $false
$foundIssueCheck = $false
break
}
}

# 检查扫描结果
if ($foundIssueScan -or $foundIssueCheck ) {
# 检测到问题,运行 DISM 命令进行修复
Write-Host "issues detected. Repairing..."
dism /Online /Cleanup-Image /RestoreHealth

}
else {
# 没有检测到问题,不需要执行修复
Write-Host "No issues detected. No repair needed."
}

Exit 0

添加到定时任务,每日 2 点重复执行.只希望别再发生问题了,要不然就只能换电脑了……

干掉 EDGE 自动更新

前段时间国区 EDGE 自动推送微软电脑管家,实在是一言难尽…干掉 edge 自动更新提上日程

但是这货实在太难搞了,禁用任务计划 服务 删除更新程序每一样管用的…

最简单的办法也是最有效的 Program Files\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe 随便改个名字 😒 edge 居然自动修复了!!! 这和流氓软件有什么区别…

  • https://v2ex.com/t/629925

(23.6.12) 管用方法: 去掉 Program Files\Microsoft\EdgeUpdate 文件夹的读写权限,全部去掉.

  • edge 会显示: 检查更新时出错: 无法创建该组件 (错误代码 3: 0x80070005 – system level).

强制开启 卓越性能

win 的卓越性能其实是聊胜于无,尽量维持高的睿频不降频.对性能释放不完整的笔记本还是有点作用.

1
powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61

常规到这里就好了,但,坑爹的是 不是所有的笔电都能激活.干脆走组策略了…

1
2
3
# 上面激活时会有 GUID: 7d5ef1b4-d690-4341-a0a3-aabc7bc1253e
# 在组策略 Computer Configuration > Administrative Templates > System > Power management 可以直接输入 7d5ef1b4-d690-4341-a0a3-aabc7bc1253e 激活
# 此时再回到电源管理就能看到卓越性能了

PE 离线修复

参考: https://zhuanlan.zhihu.com/p/494215760

进入 PE 挂载 iso,假设是 f 盘, 修复文件的源头是 f:\sources\install.wim.

确认待修复系统版本 (这里假定在 c 盘),会返回当前是那个版本 (家庭版/专业版/企业版 xxx)

1
dism /image:c:\ /get-currentedition

查看修复源包含的版本

  • windows 的 iso 一般都是多版本共用一个镜像,执行后会返回对应版本的 index,记住.
1
dism /get-imageinfo /imagefile:f:\sources\install.wim

先执行下面两条命令

1
2
dism /image:c: /cleanup-image /StartComponentCleanup
dism /image:c: /cleanup-image /AnalyzeComponentStore

开始修复系统

1
Dism /image:c: /Cleanup-Image /RestoreHealth /source:F:\Sources\Install.wim:2 /LimitAccess
  • Install.wim:2 中的 2 就是 index. 这里假定 c 盘

再执行下面的命令,务必小心.

  • offwindir 指定 windows 目录的位置, offbootdir 指定启动盘的位置. UEFI+GPT 磁盘模式启动的电脑, 启动分区是 ESP 分区,可能不会显示.如果没有显示,可以使用 diskpart 为该分区设置一个盘符 (本例为 g 盘)
1
sfc /scannow /offwindir=c:\windows /offbootdir=g:\

最后 good luck (我没那么好运了,游戏盘挂掉了,但是似乎能直接在零一系统启动 steam…so 😂)

Windows 显示无网络

简而言之是网络成立小地球…即使没开代理也有时是这样…

参考: https://zhuanlan.zhihu.com/p/404063043

WindowsSpyBlocker 更换 NCSI 服务器,换到 Firefox 似乎就没再出现过.