之前把好几个零散的 PowerShell module/script repos 合并了一下,现在叫做 PowerShellThingies。
前情:
- /t/359583 把 PowerShell 窗口固定到屏幕一侧( Dock-Host )
- /t/365073 实现 PowerShell 二进制流管道( Use-RawPipeline )
psguy.me这个域名即将脱离我的控制,我也把对应的 repo archive 起来了
迁移之后增加:
- 备份还原 Outlook (for Desktop) 签名的工具,我自己放进 OneDrive 里面。功能包括自动按照时间命名备份,自动选择最新的备份(如果不指定)来还原,删除旧备份。
- 在账户里存取 credential,可以用这个方式非常方便地把一些程序安装到单独的账户里,比如我有一个专门的用户运行 Chrome,另一个专门的用户运行 GNU 工具链,还有专门用来做操作系统课作业的账户。有了这个工具可以非常方便地切换 PowerShell 的运行身份(例如
get-fastcredential gnu | su即可切换为gnu这个用户来运行 PowerShell )。
还有一个重头戏
我安装完 Windows 之后最开始的几步是这样的:
- 关掉欢迎屏幕的背景( Windows 10 的烟雾大玻璃照片),关掉之后效果同 Windows 8,显示用户的个人背景色;这点需要修改一个 registry value ;
- 重命名电脑(默认值是
DESKTOP-一串,而且安装过程不会提示你选择一个名字); - 改变系统的 locale (非 Unicode 程序的默认编码),因为我一般用的是英文的 image,所以需要手工改成
zh-CN; - 改变注册用户名、机构名,这需要修改 registry values,这个名字会在 Windows 程序的“关于”对话框里出现(也就是
winver.exe的对话框); - 删除一些没用的 Microsoft Store apps,包括从所有用户中删除,并从系统配置中删除;
- 更新 PowerShell 的帮助文档。
其中第 5 步有一个重大改进,之前是写一个文本文件 useless-packages.txt 来指定要删除的包的名字,缺点在于每次拿到不同品牌的电脑预装的 app 可能不同,另外随着系统更新也会有不同的 app 新加进来。比如新的 Surface Book 2 会有商店加载的 Office 2016 程序,这对我都是没用的,需要删掉。
现在我写了一个很简略的网页模板,PowerShell 脚本会把本机具有的 Microsoft Store 程序包 pop 进去,然后用户可以在网页上用复选框选择需要删除的包(点击包名可以转到 Microsoft Store 查看这个应用到底是什么),然后点按钮生成一个“总结”,把“总结”粘贴回 console 里面就可以删除不想要的东西。
实际上我发现这种操作方式还是挺方便的,比如我现在觉得 git 的 interactive rebase 挺好用的(如果你用一个现代的编辑器,或者使用图形界面编辑 rebase 的工作),另一个例子是我在前东家做的一个 compare -> edit diff -> patch 的 workflow (虽然我觉得前东家现在应该没有人去手动编辑那个 diff,因为自动生成的已经非常好了)。
效果如图:(拼写错误已经被修正)

