Página 1 de 2

[RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 25 de septiembre de 2019 - 15:08
por olaplanche
Estoy compartiendo algo que acabo de lograr hacer y que nunca había visto en el foro.

Permítanme darles el ejemplo de mi último paquete para instalar el software Archiwizard v8.0.1:
Este es un archivo MSI; la instalación devuelve la clave de desinstalación incorrecta, por lo que podemos olvidarnos del comando install_msi_if_needed...
El archivo MSI solo se instala silenciosamente bajo la cuenta de administrador, por lo que podemos olvidarnos del comando 'ejecutar' ya que un paquete se ejecuta bajo la cuenta del sistema...

Para evitar todos estos problemas, desde la cuenta del sistema es posible ejecutar un proceso como administrador en PowerShell sin necesidad de proporcionar la contraseña. Y lo mejor es que, al proporcionar la clave de desinstalación correcta en el paquete obtenido con el comando "wapt-get list-registry archiwizard", la desinstalación de la aplicación funciona correctamente.

Aquí está el código de mi paquete:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['{AF474B4B-28ED-4AAE-A623-BB78E4D4AEC7}']

def install():
    print('installing wapt-archiwizard')
    run_powershell('Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)


Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 25 de septiembre de 2019 - 16:05
por htouvet
Gracias, muy interesante...

Una pequeña corrección:
Agregue una "r" antes del comando de PowerShell porque hay barras invertidas que podrían malinterpretarse.

Código: Seleccionar todo

    run_powershell(r'Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)


Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 25 de septiembre de 2019 - 16:32
por olaplanche
Bueno, gracias.

Ahora estoy intentando crear una clave de registro en la configuración de la sesión para la activación del software:

Código: Seleccionar todo

def session_setup():
    registry_set(HKEY_CURRENT_USER,makepath('Software','Graitec','License Manager'),'GRAITEC_LICENSE_FILE',r'7621@servername;',type=REG_SZ)
Solo existe la clave "Graitec", por lo que se debe crear la clave "License Manager", seguida del valor reg_sz "GRAITEC_LICENSE_FILE".
Mi código no funciona, ¿tienes alguna idea?

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 25 de septiembre de 2019 - 23:11
por vcardon
Olivier,

es fantástico ver tu progreso con la herramienta y que estés aprovechando el tiempo que ahorras para compartir consejos tan útiles con los demás.

En Tranquil IT, somos grandes defensores del software libre, aunque sabemos que es difícil vivir de un modelo estrictamente gratuito y basado en la comunidad.

Ver tu iniciativa para compartir tu experiencia nos tranquiliza y nos confirma que estamos haciendo algo útil y que estamos logrando involucrar a personas interesadas y motivadas en el proyecto.

Un cordial saludo,

Vincent

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 26 de septiembre de 2019 - 8:54 a. m.
por olaplanche
Resolví el problema del registro, siempre olvido agregar una r delante de la cadena para evitar que se interpreten ciertos caracteres (el espacio en mi caso).

Código del paquete final:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['{AF474B4B-28ED-4AAE-A623-BB78E4D4AEC7}']

def install():
    print('installing wapt-archiwizard')
    run_powershell(r'Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)


def session_setup():
    registry_set(HKEY_CURRENT_USER,r'Software\\Graitec\\License Manager','GRAITEC_LICENSE_FILE','serverport@servername;',type=REG_SZ)
En respuesta a vcardon:

Es un placer compartir mis hallazgos, soy fan del producto wapt y apoyo su modelo gratuito y comunitario.
Estoy deseando conocer al equipo en el evento AdminSys en Toulouse el 17 de octubre :)

GRACIAS

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 30 de abril de 2020 - 10:23 a. m.
por florentR2

Código: Seleccionar todo

run_powershell(r'Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)
Buen día,
Este caso realmente me interesa.
Con la opción powershell ejecutar como ¿Esto se inicia como administrador sin solicitar ninguna otra información o contraseña?

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 30 de abril de 2020 - 10:38 a. m.
por olaplanche
Sí, por extraño que parezca, funciona sin proporcionar la contraseña de la cuenta de administrador...
Para ser más precisos, funciona cuando el comando de PowerShell se ejecuta con la cuenta del sistema; obviamente, no funciona con una cuenta de usuario.
Resolví todos mis problemas con software antiguo que no se instalaba correctamente usando la cuenta del sistema de esta manera, ¡y desde entonces ha funcionado siempre!

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 30 de abril de 2020 - 10:45 a. m.
por florentR2
Genial, gracias, eso también puede ayudar a aquellos a quienes no les gusta la cuenta SISTEMA para una instalación

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 30 de abril de 2020 - 14:48
por sfonteneau
¿Puedes intentar utilizar la función run_as_administrator?

Código: Seleccionar todo

from common import run_as_administrator

run_as_administrator('sample.exe','--args')

Re: [RESUELTO] Ejecutar como administrador sin contraseña (cuando la cuenta del sistema no es suficiente) \o/

Publicado: 6 de mayo de 2020 - 17:31
por florentR2
sfonteneau escribió: 30 de abril de 2020 - 14:48 ¿Puedes probar con la función run_as_administrator?
Para la prueba que estoy realizando (Autocad 2020) el comando funciona bien en la máquina empaquetadora si pruebo el paquete.
Sin embargo, todavía no puedo implementar el software en una máquina.
El problema podría estar en otra parte; comenzaré un nuevo hilo, que probablemente será mejor.