新しいユーザーを作成して、ビルトインの管理者グループにユーザーを追加したら、新しく作成したユーザーのレジストリを編集したい(このプログラムは管理者権限の昇格プログラムです) 。私はNetUserAdd()
、NetLocalGroupAddMembers()
、LogonUser()
、そして最後にLoadUserProfile()
と呼ばれ、ユーザのディレクトリが存在するようにしました。新しく作成されたユーザーのRegOpenCurrentUser(KEY_WRITE)
は、ずさんなコードすみませんが、これは私がその後やっているものです:
DuplicateTokenEx(hToken,TOKEN_ALL_ACCESS,&sa,SecurityImpersonation,TokenPrimary,&hNewToken);
ImpersonateLoggedOnUser(hNewToken);
HKEY hKey;
LSTATUS stat = RegOpenCurrentUser(KEY_READ|KEY_WRITE, &hKey);
// stat is 5 (ACCESS_DENIED) when KEY_WRITE is added, it
// returns 0 (ERROR_SUCCESS) when it's just KEY_READ
RegCloseKey(hKey);
RevertToSelf();
CloseHandle(hNewToken);
エラーがRegOpenCurrentUser()
ライン上にあります。そのユーザーのHKUレジストリに書き込むように依頼するとエラーになります。私がちょうど使用すれば完璧に動作しますKEY_READ
私は何をしようとしていますか?ユーザーのレジストリハイブはまだ作成されていますか?または、ユーザーが物理的にサインオンして作成する必要がありますか?
最終的に私がしたいと思うのは、新しいユーザー用のGPOを作成することです。
ありがとうございました!あなたはすべてをずっと簡単に、そして簡単に作った。 – Andy