RevokeChinaCerts收集了国内大多数热门软件的数字证书,并且能够将证书设为系统不受信,阻止相关厂商软件的安装。几年前用的时候,发现RevokeChinaCerts自带的添加工具有时会出现添加不上的问题,看了一下发现PowerShell的实现更为方便和稳定,于是写了个PsRevokeCerts。
原理
PowerShell的实现相对简单,在管理员模式下,将证书文件添加到Cert:\LocalMachine\Disallowed即可,代码如下:
Import-Certificate -FilePath $certFilePath -CertStoreLocation Cert:\LocalMachine\Disallowed
用法
克隆工程,并初始化RevokeChinaCerts子模块:
git clone https://github.com/TheCjw/PsRevokeCerts cd PsRevokeCerts git submodule update --init
然后运行脚本,选择添加全部或者移除全部:
powershell -ExecutionPolicy Bypass .\PsRevokeCerts.ps1
如果需要使用一些软件,如QQ、钉钉等,运行certmgr.msc,删除相关厂商的证书即可。也可以通过PowerShell批量删除:
Get-ChildItem Cert:\LocalMachine\Disallowed | Where-Object { $_.SubjectName.Name.toLower().Contains("tencent") } | Select-Object { Remove-Item (Join-Path Cert:\LocalMachine\Disallowed $_.Thumbprint) }