새 사용자를 성공적으로 만들고 기본 제공 관리자 그룹에 사용자를 추가 한 후 새로 만든 사용자의 레지스트리를 편집하고 싶습니다 (이 프로그램은 관리자 권한의 프로그램입니다) . 나는 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