Página 1 de 1

Ejecutar un script en modo interactivo visible para el usuario

Publicado: 2 de octubre de 2024 - 16:27
por fobrien
Hola,

como soy nuevo aquí y este es mi primer mensaje, quería empezar felicitándolos por el soporte técnico tan eficiente y especialmente por la fácil interacción con el equipo de Tranquil'IT en este foro, según lo que he visto al navegar por algunos temas.

Tenía una pregunta sobre la interacción del usuario durante la implementación del paquete.
Específicamente, quiero mostrar una ventana emergente usando las "notificaciones toast" de Windows para que el usuario pueda decidir iniciar una actualización in situ de Windows 10 a Windows 11 desde su computadora (por ejemplo, cuando se va por la noche). Luego, una pantalla de inicio a pantalla completa mostrará el progreso de la operación, indicando al usuario que no apague su computadora.

Actualmente, estoy logrando esto a través de una solución alternativa: ejecutar el script a través del método de visualización de "ServiceUI.exe", que SCCM usa para interactuar desde "Sesión 0", aunque el paquete se está ejecutando en un contexto "SYSTEM" y no en uno "USER".

Sin embargo, me gustaría saber si existe algún método conocido en WAPT para lograr esto, quizás utilizando una función de Python ya existente.

Gracias de antemano.

Re: Lanzar un script en modo interactivo visible para el usuario

Publicado: 8 de noviembre de 2024 - 9:17 a. m.
por fobrien
Buen día,

Habiendo encontrado una solución, respondo a mi propia publicación.
A través del comando correr Desde setuphelpers, solo necesitas combinar los ejecutables psexec, PowerShell Y Interfaz de usuario de servicio (utilizado especialmente por SCCM) en el siguiente orden:

Código: Seleccionar todo

run(r'"PsExec.exe" -s powershell.exe ServiceUI.exe C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Noprofile -WindowStyle Hidden -file Script.ps1')
Esta solución funciona perfectamente y permite la interacción con el usuario mostrando una Notificación Toast (muy útil para activar una gran implementación al final del día, como una actualización "en el lugar" de Windows 11, por ejemplo).

Fred

Re: Lanzar un script en modo interactivo visible para el usuario

Publicado: 8 de noviembre de 2024 - 10:15 a. m.
por sfonteneau
Ups, lo siento, tu mensaje parece haberse perdido

También puedes hacerlo así:

Código: Seleccionar todo

from waptservice.enterprise import get_active_sessions,start_interactive_process
for session_id in get_active_sessions():
    start_interactive_process(makepath(install_location('WAPT_is1'), 'waptmessage.exe'), 'message', session_id=session_id,minimize=True)

Re: Lanzar un script en modo interactivo visible para el usuario

Publicado: 8 de noviembre de 2024 - 10:37 a. m.
por fobrien
Hola Simon,

no te preocupes, imaginaba que esta función podría no estar disponible de forma nativa entre las funciones de setuphelpers.
Muchas gracias por tus comentarios, no conocía esta función y sin duda la tendré en cuenta.

Fred