読み取り専用のNFS共有を構成したLinuxサーバーがあります。私が現在取り組んでいるクライアントは、NFS機能がインストールされているWindows Server 2008R2マシンです。 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 ===
Windows loves「作業ディレクトリ」に一時ファイルを書き込む。
スクリプトがそのNFSディレクトリに「cd」を実行していて、その場所に一時ファイルを書き込めず、山積みになっている、またはユーザーがそのNFSボリューム内のアイコンを「クリック」して、何らかの方法で失敗していると思われます。
スクリプトを修正してr/wの場所から開始し、実行しようとするときにそのNFSボリュームとファイルへの明示的なパスを呼び出します。
ユーザーがインストールする「アイコンをクリック」している場合は、インストールを実行するための「ショートカット」アイコンのセットを作成し、各ショートカットに「作業ディレクトリ」を割り当てます。これでほとんどの問題が解決するはずです。