トップ回答者
7でルートディレクトリに作成したファイルは特殊な属性を持つ?

質問
-
Win95時代からのアプリケーションをメンテナンスしています。
このアプリケーション、setup.exeでインストールするときにC:\(といいますか、システムドライブルート)に隠しファイルを作ります。この隠しファイルが、Win7ですとどのユーザーからも書き込みができないようになってしまいました(書き込むとき権限昇格が必要になりました)。
当初DACLの設定をすればいいのかと思ったのですが、DACLをどう設定してもアクセス拒否で書き込めないのが変わりません。ルート以外のディレクトリに移動しても同じです。
書き込みが可能な他のファイルと属性やDACLや所有者をまったく同じに揃えても変化なし。そこで、「システムルートにCreateFileしたファイルは、画面上で見えない属性が何か設定されて、書き込みに権限昇格を要するようになるようだ」と結論しました。
アプリケーションの方はファイルの作成先を変えて解決したのですが、上記の結論が正しいのかどうか根拠が見つかりません。ルートディレクトリに作成したファイルにつくような特殊な属性というのがあるのでしょうか? あるのなら画面上でそうやってそれを確認したり変更したりできるでしょうか?
回答
-
ファイルの整合性レベルは確認されましたか?ファイルを移動しても整合性レベルはそのままなのですよ。
確か整合性レベルは ACL よりも先にチェックされるはずです。
整合性レベルの確認の仕方はこちら。
アプリケーションの互換性 (前篇) | Tech Fielders コラム
http://www.microsoft.com/japan/powerpro/TF/column/tm_09_2.mspx- 回答としてマーク miuras_net 2011年11月21日 2:18
すべての返信
-
UAC の影響なんではないでしょうか。
Destination Folder Access Denied - Copying File to the root of C:\
http://social.technet.microsoft.com/Forums/en/w7itprosecurity/thread/ef5ca162-9d07-4f12-bfa8-fdc89a794206
ユーザー アカウント制御 (UAC: User Account Control) - Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd883236.aspx
ファイルの作成先を変更したのは賢明な対応だと思います。 -
ファイルの整合性レベルは確認されましたか?ファイルを移動しても整合性レベルはそのままなのですよ。
確か整合性レベルは ACL よりも先にチェックされるはずです。
整合性レベルの確認の仕方はこちら。
アプリケーションの互換性 (前篇) | Tech Fielders コラム
http://www.microsoft.com/japan/powerpro/TF/column/tm_09_2.mspx- 回答としてマーク miuras_net 2011年11月21日 2:18