Windows 中如何编写 PowerShell脚本 批量收集多台终端的软件安装列表

舞夢輝影

舞夢輝影

2026-07-31

854人浏览

原创

需启用psremoting并用get-itemproperty读取双注册表路径,通过invoke-command批量拉取各终端uninstall项,过滤kb/update条目后导出csv。

在 windows 环境中,用 powershell 批量获取多台终端的已安装软件列表,核心是结合 get-wmiobject 或更现代的 get-ciminstance(推荐),配合远程执行机制(如 winrm 或 psremoting),并统一收集、导出结果。

确认目标机器已启用 PowerShell 远程(PSRemoting)

这是批量执行的前提。若未启用,Invoke-Command 将无法连接:

  • 在每台目标电脑上以管理员身份运行:Enable-PSRemoting -Force
  • 确保防火墙允许 WinRM 流量(默认 TCP 5985);域环境下通常已配置,工作组需额外设置信任主机或证书
  • 验证连通性:在控制机运行 Test-WsMan -ComputerName PC01Enter-PSSession -ComputerName PC01

使用 Get-CimInstance 获取准确、兼容性强的软件列表

Win32_Product 类虽直观,但调用会触发 MSI 自检,慢且可能引发副作用;推荐改用 Win32_InstalledWin32Program(Windows 10/11 1809+)或注册表方式。更稳妥通用的做法是读取「Uninstall」注册表项:

Shell脚本编写基础 中文WORD版
Shell脚本编写基础 中文WORD版

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统

下载
  • 64位系统需同时查两个路径:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstallHKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstall
  • 脚本中可用 Get-ItemProperty 配合 Get-ChildItem 递归读取,过滤掉 DisplayName 为空或含“Update”、“KB”等非用户软件条目
  • 示例关键片段:
      Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" -ErrorAction SilentlyContinue |
      Get-ItemProperty -ErrorAction SilentlyContinue |
      Where-Object { $_.DisplayName -and $_.DisplayName -notmatch '^(KB|Update|Hotfix)' } |
      Select-Object @{n='Computer';e={$env:COMPUTERNAME}}, DisplayName, DisplayVersion, Publisher, InstallDate

批量执行并汇总到本地 CSV 文件

Invoke-Command 并行拉取各终端数据,再合并导出:

  • 准备目标主机列表(如 $Computers = 'PC01','PC02','SRV01' 或从文本文件读取:Get-Content .computers.txt
  • 执行命令时加 -AsJob 可提升效率(尤其机器较多时),之后用 Receive-Job 收集结果
  • 完整脚本结构示意:
    $Results = Invoke-Command -ComputerName $Computers -ScriptBlock {
      # 上面注册表查询代码(注意:$env:COMPUTERNAME 在远程会自动为对应主机名)
    } -ErrorAction SilentlyContinue
    $Results | Export-Csv .SoftwareInventory.csv -NoTypeInformation -Encoding UTF8

注意事项与简化替代方案

若部分终端无法启用 PSRemoting(如受限环境),可改用“推送脚本+回传”模式:

  • 将采集脚本保存为 Get-InstalledSoftware.ps1,用 Copy-Item 推送到目标机的临时目录
  • 通过 Invoke-WmiMethod 或计划任务触发执行,并输出到共享文件夹或本地日志,再集中读取
  • 对于仅需基础信息的场景,也可直接用 wmic /node:@list.txt product get name,version,vendor /format:csv > out.csv(但 wmic 已弃用,不推荐新项目)

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

shell脚本

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

355

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

617

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1216

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

428

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1031

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

1847

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

322

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观shell视频教程
尚观shell视频教程

共8课时 | 1.8万人学习

Linux开发视频教程
Linux开发视频教程

共18课时 | 4.5万人学习

Perl 入门教程
Perl 入门教程

共29课时 | 30.3万人学习