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

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

25 de septiembre de 2019 - 15:08

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)

- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

25 de septiembre de 2019 - 16:05

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)

TI tranquila
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

25 de septiembre de 2019 - 16:32

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?
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
vcardón
Experto en WAPT
Mensajes: 273
Inscripciones: 06 Oct 2017 - 22:55 horas.
Ubicación: Nantes, Francia

25 de septiembre de 2019 - 23:11

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
Vincent CARDON
Tranquilo IT
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

26 de septiembre de 2019 - 8:54 AM

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
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
florentR2
Mensajes: 100
Inscripción: 13 de febrero de 2020 - 17:23

30 de abril de 2020 - 10:23

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?
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

30 de abril de 2020 - 10:38

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!
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
florentR2
Mensajes: 100
Inscripción: 13 de febrero de 2020 - 17:23

30 de abril de 2020 - 10:45 a. m

Genial, gracias, eso también puede ayudar a aquellos a quienes no les gusta la cuenta SISTEMA para una instalación
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

30 de abril de 2020 - 14:48

¿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')
florentR2
Mensajes: 100
Inscripción: 13 de febrero de 2020 - 17:23

6 de mayo de 2020 - 17:31

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.
Bloqueado