Я хочу извлечь zip-архив на «C: \\» (только для целей тестирования). Поэтому мне нужны права администратора, поэтому я пытаюсь поднять текущего пользователя, чтобы получить права администратора.Подъем пользователя через python
if __name__ == "__main__":
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
main()
Сообщение ссылающееся с ОАК пришедшего, как должно, но когда я хочу, чтобы извлечь молнию я все еще получаю «IOError: [Errno 13] Доступ запрещен».
Что я здесь делаю неправильно?
Хм я изменил код, как вы, но теперь моя программа выходит сразу после UAC с кодом выхода 0? –
Ну, я не знаю, является ли shell.ShellExecuteEx блокирующим вызовом. Если он не блокируется, ваш исходный запуск скрипта будет немедленно завершен, и новый процесс с тем же скриптом будет продолжаться отдельно, делая все, что в принципе. См. Также, этот вопрос: http://stackoverflow.com/questions/130763 – zstewart