1 | ||||||
RegReplaceKey из приложения сервиса (от Locsl system)30.09.2017, 19:22. Показов 776. Ответов 4
Метки нет (Все метки)
Доброго времени.
Нижеприведенный код работает при запуске приложения от имени администратора, а также из приложения, запущенного через планировщик от имени пользователя "система". Если же ту же программу запустить из сервиса, работающего под учеткой "Local system", то Reg.ReplaceKey не отрабатывает, возвращая false. Если заменить на API-шную RegReplaceKey, то возвращает 5 (отказано в доступе). По идее, привилегии бэкап и ресторе должны быть, и даже MSDN запрещает их получать, но я всё равно пробовал ) Что винде не нравится?
0
|
30.09.2017, 19:22 | |
Ответы с готовыми решениями:
4
RegReplaceKey выдает ошибку Запуск приложения из сервиса Запуск приложения из сервиса Запуск приложения из windows сервиса |
01.10.2017, 08:53 [ТС] | 3 |
С бэкапом проблем нет. Иногда возникает проблема с правкой реестра.
Например, Baidu- образные зверьки хорошо себя защищают. Или остатки некорректно удаленного антивируса (драйвер) убрать нужно. Я могу выгружать реестр, править его "напрямую", по смещениям в файле менять dword-ы , бинарные данные и строки (не меняя длины). А вот с Replace - проблема. Всякие бесплатные авасты и прочие 360Total тупо не дают ничего делать, молча запуская мою программу в песочнице. А меня это бесит. Пытаюсь использовать HiJacking, написал DLL, системная служба её подхватывает, без проблем запускает мой вспомогательный файл, пишет в "труднодоступные" ключи реестра, а вот на RegReplace обламывается. Я не могу понять причину.
0
|
Ушел с форума
|
|
01.10.2017, 09:20 | 4 |
У LocalSystem есть эти привилегии, но они по умолчанию отключены.
Чтобы функция RegReplaceKey работала корректно, привилегии сначала нужно включить. А причина может быть в том, что у антивирусов и прочих программ могут быть установлены перехватчики реестра - CmRegisterCallback(Ex) и с этим ты ничего не сделаешь.
0
|
01.10.2017, 09:31 [ТС] | 5 |
Привилегии включены.
Ведь код работает, если запускаю "мышкой" "от имени администратора". Что до перехвата, то тестирую на своей машине, с "касперским", а он не мешает. Хотел попробовать работать из "доверенного" процесса. Это может сработать, а может и нет. Но, пока это вообще не работает, если в контексте Local system. И где написано про такие ограничения я найти не могу.
0
|
01.10.2017, 09:31 | |
01.10.2017, 09:31 | |
Помогаю со студенческими работами здесь
5
OnTouchListener вне приложения (из сервиса) Запуск приложения и сервиса после ребута Перезагрузка сервиса после выгрузки приложения из памяти Как после старта сервиса сообщить init-процессу об успешном/безуспешном запуске сервиса? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |