設定値等をレジストリに読み書きするソフトを作成しております。
このソフトをAdmin権限をもつユーザアカウントからインストールして、
実行した際は読み書きができるのですが、ゲストアカウントから起動したとき、
RegCreateKeyExで失敗してしまいます。
RegCreateKeyExの第6引数をKEY_ALL_ACCESSとした場合読み書きともに
できませんでした。
読み込みに関してはKEY_ALL_ACCESSをKEY_READとすることで可能になったのですが、
書き込みに関してはKEY_WRITEとしてみてもできませんでした。
FormatMessageでエラーコードをとってみるとアクセスが拒否されました
と出ます。
どうすればゲストアカウントからレジストリに書き込みできるのでしょうか?
よろしくお願いします。
WinXP pro
.NET2003 VC++
SDK
ゲストアカウントが書き込み権限を持っていないレジストリキーに対して
書き込みアクセスでオープンしようとすれば、当然エラーになるでしょう。
レジストリエディタでアクセス権を確認してみてください。
> どうすればゲストアカウントからレジストリに書き込みできるのでしょうか?
1. (インストール時などに)そのレジストリの書き込み権限を付加する。
2. 書き込み権限のあるレジストリ(カレントユーザ等)に設定を保存する。
但し、どうしてゲストアカウントからのレジストリの書き込みを制限しているのかを
考えれば、ホイホイ出来るようだとセキュリティ上問題があると言うのはわかるはずなので
その辺はちゃんと考えて対応した方が良いと思います。
私的にはBanさんの2で満足できないのであれば、書き込みには権限がいるので
少なくとも管理者権限のあるアカウントから出ないと不味いですと説明するべきかと。