RegistrySearch を使用して共通ドキュメント フォルダ (たとえば、'C:\Users\Public\Documents\') へのパスを検索すると、ほとんどのコンピュータで機能しますが、一部のコンピュータでは機能しません。なぜ失敗するのか、どのようなセキュリティ設定が設定されているのかわかりません。
レジストリ検索のコードは次のとおりです。
<Property Id="COMMONDOCUMENTSPATH">
<RegistrySearch Id="RegSearchCommonDoc" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" Name="Common Documents" Type="directory" />
</Property>
私の開発用 PC では、レジストリ ルックアップの内容を取得しています。msi ログ ファイルには次の行が含まれています。
Action start 14:17:04: AppSearch.
AppSearch: Property: COMMONDOCUMENTSPATH, Signature: RegSearchCommonDoc
MSI (c) (E8:70) [14:17:04:157]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (c) (E8:70) [14:17:04:157]: PROPERTY CHANGE: Adding COMMONDOCUMENTSPATH property. Its value is 'C:\Users\Public\Documents\'.
Action ended 14:17:04: AppSearch. Return value 1.
顧客の PC でレジストリ ルックアップが失敗し、msi ログ ファイルは次のようになります。
Action start 12:45:49: AppSearch.
AppSearch: Property: COMMONDOCUMENTSPATH, Signature: RegSearchCommonDoc
MSI (c) (8C:80) [12:45:49:120]: Note: 1: 2262 2: Signature 3: -2147287038
Action ended 12:45:49: AppSearch. Return value 1.
お客様の PC は Windows 7 Enterprise (x64) システムです。私のシステムは Windows 7 Pro (x64) です。MSI パッケージは Intel (x86) です。
顧客のユーザーは、自分のマシンの管理者権限を持っています。以下は msi ログからの抜粋です。
MSI (c) (8C:80) [12:45:49:020]: Product installation will be elevated because user is admin and product is being installed per-machine.
MSI (c) (8C:80) [12:45:49:020]: Running product '{D7C625A6-20E0-48EF-A372-19569FF9BFBF}' with elevated privileges: Product is assigned.
この問題を解決するためのアイデアや提案はありますか? または、Common Documents フォルダーを特定する別の方法はありますか?
事前にご協力いただきありがとうございます。