解决OFFICE临时文件导致的OneDrive同步状态问题

在 OneDrive 使用过程中,经常会发现某些文件夹的状态一直是“正在同步”,但一直未见完成。状态栏上的 OneDrive 图标却是显示“已同步”。

图一:还有文件夹未同步完成
图二:状态栏图标显示已经同步完成

经查,发现是文件夹内一般有无法同步的临时文件导致的。一般是由于 Word、Excel、PowerPoint 未正常关闭,在文件夹内留下了隐藏属性的临时文件(一般以 ~$ 开头)。取消隐藏属性,删除文件后,问题解决。

更换喇叭解决乐高DUPLO火车不响的问题

宝宝的乐高得宝(Duplo)智能火车(10874)又玩坏了。这次的问题是喇叭不响,不光遇到黄色鸣笛积木不响,连开关机的提示音也没了。这说明——多半是坏了。

发挥自己动手的优良传统,先拆机,确定零件型号。麻利的卸下电池、拆开底盖,找到喇叭,测量和观察后,大概参数如下:阻抗16欧、功率0.25W、直径21mm,塑料喇叭

淘宝上一搜,找了个最便宜的,9块9包邮,10个。到货后,等到一个夜深人静的晚上,拿起我心爱的小烙铁,开工换之。

更换完毕,通电试机,大功成矣。

根据“什么值得买”网站上的一遍文章的评论,喇叭不响这个问题挺常见的,说明这个玩具的品控确实不太行。但要注意与另一个问题区分:有时候火车通过黄色积木不响,猜测是积木表面磨损,导致反光率存在问题,火车的光电识别对黄色不太灵,就不会响。这时候可以调整一下积木摆放位置,可能就好了。并不是喇叭硬件坏了。

解决vs_installershell.exe has an invalid certificate问题

问题描述:打开Visual Studio Installer出现了错误:vs_installershell.exe has an invalid certificate,程序终止,无法启动visual studio installer.

问题分析:检查vs_installer.exe的数字签名,发现SHA1签署的签名无效。点击证书详情,发现是Microsoft Root Certificate Authority被吊销,导致数字签名验证失败,所以无法启动VS Installer。但在证书管理器里检查这个证书没有问题。

Work around:手动启动vs_installershell.exe(注意要以管理员模式启动),仍然能打开VS Installer并执行VS更新。

解决方法:

  1. 导出Microsoft Root Certificate Authority这个根证书到文件备份。
  2. 在组策略中取消证书自动更新。gpedit.msc -> 计算机配置 -> 管理模板 -> 系统 -> Internet通信管理 -> Internet通信设置 -> 关闭自动根证书更新 -> 已启用
  3. 在证书管理器中删除Microsoft Root Certificate Authority这个根证书,注意计算机账户和用户账户里的证书都要删掉。(方法是运行mmc.exe然后选择添加管理单元,选择证书后再选择本地计算机账户)
  4. 导入刚才备份的根证书到系统中。
  5. 在文件属性中查看vs_installershell.exe的数字签名,此时应该签名正常。
  6. 打开组策略中的证书自动更新。(参考第2步,最后选择已停用或未配置即可)

原因:出现问题之前自己手动删除了系统里所有的根证书。猜想是这个原因导致系统的证书验证出现异常。而Microsoft Root Certificate Authority这个证书是Windows系统需要的,如果出现问题会导致系统组件工作不正常。所以通过停用自动更新的方式,手动刷新了这个根证书的状态,系统恢复正常。


English Version:

Error description: An error occurred while opening Visual Studio Installer: “vs_installershell.exe has an invalid certificate”. The program terminates afterwards.

Problem analysis: Manually check the digital signature via Properties window, the SHA1 signature is invalid. By clicking “View certificate”, it says that the “Microsoft Root Certificate Authority” CA certificate is revoked, the signature is invalid. The VS installer cannot be started because the digital signature validation failed.

Work around: Manually start vs_installershell.exe from File Explorer. By default it’s located in C:\Program Files(x86)\Microsoft Visual Studio\Installer\. Note that you should run as administrator.

Solution:

  1. Export the CA certificate “Microsoft Root Certificate Authority” to file.
  2. Disable Automatic Root Certificate Update in Group policy. Run gpedit.msc -> Computer config -> Administrative Templates -> System -> Internet Communication Management -> Internet Communication Settings -> Turn off Automatic Root Certificates Update -> Enabled.
  3. Open local computer certificate manager. (Steps here) Delete the “Microsoft Root Certificate Authority” CA certificate from trusted root certification authorities.
  4. Import the certificate from file (just exported in step 1).
  5. Check the digital signature of vs_installershell.exe from File Properties again. Now the signature should be valid.
  6. Turn on Automatic Root Certificates Update. (Refer to the operation in step 2)

Root cause: Before the error occurs, I just deleted all the certificate from system. But “Microsoft Root Certificate Authority” is required for Windows. If deleted, the system might encounter unknown issue. Turn off and turn on the Automatic Certificate Update and re-import the certificate would reset internal system state, which solve the problem.

