0


0

レジストリエントリをファイルに保存するために、Win API関数RegSaveKeyExを使用するコードがあります。 ただし、Windows VistaまたはWindows 7で実行すると、RegSaveKeyExはERROR_PRIVILEGE_NOT_HELDを返します。 このコードは、Microsoftがサンプル関数 SetPrivilegeで提供しているコードを使用して、セキュリティ特権SE_BACKUP_NAMEを有効にします。

Win XP(管理者ユーザー)、またはWin VistaまたはWin 7でUACを無効にした場合、すべてうまく機能します。 プロセスを昇格せずにVistaでRegSaveKeyExを使用することはできませんか?

2 Answer


1


標準ユーザーはSE_BACKUP_NAME特権を持っていないので、いいえ、RegSaveKeyExは昇格なしでVista上では動作しません。

バックアップは非常に "危険な"特権の1つです - それはあなたが基本的にACLに関係なくディスク上の何でも読むことを可能にします。


1


次のようにして、特定のユーザー(またはグループ)に許可を与えることができます。

「コントロールパネル」 - >「管理ツール」 - >「ローカルセキュリティポリシー」 - >「ローカルポリシー」 - >「ユーザー権利の割り当て」 - >ファイルとディレクトリのバックアップ(SE_BACKUP_NAME)
  1. and adding the user (or group) you want. Or you could add the users バックアップオペレータへ。

しかし、ここでは慎重になるべきです。 下記マイケルによる素晴らしいコメントをご覧ください。