UAC対策の罠の罠

以前UAC対策の罠で紹介した方法に重大な欠陥があった。

Microsoftアカウントが関連付けられている場合の「username_000」なる名前に対する対策で、Application DataフォルダのパスにInstallShieldの[LocalAppDataFolder]を設定するよう説明したが、これだとシングルユーザーの利用に限定されてしまう。

例えば「管理ユーザーがインストールして標準ユーザーが使う」ケースは多いと思うが、[LocalAppDataFolder]にApplication Dataを保存するということは、Application Dataのアクセス権はインストールを行う管理ユーザーにしか与えられず、標準ユーザーからはアクセス出来なくなってしまう。

インストール後にアクセスするApplication Dataならば[LocalAppDataFolder]で良いのだが、このケースでは機能しない。

想定するApplication Dataは「All Users」のものでなければならない。
おそらく以下が正解だろう。

[path]
datafolder=c:ProgramData

InstallShieldの定義済フォルダーでは[CommonAppDataFolder]となる。
インストール先コンピュータではデフォルトで非表示になっているので「定義済フォルダーを表示」でチェックONにしておこう。

ProgramData配下に配備するApplication Dataのアクセス権はUsers等に適宜設定(フルコントロールとか…)しておきましょう。

InstallShield[アクセス許可]
ドメイン:%USERDOMAIN
ユーザー:ユーザー
※カレントコンピュータもしくはドメインのUsersグループにアクセス権を与える指定
(非常に分り難い)

これを怠るとVirtualStoreに飛ばされます。
(知らずに少々嵌りました…。)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です