乐高LEGO得宝DUPLO智能火车拆解修复

宝宝的 LEGO 乐高智能火车(10874)在玩过一次之后就不能走了。症状是安上电池可以开机,可以出声,手机蓝牙可以连接,但车轮不走。在不通电的情况下用手去掰车轮也非常生硬,难以转动,初步判断是马达坏掉了。

出于对这个高级玩具的好奇心和对自己动手的兴趣,决定拆开来看看,试着修复一番。

1. 首先拆开电池仓,用六角星形 T8 螺丝刀拧开底部的六个螺丝。(包括电池仓内的两个)

2. 随后可以小心地取下底盖。就能看到内部结构了。中间是电路板,前部是导光条,用来显示车灯。马达齿轮箱和金属配重安装在后部。

3. 可以轻轻取下马达和齿轮箱。用手转一转,发现很生硬,于是上了一点润滑脂。

4. 马达箱和齿轮箱是通过卡扣连接在一起的,可以用镊子小心地取下。马达则先把输出齿轮取下,然后取下尾部,就可以把马达单独拿下了。过程中需要注意尽量不要把线弄断,否则就要重新焊接了。

5. 用小螺丝刀把马达尾部拆开,取下转子,仔细检查转子绕组是否断开,然后小心地装上。这个马达的碳刷是比较大的,在安装的时候要小心碳刷不要被卡住。装好以后用手转一转,发现比之前要灵活多了,可能是马达被宝宝在玩耍过程中弄得堵转导致内部卡住了。

6. 通电试机,这下发现马达恢复了运转。说明之前的确是内部卡住了。本来从淘宝上买了五个替换马达,这下也没有用上。

最后是一点运转原理分析:这个智能火车是乐高 DUPLO 于 2018 年下半年发布的新品,支持蓝牙连接,支持感应积木。通过拆解全面了解它的原理:

  • 前轮轴上装有磁环,主板上磁环对应的位置有霍尔传感器,用于转速检测。这样火车被宝宝推动(不论前后)的时候前轮会转,从而启动马达驱动火车运转。火车在运行中被提起来,前轮失去附着,会停转;或者是运行中遇到障碍物,前轮也会停转,传感器感应到转速为零后,主板会停止马达,实现自动停车。
  • 车底有一个 RGB 三色 LED 和一个颜色探头,LED 照亮物体,通过物体的反光来识别颜色。不同的感应积木有不同的颜色(如红色—停车、黄色—鸣笛,感应积木本身就是一个塑料片,没有任何的智能化功能),这样车辆在运行中通过颜色传感器来“识别”不同的积木,从而作出相应的动作,实现“智能化”。

最后不得不感慨,随着电子信息技术的进步,现在的小朋友好玩的玩具真是太多了。一个小小的乐高积木玩具,都能实现电子化智能化。

附记:关于喇叭不响的问题,可参见后面换喇叭的文章

佳能 PRINT Business 无法连接的问题及排除

新买的佳能 LBP6018w,在电脑上 USB 打印和无线打印都很正常。在手机上试用了安卓打印插件(Canon Print Service)从 Word 输出文件一切正常。唯独使用佳能 PRINT Business 打印 APP 的时候,死活无法连接。

问题的描述与百度贴吧里的这篇贴子是一致的:6018w打印机连接手机的问题。特点如下:

  1. 其它打印方式正常,唯独 Canon PRINT Business 这个 APP 里不正常。
  2. Canon PRINT Business 可以搜索到打印机,但添加到主界面后,状态从就绪立即变成 N/A,图标从绿色变成灰色。

为了排除问题,在打印机设置里一阵好找。开始以为是 MTU 的问题,默认的 MTU 是 1500,但我的无线网络是有 VLAN Tag 的,需要占用 4 byte,如果打印机的 WiFi 发送大包会被丢弃。猜测是发现阶段广播的小包可以接收,但大包被丢弃了导致无法连接。

在打印机设置里把 MTU 调到 1400,重启后问题依旧,说明不是 MTU 导致的。

后来在佳能打印 APP 里反复搜索、添加打印机,打印机界面里一个熟悉的字样引起了我的注意:localhost。在自动搜索状态下,打印机的主机名被设置成了 localhost。这就有合理的解释了:添加到 APP 以后,APP 把数据发送给 localhost 也就是本机上,当然无法连接到打印机。为了证实这个猜测,做了两件事:

  1. 在佳能 APP 中手动添加打印机。用 IP 地址作为访问方式,添加 192.168.100.16 作为访问地址。后续打印和访问没有问题。
  2. 在计算机上反向解析 IP 地址。运行 nslookup 192.168.100.16 显示结果为 localhost。这就说明为什么自动搜索的时候会把打印机的地址显示成 localhost,因为都是依据反向解析结果来的。在路由器上把主机名称加上,再次使用自动搜索,没有问题。