设备:MAXSUN MS-H110ZL / 8GB RAM / NVIDIA Quadro P1000
系统:Windows 11 IoT Enterprise LTSC 2024(NTLite 精简镜像)
一、已部署工具链
全部放在 C:\Users\root\AppData\Local\Microsoft\WindowsApps\(默认在 PATH):
| 工具 | 文件 | 说明 |
|---|---|---|
| neofetch | winfetch.ps1 + neofetch.cmd | PowerShell 版,GitHub: lptstr/winfetch |
| busybox | busybox.exe + 180 个硬链接 | v1.38.0,0.7MB |
| curl | 系统自带 | 真·curl 8.8.0 |
| wget | busybox 的 wget 链接 |
1.1 busybox 使用
powershell
busybox --install # 生成 grep/sed/awk/tar/vi/sh 等 180 个硬链接(不占额外磁盘)
busybox --list # 查看全部 applet
sh -c "..." # 迷你 unix shell
1.2 neofetch 安装
powershell
# 下载 winfetch.ps1
curl -sL "https://raw.githubusercontent.com/lptstr/winfetch/master/winfetch.ps1" -o /tmp/winfetch.ps1
# 创建 neofetch.cmd 包装器
$neofetchCmd = "@echo off`r`npowershell -NoProfile -ExecutionPolicy Bypass -File `"C:\Users\root\AppData\Local\Microsoft\WindowsApps\winfetch.ps1`" %*"
[System.IO.File]::WriteAllText('C:\Users\root\AppData\Local\Microsoft\WindowsApps\neofetch.cmd', $neofetchCmd, [System.Text.Encoding]::ASCII)
关键: winfetch.ps1 必须使用 UTF-8 with BOM 编码才能在 PowerShell 5.1 中正常运行,否则会出现乱码或执行失败。
1.3 curl/wget 别名冲突
PowerShell 内置了 curl 和 wget 别名,指向 Invoke-WebRequest,会挡住同名 exe。已在 PowerShell profile 中移除别名,现在:
-
curl= 微软原生 curl 8.8.0 -
wget= busybox wget
二、踩坑笔记(SSH 远程操作 Windows)
以下记录在 Linux 端通过 SSH 远程操作 Win11 时遇到的主要问题。
坑 1:PowerShell 引号地狱
ssh host 'powershell -Command "..."' 要经过三层解析(bash → ssh → PowerShell),双引号嵌套极易翻车。
可靠替代方案(按优先级):
-
scp 推脚本文件再执行 ------ 最稳,任何复杂度都适用
-
单层单引号包 PS 命令,内部只用简单语法
-
-EncodedCommand(base64 UTF-16LE)------ 可行但生成麻烦
坑 2:cmd echo 会展开变量
远程默认 shell 是 PowerShell 时,cmd /c "echo if ($env:X) ..." 里的 $env:X 会被外层 PowerShell 先展开成实际值。
结论: 凡是含 $ 的内容,一律走 scp 推文件,不要用命令行拼接。
坑 3:注册表值名带空格/括号
reg add ... /v "SimSun & NSimSun (TrueType)" 引号穿三层必挂。
解法: 写 .reg 文件,scp 过去后用 reg import。
坑 4:执行策略重启后重置
RemoteSigned 策略在一次重启后可能失效,profile 加载失败 → SSH 又乱码。
修复命令:
powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
坑 5:per-user 服务禁不掉
OneSyncSvc、WpnUserService 这类带 _数字后缀 的服务,Stop/Set-Service 只对当前实例生效,登录一次就复活。
解决: 必须改 HKLM 模板 Start=4。
坑 6:GitHub 直链资产名猜不中
Weasel release 资产实际叫 weasel-0.17.4.0-installer.exe,与直觉不符。
正确做法: 先用 API 列出资产再下载:
powershell
iwr api.github.com/repos/rime/weasel/releases/latest | ConvertFrom-Json |
Select -Expand assets | Select name, browser_download_url
Win11 本机直连 GitHub 不通时,从 Linux 中转下载再 scp。
坑 7:NTLite 精简系统的隐藏地雷
-
Defender 可能被物理删除(不是禁用),装第三方安全软件前先确认
-
字体被裁剪 → 老软件乱码第一嫌疑是缺
simsun.ttc -
winget缺失、商店服务缺失属正常,不必浪费时间排查
三、Windows 激活状态
当前已从评估版转换为 Windows 11 IoT Enterprise LTSC 2024 永久激活。
转换步骤
-
下载 SKU 文件,解压后将
IoTEnterpriseS文件夹复制到C:\Windows\System32\spp\tokens\skus\ -
执行转换命令:
cmd
cscript.exe %windir%\system32\slmgr.vbs /rilc
cscript.exe %windir%\system32\slmgr.vbs /upk
cscript.exe %windir%\system32\slmgr.vbs /ckms
cscript.exe %windir%\system32\slmgr.vbs /cpky
cscript.exe %windir%\system32\slmgr.vbs /ipk KBN8V-HFGQ4-MGXVD-347P6-PDQGT
- 用 MAS 激活:
C:\Users\root\MAS_AIO.cmd /HWID
去除水印
cmd
reg add "HKCU\Control Panel\Desktop" /v PaintDesktopVersion /t REG_DWORD /d 0 /f
taskkill /f /im explorer.exe
start explorer.exe
四、内存盘备忘(未部署)
Windows 原生无内存盘。如需使用,推荐 ImDisk(开源,CLI 友好):
cmd
imdisk -a -s 1G -m R: -p "/fs:ntfs /q /y"
imdisk -D
8GB 内存建议 ≤2GB。
五、快速恢复命令
powershell
# 修复执行策略
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
# 更新 SSH profile
# 确认 profile 存在且编码正确
notepad $PROFILE