Python: Как запустить процесс с правами администратора? - PullRequest
4 голосов
/ 10 января 2011

Я запускаю следующий скрипт из командной строки Windows 7 с правами администратора:

import win32com.client
import time
import SendKeys
import os
from ctypes import *

shell = win32com.client.Dispatch("WScript.Shell")

os.startfile("C:\...exe")

Я также назначил функцию 'Запускать эту программу от имени администратора' для python.exe в разделе Свойства> Совместимость> Уровень привилегий.Это ничего не изменило.

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

Заранее благодарен за помощь!

Приветствия -

Пэт

Ответы [ 2 ]

2 голосов
/ 10 января 2011

У меня нет доступа к Vista или Windows 7, но вы должны использовать команду runas.

import subprocess
subprocess.call(['runas', '/user:Administrator', 'C:/my_program.exe'])
0 голосов
/ 10 января 2011

ОК ... Я понял, в чем проблема.Это на самом деле не имеет ничего общего с разрешениями, вопреки моему первоначальному подозрению.Извините за это!

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

Еще раз извините за вводящее в заблуждение первоначальное толкование того, что казалось вопросом.

...