
内网运维里,终端软件资产盘点一直是一件重复又耗人力的工作。依靠员工自主上报、线下填表,数据滞后、错漏多,很难持续掌握全网终端软件安装情况。 很多团队想做规范化管理,但不想直接上重型平台,希望用脚本 + 流程的轻量化方案先行落地。下面从技术采集实现到运维闭环流程完整分享。
Windows 终端可以通过 WMI/CIM 接口读取注册表中卸载项,获取软件名称、版本、厂商、安装时间。
说明:脚本支持批量单机采集,也可以配合域策略、PDQ、Ansible 在内网批量下发执行,输出 CSV 资产文件,方便后续台账比对。
# 获取本机已安装软件资产,导出csv
Get-CimInstance -ClassName Win32_Product | Select-Object Name,Vendor,Version,InstallDate | `
Export-Csv -Path "C:\asset\software_list.csv" -Encoding UTF8 -NoTypeInformation补充说明: Win32_Product 会触发 MSI 包校验,大环境批量跑有性能开销;如果追求更快采集,推荐读取卸载注册表分支,脚本如下:
$regPath = @("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*")
Get-ItemProperty -Path $regPath -ErrorAction SilentlyContinue | Where-Object {$_.DisplayName} | `
Select-Object DisplayName,DisplayVersion,Publisher,InstallDate | `
Export-Csv -Path "C:\asset\software_fast.csv" -Encoding UTF8 -NoTypeInformation脚本执行后,得到结构化 CSV 资产表,字段包含软件名称、版本、发布厂商、安装日期,是后续所有核对工作的原始数据源。
拿到批量导出的 CSV 之后,我们可以在 Excel / Power Query 或者简单 Python 脚本做差异比对,核心比对逻辑:
这里重点:采集脚本只负责客观采集,初期不做拦截,先完成现状测绘,避免业务抵触。
简易比对示例(Python 伪逻辑,用来做批量报表)
import pandas as pd
asset_df = pd.read_csv("software_fast.csv")
baseline_df = pd.read_csv("baseline_soft.csv")
diff = asset_df[~asset_df['DisplayName'].isin(baseline_df['DisplayName'])]
diff.to_csv("diff_report.csv",encoding="utf-8-sig")脚本只是数据获取手段,想要长期管理,需要把采集能力嵌入运维流程,5 个环节:
这套方案的核心思路:用轻量化脚本解决资产采集这个技术难点,再叠加运维流程形成闭环。 不需要引入复杂平台,运维团队可以先用脚本把资产数据跑起来,摸清内网真实软件环境。当资产数据稳定之后,再根据企业规模,决定是否升级更完善的管控方案。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。