権限に関係なくProgram Filesのファイルのアクセスができるようにするためには(VirtualStoreの問題を解決するには)
Program Filesのファイルは、2000/XPでも管理者権限を持たないアカウントでは、ファイルの書き込みや作成を行うことができません。
Vistaでは、Administratorsグループに所属していても、管理者権限へ権限上昇しなければProgram Filesへのファイルの書き込みや作成をすることができません。
現在のユーザーのVirtualStoreフォルダにエミュレートされて保存されてしまいます。
あまり綺麗な方法とはいいづらいのですが、インストールしたパス以下すべてにEveryone権限を付加すれば、どのユーザーでもファイルの書き込みや作成を行うことができるようになります。これは以外に簡単に行うことができます。
コマンドラインで以下のように記載しますと、C:\Program Files\Sampleフォルダ以下にEveryone権限が付与されます。
■ C:\Program Files\Sampleフォルダ以下をEveryone権限にする
C:\> cmd.exe /c cacls "C:\Program Files\Sample" /T /E /G Everyone:F
|
これで、どんな権限のユーザーでもファイルを操作できるようになり、VirtualStoreに保存されるのを避けることができます。
サンプルは省略しますが、C++で非表示にて上記プロセスを呼び出しても問題ありません。C++であればACLを直接操作した方が正しい方法かもしれませんが。 |