不打补丁的火星 Windows 7,安装 .net 4.X 失败,时间戳签名和/或证书无法验证或已损坏
我有一台 Windows 7 的虚拟机,不用想,没有打过安全补丁,是一个火星 Windows 7。今天找出来测试软件,要装 .net 4.7 运行库,本来跃跃欲试了,结果进度条走一半安装失败,原因如题。错误代码:0x80096005。对应英文版应该是:The timestamp signature and/or certificate could not be verified or is malformed.
懂技术的朋友应该能明白其中的缘由,是系统由于没有打过安全补丁,内置的信任根证书列表太旧失效了,无法验证、信任微软自家用新证书签名的 msi 安装程序(主要是时间戳证书无法验证可信),导致微软“我杀我自己”阻止了安装。为了安全嘛,验证系统库安装程序签名并阻断不信任的情况,应该的应该的,道理我都懂。但我理解现在的这个局面的症结,真想让 Windows 无视证书错误继续安装,但可惜 Windows 是个程序,不是工程师,无法和他交流表明技术意图让他给我变通变通。
解决方法:
在当前路径打开管理员 PoweShell 窗口,以及在既有普通 Shell 提升创建管理员 Shell,维持当前目录不变
Title: "Open PowerShell (Admin) Window Here" from Explorer, and A Ease Way to Start (Elevate) A New Admin Shell from An Normal Shell with Current Working Directory Unchanged.
- Article in Chinese only -
很多人也许知道,Windows 资源管理器打开文件夹,在窗口的空白区按住 shift + 右键单击,这样会弹出“扩展”右键菜单,这个扩展菜单相比普通菜单多出一些菜单项,如 "在此处打开 Powershell 窗口(S)
" (Open PowerShell window here
) —— 它以当前目录为工作目录打开 PowerShell,而不必我们亲自 cd
(Set-Location
) 切换,很方便。
不过这样打开的这个 PowerShell 运行在普通非管理员用户身份下,只有普通权限。然而我们有时候想在当前目录下执行一些高权限操作,需要 UAC 开管理员身份的 Sh...
Rust 在 Windows 上 Release 编译彻底去除调试符号信息
本文介绍如何让 Rust 在以 Windows 为目标平台的 Release 编译的基础上,通过配置链接参数进一步彻底去除多余的调试符号信息,针对的工具链包括 GNU 和 MSVC。
去除额外的符号信息能减小最终生成程序的体积。如果是在 Windows 上使用 GNU 工具链,那么这一点会很明显。
一个 Rust 的 Hello World 程序,在 Windows 下,使用 GNU 工具链,即便是 Release 编译,最后生成的程序体积也有 3 MB 多。其中调试符号信息占了大部分体积;如果去除,程序体积可以下降至 600+ KB。好在如果使用的是 MSVC 工具链编译,调试符号会另存于 .pdb
文件,程序本体没有这样的体积问题。
在 Linux 下,如果编译时带上了符号信息,编译完还可以用 strip
工具解决这个问题,但是 Windows 下呢?
去除符号信息可以减小 Rust 程序体积,但本文不打算探讨减小 Rust 程序体积的各种技巧,本文只打算纯粹地介绍在 Windows 目标平台上编译 Rust 程序时如何去除额外的调试符号信息。
读者如果想进...
关于 Win10 UWP 邮件应用代理设置
本文假定您已经知道 UWP 应用需要解除回环访问(Loopback)网络隔离从而支持本地代理。
如果您不是很了解该内容,请查看 EnableLoopback Utility – 让 UWP 应用也能使用系统代理[Windows]
如果只将 邮件和日历
添加到 Loopback 限制排除名单,在邮件应用内添加其他账户/邮箱的 SSO 登录页面仍无法使用代理。可能提示:
当前无法连接到你所需的服务。请检查网络连接或稍后重试。
经过排查,还需要放行名称开头为 microsoft.windows.authhost
的几个应用才能使得 SSO 登录也支持代理。(其实只是其中的某一个放行就可以了,但是如果懒得测试,就全部放行)
以 AppContainer Loopback Exemption Utility 为例,示意图:
在 EnableLoopback Utility 中放行 microsoft.windows.authhost.*
Python 3.8 上 ctypes 加载 DLL 库抛出异常 FileNotFoundError: Could not find module 'node.dll'
本文原发于笔者在 Github 上的项目 Issue 讨论中 (https://github.com/ynyyn/Miniblink-Python-SimpleDemo/issues/4),系笔者在 Python 3.8 上测试项目兼容性时觉察到的 Python 行为(与兼容性)变更。
现象
使用 Python 3.8 ctypes 加载 DLL 库,采用相对路径加载,如下写法所示:
mb = ctypes.cdll.LoadLibrary("node.dll")
启动时抛出 FileNotFoundError
异常,提示 Could not find module 'node.dll'. Try using the full path with constructor syntax.
Exception in thread Thread-1:
Traceback (most recent call last):
File "...\Python38\lib\threading.py", line 932, in _bootstrap_inner
...
Win10 锁屏界面背景选择“Windows 聚焦”无效/不更新解决方案
症状
- 在 Windows 设置>个性化>锁屏界面,将 背景 选择为 Windows 聚焦;
- 切换到设置其他选项页,再切换回 个性化>锁屏界面,发现背景选项变为图片,即刚才选择 Windows 聚焦 的操作无法生效。
解决方法
开始->设置->隐私->后台应用
设置里的隐私,后台应用按钮要保持打开,否则Windows聚焦不可选,默认变成图片
—— By LucissZ,来源:windows 聚焦功能失效,不能更换锁屏壁纸
评价
这个 Bug 该怎么说呢... 从程序的角度来看,可以理解这是为什么;但是显然从用户的角度看,这种隐含功能依赖的 Bug 是很遗憾的。