Запросить повышение контроля учётных записей из сценария Python?

82
задан Peter O. 28 January 2013 в 21:54
поделиться

3 ответа

Кажется, что нет никакого способа поднять полномочия приложения некоторое время для Вас для выполнения конкретной задачи. Windows должен знать в начале программы, требует ли приложение определенных полномочий и попросит, чтобы пользователь подтвердил, когда приложение выполняет любые задачи что потребность те полномочия. Существует два способа сделать это:

  1. Запись файл манифеста, который говорит Windows приложение, мог бы потребовать некоторых полномочий
  2. Запущенный приложение с поднятыми полномочиями из другой программы

Это два , статьи объясняют в намного большем количестве деталей, как это работает.

то, Что я сделал бы, если Вы не хотите писать противную ctypes обертку для CreateElevatedProcess API, является использованием прием ShellExecuteEx, объясненный в статье Code Project (Pywin32 идет с оберткой для ShellExecute). Как? Что-то вроде этого:

, Когда Ваша программа запускается, она проверяет, имеет ли она Права администратора, если она не делает этого, выполняет себя с помощью приема ShellExecute и сразу выходит, если она делает, она выполняет задачу под рукой.

, Поскольку Вы описываете свою программу как "сценарий", я предполагаю, что это достаточно для Ваших потребностей.

Аплодисменты.

29
ответ дан dguaraglia 24 November 2019 в 09:09
поделиться

Если Ваш сценарий всегда требует полномочий Администратора тогда:

runas /user:Administrator "python your_script.py"
1
ответ дан jfs 24 November 2019 в 09:09
поделиться

Просто добавив этот ответ в случае, если другие направлены здесь Google Search, как я был. Я использовал elevate модуль в моем сценарии Python и сценарии, выполняемом с Правами администратора в Windows 10.

https://pypi.org/project/elevate /

1
ответ дан 24 November 2019 в 09:09
поделиться