Как получить профиль пользователя с учетом SID? - PullRequest
1 голос
/ 06 мая 2011

Мне нужно выбрать каталог профиля пользователя по умолчанию, учитывая его имя пользователя или SID.

Как я могу это сделать?

GetUserProfileDirectory (), кажется, работает только для текущей учетной записи.

1 Ответ

1 голос
/ 06 мая 2011

Как GetUserProfileDirectory, так и SHGetFolderPath могут получить каталог профиля другой учетной записи, единственная проблема заключается в том, что им нужен дескриптор токена, а не SID. Чтобы получить маркер, вам нужно знать пароль пользователя и вызвать LogonUser, или, если пользователь уже вошел в систему и вы работаете в качестве службы, вы можете получить их токен.

Полагаю, ни одно из этих решений не является тем, что вам нужно, поэтому вам нужно отправиться в недокументированную страну:

Считайте значение ProfileImagePath в разделе "HKLM \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \% SID%"

...