windows MSI文件在安装后复制到哪里?

hgb9j2n6  于 2023-01-21  发布在  Windows
关注(0)|答案(7)|浏览(416)

我必须更换它,因为一个错误,阻止软件卸载,但Windows找不到MSI文件,如果我使用文件搜索实用程序,但我认为MSI是存储在某个地方的Add or Remove Programs实用程序可以使用它。

v6ylcynt

v6ylcynt1#

它不进入%windir%\installer\吗?
虽然我认为文件可能会被重命名。不知道你从哪里得到的名称Map...
这个目录变得非常大,所以我把它移到了一个外部驱动器上。这有时会导致卸载或更新失败,出现丢失msi错误,但这可以通过放回目录来修复。

hlswsv35

hlswsv352#

InstallShield在**%windir%\installer*路径下创建所有Microsoft Installer(MSI)文件的副本。此处*%windir%是指向Windows安装目录位置的环境变量。通常为C:\Windows**。在创建任何MSI文件的副本之前,它会使用一些随机命名法对其进行重命名,例如,我可以在计算机上的C:\Windows\Installer目录中看到名为65ec5c99.msi的文件。
现在有两种方法可以确定重命名MSI文件的实际产品名称:
1.检查注册表中以下路径的LocalPackage属性:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio‌​n\Installer\UserData‌​\<InternalUserId>\Pr‌​oducts\<ProductGUID>‌​\InstallProperties

上述注册表路径中的InternalUserId是类似S-1-5-18的字符串。同样,ProductGUID是类似00058CD18F0BF523DA1072073D56715D的GUID字符串。此GUID作为公共属性嵌入MSI文件本身。您可以使用任何实用程序或类似Orca的工具打开MSI文件,以获取此公共属性的值
1.在资源管理器中打开C:\Windows\Installer文件夹。将目录视图更改为详细信息视图(参见屏幕截图):

主题列添加到视图中。现在,该文件夹中每个MSI的产品名称都将显示在主题列下(参考屏幕截图):

注意:上面第2点中提到的C:\Windows\installer路径是隐藏目录。因此默认情况下在资源管理器中不可见。要使其可见,请转到资源管理器中的查看选项卡**〉单击选项下拉按钮单击更改文件夹和搜索选项**(参考屏幕截图):

这将打开文件夹选项对话框(参见屏幕截图)〉单击查看选项卡**〉**现在进行以下更改:

  • 选中显示隐藏文件、文件夹和驱动器选项按钮
  • 取消选中**隐藏受保护的操作系统文件(推荐)**复选框

eqoofvh9

eqoofvh93#

您可以使用MSIEXEC强制重新缓存/重新安装,更新无法以其他方式删除的有错误的安装包的建议方法是使用修复的包重新缓存,然后像往常一样卸载。

MSIEXEC /fv setup.msi
abithluo

abithluo4#

要查看C:\Windows\Installer中的msi文件的有用名称,请右键单击资源管理器顶部,并添加字段以查看主题(可能需要选择更多,因为它不是默认值,如名称、修改日期等)从这里您可以找到msi并使用它来卸载程序。

cu6pst1q

cu6pst1q5#

当你使用Windows Installer服务安装一个软件包时,msi文件确实缓存在隐藏文件夹“%windir%\installer”中。它确实被重命名,新名称是一个十六进制字符串,与原始名称没有明显的相关性。类似于“123ab4.msi”。
要找出哪个是应用的缓存副本并不难。最快的方法是查找大小相同的缓存文件。当你认为找到了缓存文件时,将鼠标指针悬停在Windows资源管理器中的文件名上。工具提示将出现,并向你显示来自软件包摘要信息流的数据。产品名、作者名、一旦你找到了合适的文件,你可以直接用Orca这样的工具编辑它。
如果您只是尝试修复自己计算机上的问题,那么直接编辑缓存数据库可能是一个不错的选择。但是,Microsoft确实提供了一种内置的方法来处理此类问题。您可以创建一个修补程序(MSP文件),它包含原始MSI文件和更新的MSI文件之间的差异。然后,该补丁可以分发给已经使用原始安装安装了您的应用的任何其他人,这样就很容易使用了。
MSDN在此处讨论修补程序创建-http://msdn.microsoft.com/en-us/library/aa368060%28VS.85%29.aspx
删除隐藏文件夹通常不是一个好主意,因为这会破坏安装程序服务的一些核心功能,包括修补、检测和修复,以及通过迁移(而不是卸载和重新安装)进行升级的能力。

lyfkaqu1

lyfkaqu16#

MSI文件确实被重命名了。它们在%windir%\installer中找到。我知道已经回答了这个问题,但我想包括一个脚本来帮助找到它们的应用程序名称。
下面是一个pwsh脚本,用于将重命名的MSI解析为应用程序显示名称。

$loc = Get-ChildItem -Recurse HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
$loc | ForEach-Object { Get-ItemProperty $_.PsPath } | Where LocalPackage -ne $null |  Sort DisplayName | Select DisplayName,LocalPackage
kuuvgm7e

kuuvgm7e7#

也许msi只是被删除了。您可以删除安装文件夹并运行msi清理工具,然后重新安装程序。

相关问题