我有一台 Linux 服务器,我已在其中配置了只读 NFS 共享。我目前正在使用的客户端是安装了 NFS 功能的 Windows Server 2008 R2 计算机。我可以打开并执行除 MSI 文件之外的所有文件。出于某种原因,除非我将驱动器映射到驱动器号,否则我无法通过此共享执行 MSI 安装程序(安装程序在本地复制时可以运行,但我尽可能避免这种情况)。当我尝试直接从 UNC 路径执行它时,出现以下错误:
这可能是什么原因造成的?映射共享如何使其工作?
编辑-这是使用带有详细日志记录的 msiexec 调用 MSI 时的结果:
=== Verbose logging started: 1/30/2014 10:12:29 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\Windows\system32\msiexec.exe ===
MSI (c) (80:F0) [10:12:29:228]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
MSI (c) (80:F0) [10:12:29:228]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
MSI (c) (80:34) [10:12:29:237]: Resetting cached policy values
MSI (c) (80:34) [10:12:29:237]: Machine policy value 'Debug' is 0
MSI (c) (80:34) [10:12:29:237]: ******* RunEngine:
******* Product: \\d-devfs02.domain.com\software\Nunit\NUnit-2.6.2.msi
******* Action:
******* CommandLine: **********
MSI (c) (80:34) [10:12:29:246]: Note: 1: 2203 2: \\d-devfs02.domain.com\software\Nunit\NUnit-2.6.2.msi 3: -2147024846
MSI (c) (80:34) [10:12:29:247]: MainEngineThread is returning 1620
=== Verbose logging stopped: 1/30/2014 10:12:29 ===
答案1
视窗爱在“工作目录”中写入临时文件。
我怀疑您的脚本正在执行“cd”进入该 NFS 目录但无法在该位置写入任何临时文件,并且死机,或者用户“单击”该 NFS 卷内的图标,并且它以某种方式失败。
修改您的脚本以从某个 r/w 位置启动,然后在尝试执行时调用该 NFS 卷和文件的明确路径。
如果用户通过“单击图标”进行安装,则创建一组“快捷方式”图标供人们运行安装,并在每个快捷方式中分配一个“工作目录”。这应该可以解决大多数问题。