Вот сценарий:
1. Приложение уже запущено как локальный администратор.
2. Оно выдает себя за учетную запись домена, которая также является администратором локального компьютера.
3. Пока вы олицетворяетесь, приложение пытается создать regkey под ключом, имеющим полный доступ к группе администраторов для «этого ключа и подразделов».
Этот шаг завершается ошибкой UnauthorizedException «Доступ к разделу реестра ..» запрещен. Теперь, если я явно ACL для регистрационного ключа для пользователя домена, создание regkey будет выполнено. Но тогда это решение побеждает цель нахождения в группе администраторов.
Есть идеи, что здесь может пойти не так?
РЕДАКТИРОВАТЬ: я работаю на Windows Server 2008 R2. Я подумал, что эта проблема связана с включенным UAC. Метод LogonUser возвращает ограниченный токен, у которого нет повышенных прав доступа к реестру. Есть идеи о том, как получить повышенный доступ с помощью метода LogonUser?
Вот как я это называю: IntPtr token = IntPtr.Zero;
LogonUser(username, domain, password, LOGON32_LOGON_BATCH, LOGON32_PROVIDER_DEFAULT, out token)