えむけいさん、
私も調べてみました。 PowerUsers のデフォルトは KEY_READ | KEY_WRITE でよさそうですね。
どうするのがいいのか考えてみます。
ログのエディタはやはりCreateProcessなのでそうなってしまいますね。直しましょう。
>KEY_ALL_ACCESS から KEY_CREATE_LINK を除いただけのようですが、
winnt.hを覗くわかりますが、ほかにWRITE_DACとWRITE_OWNERという権限もあります。regedt32でHKEY_LOCAL_MACHINE\Softwareのアクセス権を調べた限りではこれらとKEY_CREATE_LINKはAdministratorとシステムと作成者/所有者にしか承認されていません。
AdministratorsでないのにregeditでHKEY_LOCAL_MACHINE\Softwareを変更できてしまったのが調べ始めたきっかけです。
あとサービスとして起動していると、ログを開くときに使われるエディタもLocalSystemアカウントで実行されてしまうのでそのエディタから任意のファイルを読み出したり破壊したりできてしまいます。これも現在ログオンしているユーザの権限で実行できないでしょうか?
えむけいさん、
レジストリ操作についてはたとえば KEY_READ | KEY_WRITE だと、 KEY_ALL_ACCESS から KEY_CREATE_LINK を除いただけのようですが、これでいいのでしょうか?
HKEY_LOCAL_MACHINEの下を変更できるのってAdministratorsだけかと思っていたのですが、KEY_ALL_ACCESSではなしに、必要なアクセス権のみ指定するかMAXIMUM_ALLOWEDにすれば、Power Usersでも読み書きできるのですね。
というわけで書き込み可能な権限を持っているユーザからは設定が変更できるようにすることを希望します。