为什么 Windows 安装程序在共享驱动器内安装文件时会检查共享驱动器的卷信息?

为什么 Windows 安装程序在共享驱动器内安装文件时会检查共享驱动器的卷信息?

我遇到了一个问题,我的一个用户在安装 Windows Installer 文件时遇到了问题。该文件位于用户无权完全访问的共享驱动器上,但用户可以访问该文件本身。当用户尝试运行安装程序时,我们会在日志文件中看到以下问题:

MSI (s) (F4:14) [12:28:41:425]: Note: 1: 2303 2: 5 3: \\share\base\  
MSI (s) (F4:14) [12:28:41:425]: Note: 1: 2303 2: 5 3: \\share\base\  
MSI (s) (F4:14) [12:28:41:425]: Unable to create a temp copy of patch '\\share\base\installers\version\patches\patch.msp'. 
This update package could not be opened. Verify that the update package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer update package.  
C:\Windows\Installer\44987c.msi  
MSI (s) (F4:14) [12:28:41:425]: Note: 1: 1708 

第一行似乎对应于错误 2303,即“获取卷信息时出错”。根据 MSDN 文档(http://msdn.microsoft.com/en-us/library/aa372835(v=vs.85).aspx)。将其与 Proc Mon 日志进行匹配可得出,模拟我的用户的 Windows Installer 服务被拒绝对 \\share\base 目录进行读取属性访问。我相信修复此问题只需向用户提供读取属性权限即可。

但是,我的问题是为什么 Windows Installer 需要访问该目录才能执行安装?我可以想象 Windows Installer 可能会获取有关本地驱动器或 Windows 驱动器的卷信息,但我不明白为什么它会尝试获取有关共享驱动器的根目录的额外信息。似乎用户不需要额外的读取属性权限才能安装 Windows Installer。

谢谢你的帮助,
杰克

相关内容