13

最近、WindowsソフトウェアパッケージをRPM(cygwin)からMSI(wix)に切り替えました。ネイティブパッケージを使用することは非常に歓迎すべき変更であり、私たちはそれに固執するつもりです。ただし、MSIは、その機能が非常に複雑であり、いくつかの基本的な機能を提供していないようです。しかし、私はおそらく間違っています。

コマンドラインからインストールされているすべてのMSIを一覧表示する方法はありますか?

4

3 に答える 3

13

おそらく、これは 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
于 2008-10-13T16:11:13.543 に答える
11

PowerShellWindows Management Instrumentation (WMI)を使用できます。ここにワンライナーがあります:

Get-WmiObject -Class win32_product

Get-WmiObject コマンドレットのヘルプは次のとおりです。

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
于 2012-11-21T17:01:28.277 に答える
5

これが必要かどうかはわかりませんが、コマンド ラインから次のコマンドを使用してアンインストール リストを照会できます。

REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
于 2008-10-13T16:29:36.067 に答える