Предоставить приложению доступ к разделу реестра, защищенного UAC - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть устаревший драйвер USB-устройства, который считывает и записывает данные из реестра Windows и в него в HKEY_LOCAL_MACHINE / SOFTWARE / COMPANY / PRODUCT.Я не могу изменить это, поэтому мне нужен обходной путь, потому что я заметил, что в Windows Vista и Windows 7 с включенным UAC функция, выполняющая запись, возвращает ошибку.Я предполагаю, что у него просто нет прав доступа.

Мой текущий обходной путь - запустить мое приложение с правами администратора, но, как вы можете догадаться, это не очень хорошее решение.Поскольку доступ к реестру осуществляется при инициализации устройства USB при запуске приложения, я также не могу просто запросить повторный запуск.

Я знаю, что могу предоставить права доступа к определенным папкам в системе с помощью cacls из моего установщика (которыйработает с правами администратора) но есть ли что-то подобное, что я могу сделать, чтобы предоставить это для этой конкретной записи реестра?(Я хотел бы предоставить и отменить команды.)

1 Ответ

0 голосов
/ 29 сентября 2011

Следует избегать предоставления пользователям, не имеющим прав администратора, прав на запись в HKLM. Однако, если вам все еще нужно это сделать, вы можете использовать SetACL для установки / удаления разрешений. SetACL доступен как отдельный исполняемый файл командной строки и как COM-объект.

...