Запуск скрипта Python, который обращается к защищенному файлу при запуске Windows


0

У меня есть сценарий Python, который добавляет текст в hostsфайл, который разрешает только доступ администратора. Итак, я сначала открываю cmd из меню «Пуск» в Windows 7, затем щелкаю правой кнопкой мыши и запускаю «Запуск от имени администратора».

Это хорошо работает.

Тем не менее, я намерен запустить скрипт Python сразу после запуска Windows.

Если между ними не было защищенного hostsфайла, я бы просто изменил расширение скрипта Python с .py на .pyw и поместил скрипт в папку «Автозагрузка», чтобы Windows запускала его при запуске, но в этом случае скрипт не запустится. ,

Кто-нибудь подскажет, как я мог это сделать?

Изменения : предложенный дубликат не решает мою проблему. Если я укажу на скрипт .py или .pyw в планировщике заданий, ничего не произойдет.

Я думаю, что я должен указывать на файл .cmd или .bat, но не знаю, что написать в таком файле.



@DavidPostill, как объяснено в моих изменениях, это не отвечает на мой вопрос.
multigoodverse

Палка python script.pyв .cmdфайл или преобразовать сценарий в .exeиспользовании py2exe
DavidPostill

Ответы:


1

Просто,

  1. Открыть блокнот
  2. Вставьте следующий код

@echo off

start < python script path here >

exit

Примечание: упомяните путь скрипта .py в приведенном выше теге.

  1. Сохраните этот файл как «anyname.bat» в любом месте
  2. Открыть планировщик задач
  3. Создать новое задание
  4. включить Run with highest privilegesтокен " " для этой задачи
  5. Перейти на вкладку действий
  6. Добавьте run a programтриггер и выберите командный файл
  7. Запланируйте задачу на run at startup
  8. Нажмите ОК

Это почти идеально, за исключением того, что проблема с правами доступа к файлу все еще существует. Ваши три строки не запускают скрипт Python от имени администратора, не так ли?
multigoodverse

@ AS Нет. Но я предложил создать запланированное задание с включенным «Запускать с наивысшими привилегиями». Так что это позаботится о запуске скрипта python с правами администратора
Cyfrost

0

Отвечая на мой собственный вопрос. Что я сделал, так это создал .bat файл, как подсказал ответ Ашока:

@echo off
start C:/folder/script.pyw
exit

Вы должны переименовать ваш Python с расширением .pyw.

Двойной щелчок по файлу .bat пока не решает проблему, так как он не работает от имени администратора. Чтобы это исправить:

  1. Открыть планировщик задач
  2. Создать новое задание
  3. Выберите «Запуск с самыми высокими привилегиями»
  4. Перейти на actionвкладку
  5. Добавьте run a programтриггер и выберите командный файл
  6. Запланируйте задачу для запуска при запуске
  7. Нажмите сохранить

Готово.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.