> はじめまして。MoveFileExを使い、リブート後に使用中ファイル > の上書きをしようと思っています。 > Administrator権限ではうまくいくのですが、Poweruser権限では > レジストリへの書込みができません。 > poweruserでもレジストリへ書込みできるよい方法は無いでしょう > か。 > Windows2000 > VB6.0(SP4)
MoveFileExのヘルプを見ると MOVEFILE_DELAY_UNTIL_REBOOT は |このフラグを指定できるのは、Administrators グループに所属 |するユーザーのコンテキスト、または LocalSystem アカウント |のコンテキストだけです。 とあるので、無理そう。
まぁ、逆に簡単にこんなことが出来ちゃうと、 ほかのプロセスが握ってる重要なファイルを 変更で来ちゃったりするんで、セキュリティに 問題が出そうなので、それなりの覚悟が必要ですね。
MoveFileExを行うプロセスをCreateProcessAsUserでAdministrator 権限を持つユーザで起動するか・・・。 この場合、そのユーザのパスワードがわかっている必要があります。 LocalSystem アカウントっていうのは多分サービスを作って そいつにMoveFileExをさせるってことかな。(ちょっと自信なし)
何のために使用中のファイルを上書きする必要があるの かわかりませんが、 1.インストーラを作りたい なら、素直にAdminでインストールしてくれって言うのが妥当だろうし、 2.自滅Exeを作りたい なら、バッチファイルを駆使する方法があるようですし、 3.自動バージョンアップアプリを作りたい なら、その機能を別Exeにする手もあるだろうし。
|