当前位置:  开发笔记 > 后端 > 正文

如何从命令行列出已安装的MSI?

如何解决《如何从命令行列出已安装的MSI?》经验,为你挑选了3个好方法。

我们最近将Windows软件包从RPM(cygwin)切换到了MSI(wix).拥有原生包装是一个非常受欢迎的变化,我们打算坚持下去.但是,MSI对它的功能感到过于复杂,似乎并没有提供一些基本的能力.但我可能错了.

有没有办法从命令行列出所有已安装的MSI?



1> Node..:

Mabybe 这是来自MSDN的示例VB脚本的一个很好的起点:

strComputer = "."

Set objWMIService = GetObject("winmgmts:" & _
    "{impersonationLevel=impersonate}!\\" & _
    strComputer & _
    "\root\cimv2")

Set colSoftware = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_Product")   

If colSoftware.Count > 0 Then

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile( _
        "c:\SoftwareList.txt", True)

    For Each objSoftware in colSoftware
        objTextFile.WriteLine objSoftware.Caption & vbtab & _
        objSoftware.Version
    Next

    objTextFile.Close

Else
    WScript.Echo "Cannot retrieve software from this computer."

End If



2> knut..:

您可以使用PowerShell和Windows Management Instrumentation(WMI).这是一个班轮:

Get-WmiObject -Class win32_product

以下是Get-WmiObject cmdlet的帮助:

http://technet.microsoft.com/en-us/library/dd315295.aspx

下面是一个示例,我们选择第一个安装的程序并将其格式化为表格:

PS C:\Users\knut> Get-WmiObject -Class win32_product |
>> select -First 1 | ft Name, Version, Vendor -AutoSize
>>

Name             Version  Vendor
----             -------  ------
AWS SDK for .NET 1.2.0200 Amazon Web Services Developer Relations



3> Ferruccio..:

我不确定这是否是您需要的,但您可以从命令行查询卸载列表:

REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有