我想之前分享过如何使用WMI查询的方式获取安装的软件列表:
Get-WmiObject win32_product
小弟以前只知道WMI查询慢,很慢,从来没有体会过它会慢到让人抓狂,近乎崩溃。一个同事在他的机器上运行后,运行了两个小时,仍然没有结束,也没有一行结果返回。
这使我不得不投入到注册表的怀抱了。要扫描注册表,PowerShell表示没有任何压力。但是唯一需要我们小心的就是这里可能会有三个路径:
- ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall’
- ‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall’
- ‘HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall’
第一个表示的是机器级别的软件。
第二个表示仅限当前用户安装的软件(ClickOne程序默认可以从这个路径下查询)。
第三个和第一个类似,只是只可能出现在64位操作系统上。
具体的调用函数可以参考:
也可以直接在控制台调用:
Invoke-Expression (new-object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/mosserlee/PSTips/master/Functions/Get-InstalledSoftwares.ps1') Get-InstalledSoftwares
本文链接: https://www.pstips.net/get-installedsoftwares.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
你好,请问下,在powershell中如何获取软件的安装路径,我想获取到wireshark的安装路径,然后运行tshark进行自动抓包。