Nous avons récemment changé nos progiciels Windows de RPM (cygwin) à MSI (wix). Avoir un emballage natif est un changement bienvenu et nous avons l'intention de s'en tenir à cela. Cependant, MSI se sent trop compliqué pour ce qu'il fait et ne semble pas fournir certaines capacités de base. Mais je me trompe probablement. Y at-il un moyen de lister tous les MSI installés à partir de la ligne de commande? Comment puis-je lister MSI installé à partir de la ligne de commande?
Répondre
Mabybe this est un bon point de départ pour vous par exemple VB Script de MSDN:
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
Je ne sais pas si c'est ce dont vous avez besoin, mais vous pouvez interroger la liste de désinstallation de la ligne de commande avec :
REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
Excellent: Cependant, il y a une petite faute de frappe. Il devrait lire: 'HKLM' pas 'HLKM' (HKEY_LOCAL_MACHINE). – Martin
Vous pouvez utiliser PowerShell et Windows Management Instrumentation (WMI). Voici une seule ligne:
Get-WmiObject -Class win32_product
Voici une aide pour le Get-WmiObject
cmdlet:
http://technet.microsoft.com/en-us/library/dd315295.aspx
Voici un échantillon où l'on sélectionne le premier programme installé et le format comme une table:
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
Voir la réponse similaire ici: http://stackoverflow.com/questions/29937568/how-can-i-find-the-product-guid-of-an-installed-msi-setup/29937569 –
J'aurais préféré quelque chose à utiliser depuis la ligne de commande, mais cela fera l'affaire. Merci. – bltxd
Allez-y et utilisez le script depuis la ligne de commande, puis. Utilisez cscript.exe pour l'exécuter, et ne le publiez pas dans un fichier mais dans stdout (comme ceci: WScript.Echo objSoftware.Caption & vbtab & objSoftware.Version). Tous les trucs FSO ne sont plus nécessaires. – Tomalak