
Я использую Windows 8.1 x64 и хотел бы запустить программу с правами администратора при входе пользователя в систему.
Я попытался создать ярлык программы и поставил галочку «Запускать от имени администратора» в свойствах ярлыка или самой программы, а затем поместил ярлык в C:\Users\MyUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
или C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
, но установка галочки просто сделала его недействительным.
Затем я отредактировал программу Resource Hacker, чтобы изменить ее манифест так, чтобы для этой программы требовались права администратора. Это также сделало ярлыки в каталогах автозагрузки недействительными. Поэтому после этого я попытался добавить программу, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
но это тоже не сработало.
Как же мне запустить программу с правами администратора при входе пользователя в систему?
решение1
Лучший способ (и единственный простой способ, если вы хотите, чтобы это не только запускалось как администратор, но и без запроса UAC) сделать это — создать запланированную задачу. Там вы можете указать, под каким пользователем вы хотите ее запустить, а также указать, что она должна «запускаться с наивысшими привилегиями». Вероятно, это то, что вам действительно нужно, потому что кнопка-флажок «Запуск от имени администратора» действительно запускает запрос UAC, а не использует администратора. Если вы также укажете триггер как «при входе пользователя в систему», это должно иметь тот же эффект, что и использование ключа запуска или запуска.
В качестве альтернативы вы можете использовать runas с опцией /savecred, чтобы сохранить пароль другого пользователя один раз и кэшировать его навсегда, но насколько мне известно, это не работает с UAC.
решение2
Создайте файл типа appStart.cmd, содержащий:
start "" %1
Второе в реестре, которое вы должны добавить
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Пара ключ-значение
Ключ:"имя_приложения"
Значение: "path-to-appStart.cmd" "path-to-myapp.exe"
Таким образом, при запуске Windows он вызовет ваше приложение из командной строки и запросит разрешение на запуск от имени администратора. После принятия командной строки закройте ее, и ваше приложение запустится с правами администратора.