C:\ProgramData
has には、標準ユーザーがそこに書き込めないようにするセキュリティ設定があります。これは新しいものではなくWindows 8
、Windows 7
同じであり、上の同等のフォルダーVista
もこの方法で保護されています。おそらく、Windows 7
UAC の環境が無効になっていないか、標準ユーザーへの書き込みアクセスを確保C:\ProgramData
または許可している可能性があります。C:\ProgramData\MyProgramName
UACについて何かしなければならないこと
Microsoft がUACを導入したとき、少なくともしばらくの間、古いアプリケーションが動作し続ける方法が必要でした。彼らが思いついたのは、「ファイルとレジストリの仮想化」でした。これは、(現在は)禁止されているシステム フォルダーまたはレジストリ エントリにアクセスしようとするレガシー アプリケーションが、それらのリソースのユーザー固有の「仮想化」コピーにリダイレクトされるというものです。UACに関するウィキペディアの記事として。
簡単に言うと、ProgramData にはユーザー固有ではないアプリケーション データが含まれています。このデータは、コンピューター上のすべてのユーザーが利用できます。
このフォルダを使用するには、いくつかの方法があります。一部のアプリケーションは、インストーラー プロセスが管理者特権で実行されている間、インストール中にのみ書き込みます。次に、標準ユーザーとして実行されるアプリケーション自体は、読み取りはできますが、書き込みを試みることはありません。
もう 1 つの方法は、インストーラーが C:\ProgramData のサブ フォルダーを作成して、標準ユーザー、または開発者が適切と判断したユーザー/グループに書き込みアクセスを許可することです。
プログラムが「管理者として実行」権限を持っている場合、この問題を回避できるはずです。