Используя подпроцесс в Python, как запустить 'openvpn' от имени администратора? - PullRequest
0 голосов
/ 16 апреля 2019

Я могу запустить openvpn с разрешениями по умолчанию:

FNULL = open(os.devnull, 'w')
args = 'E:\\OpenVPN\\bin\\openvpn-gui.exe --connect ' + server + '.udp.ovpn'
subprocess.Popen(args, stdout=FNULL, stderr=FNULL, shell=False)

Как мне изменить это, чтобы он работал от имени администратора?

1 Ответ

0 голосов
/ 16 апреля 2019

Вы можете использовать утилиту runas - без проверки, цитирование может потребовать некоторой работы:

FNULL = open(os.devnull, 'w')
command = 'E:\\OpenVPN\\bin\\openvpn-gui.exe --connect ' + server + '.udp.ovpn'
runas_command = 'runas /user:Administrator "%s"' % command
subprocess.Popen(runas_command, stdout=FNULL, stderr=FNULL, shell=False)

Если runas не работает, psexec, вероятно, будет.

...