Повышение UAC против олицетворения
(Перейти к нижней части для версии TLDR.)
Итак, я искал (правда!) И все другие статьи о UAC, которые я нашел, похоже, в центре внимания включение, отключение, обнаружение или скрытие UAC. Моя проблема не из тех, так что здесь идет:
У моего пользователя была стандартная настройка с двумя токенами, в которой я находился в группе администраторов, а пользовательский интерфейс согласия UAC просто спрашивал меня, хочу ли я продолжить. Теперь у нас есть отдельные учетные записи административного уровня, которые нам нужно использовать, и я должен пройти аутентификацию с этим новым пользователем. Проблема, с которой я столкнулся, заключается в том, что ранее, когда я запускал приложение с правами администратора, я повысил статус текущего пользователя, и теперь, если я использую учетные данные нового администратора, все, что я запускаю, запускается как этот новый пользователь.
Как пример, ранее подняв CMD
и печатать whoami
в командной строке, используемой для возврата моего обычного / текущего пользователя, где он теперь возвращает нового администратора.
Это имеет серьезные негативные последствия - поскольку это новый пользователь административного уровня, и если какие-либо файлы создаются с использованием этого нового пользователя, мой обычный пользователь не может записывать или удалять их, если я вручную не настрою разрешения и владельца. Если я использую свою среду разработки под новой учетной записью (например, мне нужно отладить службу или работать с драйвером) и что-то пересобирать, я получаю кучу файлов, которыми не могу манипулировать, если я не являюсь администратором. Аналогично, если я добавлю файл во время работы под этой новой учетной записью - мой инструмент SCM не сможет обновить этот файл позже, если он также не будет работать под этой новой учетной записью администратора.
Кроме того, поскольку профиль связан с этим пользователем, все работает в совершенно другой среде (разные %USERNAME%
, %USERPROFILE%
, %LOCALAPPDATA%
, так далее.)
Установка приложения также будет работать некорректно, если оно установлено только для текущего пользователя (например, опция "Просто я"), а не для всех пользователей. Вещи, которые лицензированы для / в моей обычной учетной записи пользователя, также не функционируют, если они запускаются под новой учетной записью, потому что все работает под этим новым пользователем.
Волновые эффекты этого изменения становятся все больше и больше, чем больше я работаю с ним. Так...
[TLDR] Есть ли способ получить временное повышение прав текущего пользователя без того, чтобы этот пользователь имел обычную настройку с двумя токенами, которую вы получаете, находясь в административной группе? Или вы застряли с олицетворением поведения?