powershell automation windows-installer install

¿Cómo puedo usar powershell para ejecutar un instalador?



automation windows-installer (1)

ACTUALIZACIÓN : Varios enlaces hacia la parte inferior con información sobre cómo manejar la instalación , configuración y extracción de archivos para los archivos setup.exe .

ACTUALIZACIÓN : Vea el Módulo PowerShell de Windows Installer en github.com (desplácese hacia abajo para obtener una descripción, use la pestaña de versiones para descargar ). Realmente no lo he probado mucho, pero es de Heath Stewart , ingeniero de software senior de Microsoft ( github ).

Eché un vistazo rápido a ese instalador, pero no lo encontré fácilmente. Esencialmente, el instalador es una base de datos de Windows Installer (MSI) u otra cosa , generalmente un setup.exe de algún tipo. Una base de datos MSI también se puede incluir en un archivo setup.exe.

Debe tener en cuenta que para los instaladores de estilo heredado, una práctica común para la implementación a gran escala es capturar la instalación heredada con una herramienta de reempaquetado de aplicaciones y luego compilar un archivo MSI para usarlo en la instalación (convertir efectivamente un instalador de un formato antiguo a un MSI moderno) formato). Esta es una tarea especializada que requiere una buena comprensión de Windows y las configuraciones. Generalmente se realiza en grandes corporaciones para distribuciones de software muy grandes. Si está en una empresa grande, puede haber un equipo dedicado al software de empaquetado como el que usted menciona . Tal vez consulte con su gerencia. Si la configuración es un MSI, el mismo equipo también puede modificarlo según sus especificaciones.

Con respecto a su instalador EXE . Intente ejecutar setup.exe /a desde la línea de comandos y vea si tiene una opción para extraer archivos a un "punto de instalación de red" (instalación administrativa). Entonces está tratando con un archivo MSI envuelto en un setup.exe. Si eso no funciona, puede probar setup.exe /x o setup.exe /extract también.

Windows Installer tiene características integradas que le permiten personalizar la instalación a través de las propiedades PUBLIC (mayúsculas) establecidas en la línea de comando o aplicadas a través de una transformación (mecanismo de Windows Installer para aplicar cambios sustanciales al archivo del proveedor; es una base de datos parcial que obtiene aplicado a la base de datos de instalación del proveedor en tiempo de ejecución).

Las tecnologías de instalador heredadas que no son de MSI generalmente tienen menos formas confiables de personalizar la configuración de instalación, y tienden a ser bastante ad hoc cuando están allí. En particular, la ejecución silenciosa y la desinstalación pueden ser características que faltan o están mal ejecutadas. Estas instalaciones generalmente están envueltas en formato EXE, y hay muchas herramientas utilizadas para generarlas, cada una con sus propias peculiaridades y características.

En otras palabras, todo depende de cómo se implemente el instalador. Vaya a setup.exe /a , y actualice su respuesta con nueva información para nosotros (no agregue demasiados comentarios, lo revisaremos nuevamente).

Con respecto al uso de PowerShell . No he usado PowerShell para la implementación hasta ahora para ser completamente honesto. Aquí hay una descripción básica de cómo instalar usando PowerShell: https://kevinmarquette.github.io/2016-10-21-powershell-installing-msi-files/

También puede invocar la automatización para archivos MSI desde PowerShell, no creo que esto sea relevante para lo que solicitó, pero aquí hay un enlace rápido para modificar un archivo de transformación: http://www.itninja.com/question/ps-how-to-edit-a-mst-file .

La forma normal de instalar archivos MSI es a través de la línea de comando msiexec.exe incorporada de Windows. La línea de comando básica msiexec.exe para instalar el software es:

msiexec.exe /I "C:/Your.msi" /QN /L*V "C:/msilog.log" TRANSFORMS="C:/1031.mst;C:/My.mst"

Explicación rápida de parámetros:

/I = run install sequence /QN = run completely silently /L*V "C:/msilog.log" = verbose logging TRANSFORMS="C:/1031.mst;C:/My.mst" = Apply transforms 1031.mst and My.mst (see below).

¿Qué es una transformación? Explicado aquí: Cómo hacer un mejor uso de los archivos MSI .

El instalador avanzado tiene una página general en las líneas de comando msiexec.exe . Y aquí está la documentación de msiexec.exe de Microsoft en MSDN .

Algunos enlaces:

  • Quizás vea la respuesta de Michael Urman aquí: Extraiga mediante programación el contenido de InstallShield setup.exe . Esto es solo para los archivos EXE empaquetados de Installshield.
  • Comandos installshield setup.exe (referencia general con algunas líneas de comando de muestra: hacia el final del documento parece que las líneas de comando no son correctas, pero las primeras se ven bien. Las últimas son bastante oscuras de todos modos, solo pensé que hacerle saber ya que me enlace a él). Aquí está la documentación de ayuda oficial de Installshield .
  • Comandos de Wise setup.exe : Wise ya no está disponible, pero si la configuración es anterior, aún se puede empaquetar con Wise.
  • Línea de comando estándar del instalador avanzado . Al parecer, las configuraciones de esta herramienta se pueden extraer con setup.exe /x setup.exe /extract . Vea el enlace para la lista completa.
  • También había una herramienta de " buscador silencioso de conmutadores " utilizada para encontrar conmutadores ocultos en archivos exe (para implementación), pero falló un escaneo de virustotal.com, por lo que no lo vincularé. ¿Tal vez está usando algo exótico, como escanear el encabezado de un archivo a un nivel de bit o algo extraño que se marca como malware por error? De cualquier manera, no es una herramienta que usaría.
  • Y finalmente: http://unattended.sourceforge.net/installers.php . Este enlace no es malo, presenta algunas de las herramientas anteriores y algunas otras, y los interruptores más comunes utilizados. No probado por mí, pero se ve bien.
  • Y hay otras herramientas de implementación que tienen su propia forma de empaquetar y entregar archivos EXE: puede ser una jungla. Puedo proporcionar una lista de tales herramientas con más enlaces, pero tal vez eso sea confuso. Por favor, intente lo que se proporciona arriba primero.
  • Aquí hay una respuesta genérica que también podría ser útil: Extraiga MSI de EXE

Estoy tratando de instalar una pieza de software que, cuando se realiza manualmente, tiene opciones de configuración entre las que puede elegir cuando realiza el proceso. Estoy tratando de encontrar una manera de automatizar esto usando Powershell, pero no sé cómo puedo configurar esas opciones de configuración. Creo que necesitaría ejecutar el comando de inicio del proceso en el instalador .exe, pero no sé a dónde ir desde allí. ¿Puedo usar los parámetros en el comando de inicio del proceso para pasar las configuraciones que quiero?