Vistaの管理者権限について – プログラミング – Home

Vistaの管理者権限について
 
通知
すべてクリア

[解決済] Vistaの管理者権限について


COF
 COF
(@COF)
ゲスト
結合: 15年前
投稿: 53
Topic starter  

お願いします。

MFCアプリとwixでインストールパッケージを作成しました。
実際にインストールしてMFCアプリを動かしてみて発覚したのですが、
ProgramFolder下にインストールすると、アプリの設定を書き出すiniファイルへのアクセスに失敗します。
原因はVistaのUACだということが分かりました。
そこで、マニフェストファイルを以下をようにすることで対応がとれたのですが
これではアプリを起動するたびにUAC 昇格確認ダイアログが表示されてしまいます。
管理者権限を昇格しつつ、UAC 昇格確認ダイアログが表示されない方法はあるのでしょうか?

<requestedExecutionLevel
level=highestAvailable
uiAccess=false/>

VC++は2003.netです。
よろしくお願いします。


引用未解決
トピックタグ
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

というよりもiniファイルの置き場所を正規の場所にするのが
解決方法としては正しいと思います。
要は、そのユーザーのアクセス件がある場所に置くと言う話ですね。
こう言った情報の置き場所に使えるパスの取得はできると思います。

権限を昇格するのは苦肉の策であって本来の解決方法ではないと思います。
苦肉の策だからダイアログが出ても仕方がないのではないでしょうか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>管理者権限を昇格しつつ、UAC 昇格確認ダイアログが表示されない方法はあるのでしょ
うか?
ないと思う。UACを無効にするぐらい。

インストーラで
iniファイルのみのACLを変更してインストールできるようにしてみてはどうでしょうか?

もっとも、ProgramFolder配下に設定ファイルを置くべきではないですけど。


返信引用
COF
 COF
(@COF)
ゲスト
結合: 15年前
投稿: 53
Topic starter  

さっそくありがとうございます。

>要は、そのユーザーのアクセス件がある場所に置くと言う話ですね。
そのように対応することにします。
Application Data下で問題ないでしょうか?


返信引用
ZCH
 ZCH
(@ZCH)
ゲスト
結合: 16年前
投稿: 25
 

> Application Data下で問題ないでしょうか?

何を心配しているのかがわかりません。

インストーラで実行されるであろうユーザのAppData配下を
どうにかしたいのか、実行ファイルの実行権限を変えて、
AppDataを固定したいのか。など。


返信引用
COF
 COF
(@COF)
ゲスト
結合: 15年前
投稿: 53
Topic starter  

>というよりもiniファイルの置き場所を正規の場所にするのが
>解決方法としては正しいと思います。
「正規の場所」というのが分からないで、iniファイルの置き場所は
AppDataの下で良いのか?
という質問です。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

いいと思います。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

ユーザごとに設定を変えるのであれば、%APPDATA%(CSIDL_APPDATA) で良いと思います。
全てのユーザで共通の設定をしたいのであれば、%PROGRAMDATA%(CSIDL_COMMON_APPDATA)
に格納するようにプログラムを変えてさらにインストーラでACLを変えるようにします。

(参考)
なぜ %PROGRAMFILES% に書き込んではいけないか?
http://blogs.wankuma.com/tyappi/archive/2007/07/12/84794.aspx
Windows アプリケーションの設定ファイル (ini ファイルや config ファイル) 格納場所
について
http://seclan.dll.jp/cciniloc.htm

[MSDN]CSIDL
http://msdn.microsoft.com/ja-jp/library/bb762494%28en-us,VS.85%29.aspx


返信引用
COF
 COF
(@COF)
ゲスト
結合: 15年前
投稿: 53
Topic starter  

aetosさん, Blueさん、アドバイス助かります。
AppData下にiniファイルを置くことで解決しました。
UAC考慮について学ぶ良い機会でした。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました