用gcloud查Chrome版本踩的坑:30台收银机,3个没回来
上周三下午,客户那边打电话说店里三台收银机页面打不开,叫我过去看看。我寻思着先远程摸一下底,结果一查发现这批机器装的 Chrome 版本乱七八糟,有 108 的,有 114 的,还有一台是 120 的。总共 30 台,分布在四个门店,跑的是 Windows 10,每台都装了 Chrome,但自动更新被不同的人关过,版本就分叉了。
我先别急着挨个跑腿,用 gcloud 的 OS Config 先把版本摸一遍。环境是项目已经开了 OS Config API,机器上装了 OS Config agent,版本是 20240226 那一版。命令不长:
gcloud compute os-config inventories list \
--project=shop-chrome-01 \
--location=asia-east1-a \
--filter="osInfo.osShortName=WINDOWS" \
--format="table(name,osInfo.version,osInfo.longVersion)"
跑完回来 27 台,3 台没数据。那 3 台正好是版本最老的,108 和 109 各一台,还有一台是 114。
我跟你讲,OS Config agent 对旧版 Chrome 的识别是看注册表里的版本键,Chrome 大版本低于 110 的时候,有些机器上那个键的位置不一样,agent 抓不到就返回空。这不是 agent 坏了,是它压根读不到。我后来在机器上手动查:
(Get-ItemProperty 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome').Version
三台都读出来了,确实在。所以 inventory 里没数据不代表机器不在线,是 agent 的采集口径没覆盖到。这个坑我踩过一次,这次算有准备。
做法上我给客户定了个规矩:所有收银机的 Chrome 统一走企业版 MSI 包,关掉自动更新,版本锁在 120 这一支,用组策略推。为什么不用 Chrome 自己的自动更新?因为收银机跑的是老收银系统,Chrome 一升级到 121 之后有个打印接口的行为变了,小票打不出来。代价是每季度要手动推一次新版本,多花半小时,但比半夜被叫起来修打印机强。
哪里会失效:OS Config 这套东西只在机器装了 agent 且服务在跑的时候灵,机器休眠或者 agent 被安全软件拦了,inventory 就是空的。另外那 3 台老机器,我最后是让店员在 Chrome 地址栏敲 chrome://version 截图发我的,别笑,这个最稳。还有一点,--location 参数要跟实例所在的 zone 对上,写错了返回空列表,不报错,我头一回就栽在这。
你们那边收银机或者门店终端的 Chrome 版本是怎么统一管的?是走组策略还是干脆锁死不让更新?我这边四个门店已经三种管法了,想听听别人的。
0 条评论
还没有评论,写下第一条。