全部文章
技术笔记、教程与思考。
正在加载文章列表
筛选
分类
标签
技术笔记、教程与思考。
正在加载文章列表
分类
标签
正在加载文章内容
现在因为一些特殊用途,还需要用到旧版本的 Windows 系统,像是 Windows 10 早期版本、Windows Server 2016/2019 这些系统。
由于微软已经停止对 IE 的维护,这些系统自带的 IE 浏览器在访问现代网站时经常会遇到问题,甚至无法正常显示网页。
因此安装一个 Chrome 浏览器是非常必要的,但在这些系统上内置的旧版本 IE 浏览器无法直接访问 Chrome 官网下载最新版本的 Chrome 浏览器安装包。
因此需要用一些特殊方法在只有 IE 的系统上安装 Chrome 浏览器。

在开始菜单里搜 PowerShell,右键选择"以管理员身份运行",然后把下面这一整行粘贴进去回车:
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-WebRequest "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi" -OutFile "$env:TEMP\chrome.msi"; Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\chrome.msi`" /qn" -Wait
跑完之后 Chrome 就静默装好了,不需要点任何下一步,桌面上直接出现图标。这里用的其实是 Google 官方的企业版离线安装包,比那种只有几十 KB 的在线安装器靠谱很多,很适合这种网络环境比较麻烦的机器。

具体看一下这条 PowerShell 命令到底在做什么:先切下载用的协议,再下载安装包,最后使用 Windows 自带的 MSI 安装器去装。顺手科普一下 PowerShell 的几个小点,懂的人可以跳过:
; 的作用是把好几条命令连成一行,从上到下依次执行。Invoke-WebRequest 是 PowerShell 内置的下载命令,-OutFile 参数用来指定保存到哪里。$env:TEMP 是系统的临时文件夹,$env: 后面跟名字就是读环境变量,相当于"告诉我临时目录在哪"。Start-Process 是启动程序的命令,后面那个 msiexec.exe 是 Windows 自带的 MSI 安装器,-ArgumentList 则是把参数原样传给这个程序。/i 表示安装,/qn 表示安静模式(不弹任何窗口),最后的 -Wait 是让 PowerShell 等它装完再继续。`" 这样)的组合,反引号 ` 在 PowerShell 里是转义符,这么写是为了在双引号里再嵌一对双引号。刚学的人看不懂很正常,记住别手贱删掉就行。第一句那个 [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12 值得单独说一下:老系统的 PowerShell 默认可能只支持比较旧的加密协议,不提前切到 TLS 1.2 的话,连下载这一步都过不去,很多人就是卡在这里报错的。
Server 2019 上比较常见的是 TLS 或 IE 引擎的问题,因为 Invoke-WebRequest 底层实际上调用的是 IE 的引擎,IE 都不行了,连带着它也抽风。这种情况可以试试系统自带的 curl.exe:
curl.exe -L "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi" -o C:\chrome.msi
msiexec /i C:\chrome.msi-L 是跟随跳转,有些下载地址会先重定向到别的链接,不跟就下不到;-o 是指定保存成什么文件。这里要特意写 curl.exe,因为 PowerShell 里直接打 curl 其实是 Invoke-WebRequest 的别名,写 curl 就又绕回 IE 引擎去了,等于白折腾一趟。
某些精简过的系统连 curl 都没带。没关系,Windows 自带的 certutil 也能干这个活,虽然是拿来管理证书的工具,但临时当下载器用也行:
certutil -urlcache -split -f "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi" C:\chrome.msi
msiexec /i C:\chrome.msi-urlcache 是证书工具里"从 URL 缓存拉文件"的功能,-split 会按块拆分下载顺便显示进度,-f 是强制重新下载(force),避免用到缓存里的旧数据。这个方法算有点歪门邪道,但好处是 certutil 在绝大多数 Windows 上都带着,救急够用。