2012-10-18 66 views
0

我想利用以下PowerShell的COM對象的Windows Installer

$無線=新對象-com WindowsInstaller.Installer

,如果我做了$無線|克我沒有看到我想要的方法「產品」 我想迭代產品並顯示系統上安裝的所有項目的列表。

所以我想......讓我做了$ wi.gettype()。invokemember

不是真的知道該怎麼辦$ wi.gettype()。invokemember( 「產品」, 「的InvokeMethod」) 或某種產量無法找到過載...

但現在我迷路了。我看過別處,但我不想創建一個完整的XML文件。我應該可以訪問com對象方法。

回答

1
  1. 如果你正試圖獲得在Windows安裝程序的列表,有一個天然的Powershell的方式,這是實際使用WMI幕後:

    Get-WmiObject Win32_Product 
    

    下面是Microsoft Scripting Guys一篇相關文章。

    看來這種方法has some issues,所以最好避免。

    當查詢這個類,供應商的工作方式是,它實際上 在系統上執行每個MSI 包Windows安裝程序「重新配置」爲執行查詢!

  2. 我盡力找到涉及WindowsInstaller com對象的解決方案,但都指向an article that no longer exists。這裏是one on stackoverflow

  3. 另一種解決方法是嘗試psmsi on CodePlex

+2

win32_product被困擾的問題,如查詢強制包的協調。 – rismoney

+0

@rismoney:你是對的,我做了一個研究,並用另一個選項更新了答案。請檢查一下。 – Neolisk