Is there way to detect install location without uninstall registry nor C:\Windows\Installer?

徘徊边缘 提交于 2020-08-20 06:13:54

问题


Some of the executable that I need to detect is installed properly, but has not written InstallLocation in the usual Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

I also checked C:\Windows\Installer but the GUID was not found with msi file.

Is there any way to know where the files were installed?


回答1:


MSI API: Here is a sample using VBScript to get the installation path for Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.50727 - update GUIDs for your purpose (obviously):

Set i = CreateObject("WindowsInstaller.Installer")

' Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.50727
MsgBox i.ComponentPath("{2F73A7B2-E50E-39A6-9ABC-EF89E4C62E36}","{F5CBD6DC-5C9C-430E-83A7-179BA49988CD}")

Installer.ComponentPath method:

  • The first parameter is the product code.
  • The second parameter is the component code.

GUIDs: Open the MSI in question with Orca (or equivalent, see link) to find the Product code in the "Property Table" and the Component code in the "Component Table".


For installed packages you can do as follows:

  • ProductCode: How can I find the product GUID of an installed MSI setup?
  • Open Cached MSI: You can find the cached MSI and do a File => Open in Orca to retrieve the information you need. You can find the cached path using the script below.

Find Cached MSI: The below PowerShell script is from here. It will allow you to find the local cache path for the installed MSI.

gwmi -Query "SELECT Name,LocalPackage FROM Win32_Product WHERE IdentifyingNumber='{2F73A7B2-E50E-39A6-9ABC-EF89E4C62E36}'" | Format-Table Name,LocalPackage

Links:

  • Show resolved installation directories for MSI


来源:https://stackoverflow.com/questions/63078090/is-there-way-to-detect-install-location-without-uninstall-registry-nor-c-window

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!