0

新しいユーザーを作成して、ビルトインの管理者グループにユーザーを追加したら、新しく作成したユーザーのレジストリを編集したい(このプログラムは管理者権限の昇格プログラムです) 。私は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を作成することです。

答えて

1

既にユーザープロファイルにLoadUserProfile()が読み込まれている場合は、実際にRegOpenCurrentUser()を使用する必要はありません。

hProfile
タイプ:HKEY_CURRENT_USERレジストリサブツリーに

ハンドルをHANDLE代わりにPROFILEINFOそのLoadUserProfile()リターンのhProfileフィールドを使用することができます。

...

LoadUserProfileの呼び出しが正常に返され、hProfileメンバーは、フルアクセス(KEY_ALL_ACCESS)で開かれたキーハンドルは、ユーザーのサブツリーのルートに開かれたレジストリを、受信

+0

ありがとうございました!あなたはすべてをずっと簡単に、そして簡単に作った。 – Andy

関連する問題