elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Saber si el script se ejecuto como administrador [Windows] | Python3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saber si el script se ejecuto como administrador [Windows] | Python3  (Leído 501 veces)
Drakaris

Desconectado Desconectado

Mensajes: 222


Todo lo que puedas imaginar, lo puedes crear.


Ver Perfil
Saber si el script se ejecuto como administrador [Windows] | Python3
« en: 21 Septiembre 2020, 20:34 »

Buenas, estoy haciendo un script de instalación con python y quiero obligar al usuario a que lo ejecute como administrador. Eso en entorno GNU/Linux, se hace con la funcion os.geteuid().
Código
  1. import os, sys
  2. if os.geteuid() != 0:
  3.   print("Needs root privileges")
  4.   sys.exit()
  5. #code
  6.  
pero como se puede hacer con Windows?

Hay alguna manera de obtener los datos del usuario actual? por que se puede obtener el nombre del usuario con el que estoy corriendo el script.

Gracias de antemano


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.217

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Saber si el script se ejecuto como administrador [Windows] | Python3
« Respuesta #1 en: 21 Septiembre 2020, 21:21 »

hola:
        seguramente hay muchas formas de hacerlo, una de ellas:
Código
  1. #-*- coding: utf - 8 -*-
  2. import getpass,ctypes
  3. usuario = getpass.getuser()
  4. if ctypes.windll.shell32.IsUserAnAdmin() != 0:
  5.    print("necesita permisos de administrador")
  6. else:
  7.    print(usuario,"es administrador")
  8.  


En línea

Drakaris

Desconectado Desconectado

Mensajes: 222


Todo lo que puedas imaginar, lo puedes crear.


Ver Perfil
Re: Saber si el script se ejecuto como administrador [Windows] | Python3
« Respuesta #2 en: 22 Septiembre 2020, 00:48 »

hola:
        seguramente hay muchas formas de hacerlo, una de ellas:
Código
  1. #-*- coding: utf - 8 -*-
  2. import getpass,ctypes
  3. usuario = getpass.getuser()
  4. if ctypes.windll.shell32.IsUserAnAdmin() != 0:
  5.    print("necesita permisos de administrador")
  6. else:
  7.    print(usuario,"es administrador")
  8.  

Modifique un poco el código, en la consola cmd como administrador la funcion ctypes.windll.shell32.IsUserAnAdmin() me arrojaba 1 mientras que, cuando lo ejecutaba con una consola (sin "run as administrador") me arrojaba 0, por la cual hice:
Código
  1. #-*- coding: utf - 8 -*-
  2. import getpass,ctypes
  3. usuario = getpass.getuser()
  4. if ctypes.windll.shell32.IsUserAnAdmin() != 1:
  5.    print("necesita permisos de administrador")
  6.    sys.exit()
  7.  

Gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines