I use PsExec to deploy small .exe files to my workstations. Sometimes the .exe, for some reason, is incompatible with the system and opens a popup window with an error or some other message.
Is there any way to know when the executable is 'stuck' there requiring user interaction? On my side I just have psexec running and waiting for the .exe to return (which will never return because the popup is stuck there).
Since I run PsExec programmatically and I automate all the executions, when this Popup thing happens I find myself with hundreds of psexec processes stuck there and have no result back from them..
What's the best way to handle this sort of issue?
Thanks.
As a last resort try using one of the other automation tools in addition to PsExec to deal with the popups. Like AutoIt.
I would guess that this will have to be the way forward for you since there is no standard that each software must adhere to.
PAExec
has a timeout option (-to
) that will terminate the process after the specified number of seconds. I would highly suggest you switch fromPSExec
toPAExec
.psexec has an -i option that should work.
-i Run the program so that it interacts with the desktop of the specified session on the remote system. If no session is.
Also, you could use some sort of pslist.exe script to monitor the process spawned on their system and see how long it's been there. If msiexec is hanging for 5 mins, that probably means it's hung.
The best way to handle this sort of situation is to test before trying to apply automation.
One easy, albeit brutal, way to deal with the stuck processes is to run a separate batch using pslist and pskill at a later time when the psexec processed that would complete normally would have done so. Use pslist to test for psexec still running on the remote machine and pskill to terminate any that are found.