[SOLUCIONADO] Abrir CMD como administrador en Python

Iniciado por Bartz, Octubre 21, 2018, 05:36:53 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Octubre 21, 2018, 05:36:53 PM Ultima modificación: Octubre 30, 2018, 09:19:15 PM por Gabriela
Hola gente !
Bueno la pregunta es esa,
¿Como puedo hacer para correr comandos utilizando subprocess en Python como administrador? osea que al ejecutar los comandos en vez de ser en el cmd común sea en cmd modo administrador
Estoy abriendo una conexión con socket y enviando los comandos pero en algunos casos "no tengo los permisos suficientes", traté de ejecutar el script como administrador pero sigue diciendo lo mismo.
Gracias de antemano por su respuesta !  ;D




Con la fuerza del mar, con la paz del rio


Octubre 22, 2018, 08:03:32 PM #1 Ultima modificación: Octubre 22, 2018, 08:08:50 PM por DtxdF
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Los metodos que te dire acontinuacion no son en python pero ya depende de ti como lo programes:

NOTA: esto solo funcionara en tal caso de que el sistema operativo (Windows) tengo habilitado/pre-instalado el UAC

Metodo 1 - Ejecutar el cmd.exe u otra aplicacion con privilegios de administrador con el comando runas.exe: Función: runas.exe /user:<usuario> <programa>; ejemplo: runas.exe /user:Administrador cmd.exe; pedira contraseña la ingresas y listo.

Metodo 2 - Ejecutar el cmd.exe u otra aplicacion con privilegios de administrador con un VBS: Codigo:

Código: text

Set WshShell = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.Length = 0 Then
    Set ObjShell = CreateObject("Shell.Application")
    ObjShell.ShellExecute "<Aqui el programa que desees ejecutar con privilegios administrativos>" _
    , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
    WScript.Quit
End if


Ejemplo:

Código: text

Set WshShell = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.Length = 0 Then
    Set ObjShell = CreateObject("Shell.Application")
    ObjShell.ShellExecute "cmd.exe" _
    , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
    WScript.Quit
End if


Metodo 3 - Compilar un archivo de python (.py) a un ejecutable de windows (.exe) que requiera privilegios de administrador: En este caso usare pyinstaller (puedes usar py2exe). Primero lo instalamos con el comando pip: pip install pyinstaller posteriormente nos vamos a la ruta de donde se encuentre el archivo a compilar y ejecutamos el siguiente comando: pyinstaller <nombre del archivo> --onefile --noconsole --uac-admin; Ejemplo: pyinstaller No tienes permitido ver los links. Registrarse o Entrar a mi cuenta --onefile --noconsole --uac-admin; explicacion de los parametros: --onefile (lo compila en un solo archivo), --noconsole (no muestra la consola cuando se ejecuta), --uac-admin (requiere privilegios para ejecutar).

Nota: no son necesarios los parametros pero te aconsejo que los uses todos excepto el parametro: --noconsole si estas haciendo una prueba
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Gracias por la respuesta tan detallada bro ! es una gran ayuda  ;D
Ni bien lo solucione subo aca abajo el fragmento de codigo para poder ayudar al proximo que venga con esta duda. Saludos !!




Con la fuerza del mar, con la paz del rio