Page 1 of 1

Launching a script in interactive mode visible to the user

Published: October 2, 2024 - 4:27 PM
by fobrien
Hello,

As I'm brand new here and this is my first post, I wanted to start by congratulating you on the very responsive technical support and especially the easy interaction with the Tranquil'IT team on this forum, based on what I've seen while browsing a few topics.

I had a question regarding user interaction during package deployment.
Specifically, I want to display a popup using Windows "toast notifications" so that the user can decide to initiate an in-place upgrade from Windows 10 to Windows 11 from their computer (for example, when leaving in the evening). A full-screen splash screen will then display the progress of the operation, instructing the user not to shut down their computer.

Currently, I'm managing to achieve this through a workaround: launching the script via the display method of "ServiceUI.exe," which SCCM uses to interact from "Session 0," even though the package is running in a "SYSTEM" context and not a "USER" one.

However, I'd like to know if there's a known method in WAPT to accomplish this, perhaps using a pre-existing Python function.

Thanks in advance.

Re: Launching a script in interactive mode visible to the user

Published: November 8, 2024 - 9:17 AM
by fobrien
Good morning,

Having found a solution, I am replying to my own post.
Via the command run From setuphelpers, you just need to combine the executables psexec, powershell And ServiceUI (used notably by SCCM) in the following order:

Code: Select all

run(r'"PsExec.exe" -s powershell.exe ServiceUI.exe C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Noprofile -WindowStyle Hidden -file Script.ps1')
This solution works perfectly and allows interaction with the user by displaying a Toast Notification (very useful for triggering a large deployment at the end of the day such as an "in place" upgrade of Windows 11 for example).

Fred

Re: Launching a script in interactive mode visible to the user

Published: November 8, 2024 - 10:15 AM
by sfonteneau
Oops, sorry, your message seems to have been lost

You can also do it like this:

Code: Select all

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: Launching a script in interactive mode visible to the user

Published: November 8, 2024 - 10:37 AM
by fobrien
Hi Simon,

No worries, I figured that this feature might not be natively available among the setuphelpers functions.
Thanks a lot for the feedback, I wasn't aware of this function and I'll definitely keep it in mind.

Fred