[RESUELTO] Problema con install_msi_if_needed y el archivo msix

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.
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

9 de noviembre de 2023 - 15:24

Buen día
Quiero desarrollar un paquete para el nuevo MS-TEAMS que se proporciona como msix.

Pero cuando intento un simple install_msi_if_needed('MSTeams-x86.msix') en pyscripter, obtengo este resultado:

Código: Seleccionar todo

2023-11-09 15:13:13,714 CRITICAL Fatal error in install script: MSIError: open failed:
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 4083, in install_wapt
    exitstatus = setup.install()
  File "c:\waptdev\ln-msteams-x86_0.0.0_Windows_PROD\setup.py", line 16, in install
    install_msi_if_needed('MSTeams-x86.msix')
  File "C:\Program Files (x86)\wapt\common.py", line 4033, in new_func
    return func(*args, **kwargs)
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 1379, in install_msi_if_needed
    key = get_msi_properties(msi)['ProductCode']
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 2825, in get_msi_properties
    db = msilib.OpenDatabase(msi_filename, msilib.MSIDBOPEN_READONLY)
_msi.MSIError: open failed

FATAL ERROR : MSIError: open failed
Exit code:  3
¿Alguna idea de lo que está pasando?
Última edición realizada por t.heroult el 10 de noviembre de 2023 a las 16:31, editado 1 vez.
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

9 de noviembre de 2023 - 17:50

Hola Thomas,

me parece que el formato msix tiene muy poco que ver con el formato msi. La biblioteca msilib, que se usa subyacentemente a la función install_msi_if_needed, aparentemente no lo maneja.

Por ahora, tendremos que ejecutarlo con algo como run(), creo...

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

10 de noviembre de 2023 - 09:08

Lo entiendo, pero lo inconsistente es que desde la consola, inicié el asistente para crear paquetes nuevos, la primera opción ofrecía msi, msix y exe, y después de seleccionar msix, PyScripter se abre con la línea `install_msi_if_needed` ya creada.
Esto debe revisarse si la función no puede manejar archivos msix.
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

10 de noviembre de 2023 - 10:54

Por lo tanto, no veo cómo instalar MSIX con WAPT.
La forma más sencilla normalmente sería usar PowerShell con Add-AppxPackage, excepto que esta operación no es posible con la cuenta LOCAL SYSTEM que usa WAPT...
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

10 de noviembre de 2023 - 11:01

De hecho, acabo de ver que msix está codificado en waptconsole

Vamos a eliminar la referencia; es un error histórico

Mientras tanto, puedes probar algo como esto:

Código: Seleccionar todo


def install():
    filecopyto('MyApp.msix','c:\MyApp.msix')

def session_setup():
    run(r'powershell Add-AppPackage -path "c:\MyApp.msix"')
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

10 de noviembre de 2023 - 11:42

Hola Simon
, como mencioné en mi comentario anterior, no funciona.
Al menos, funciona en PyScripter, ya que se ejecuta con mi cuenta, pero el agente WAPT se ejecuta con la cuenta SYSTEM LOCAL, que no tiene permiso para ejecutar "PowerShell Add-AppxPackage". Esto está prohibido por Windows, y lo mismo ocurre con Add-AppPackage.
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

10 de noviembre de 2023 - 12:35

Pero en mi ejemplo es un session_setup, por lo tanto no es un sistema, entonces tampoco funciona?
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

10 de noviembre de 2023 - 12:41

No sé cuál sería el resultado en session_setup...
Lo probaré y veré.

¡Más información después!
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

10 de noviembre de 2023 - 15:04

Comentarios negativos, no pasa nada.
El comando utilizado es: powershell Add-AppPackage -Path "C:\Software\bin\MSTeams-x64.msix"
Lanzado por session_setup: no pasa nada
Lanzado desde una ventana de PowerShell (usuario estándar): funciona...

Código: Seleccionar todo


def session_setup():
    cmd = 'powershell Add-AppPackage -Path "C:\Logiciels\bin\MSTeams-x64.msix"'
    run(cmd)
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

10 de noviembre de 2023 - 15:42

Hmm, ¿la 'r' antes de la cadena?

¿O debería usar la ruta completa:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe?
Bloqueado