A única maneira de saber o que você diz é usar o "Application Compatibility Toolkit" link
E como usá-lo: link
Eu tenho um problema ao iniciar um arquivo .exe
.exe como direitos de administrador.
Eu também tentei:
subprocess.call(['runas', '/user:Administrator', 'myfile.exe'])
Mas então eu tenho que digitar uma senha ..
Existe alguma chance de deixar isso de lado?
Obrigado!
PS: procurei por algumas horas ... não encontrei nada!
É uma pequena rotunda, mas outra forma é executar um comando shell, lançar o Powershell (vem com o Windows) e depois dizer ao Powershell para executar o .exe
como Admin:
(lembre-se que o comando shell está no CMD, então você pode escapar com barra invertida, não o backtick do Powershell).
Powershell command:
Start-Process "executable.exe" -ArgumentList @("Arg1", "Arg2") -Verb RunAs
CMD running Powershell:
Powershell -Command "& { Start-Process \"executable.exe\" ... }"
Python running CMD runnning Powershell:
os.system(r'''
Powershell -Command "& { Start-Process \"notepad.exe\"
-ArgumentList @(\"C:\Windows\System32\drivers\etc\hosts\")
-Verb RunAs } " '''
Eu percebo que estou chegando atrasado nisto e pode não ser uma solução realmente elegante ... mas se você abrir um prompt de comando elevado e então lançar seu script python, os executáveis chamariam com "subprocess.call "não será lançado com a mesma elevação da janela do CMD?
Esta resposta funcionou para mim
import ctypes, sys
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
# Code of your program here
else:
# Re-run the program with admin rights
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
Tags python administrator