Help with Command step
I have an executable that I need to run on workstations. There is an associated .ini file that needs to be in the same directory when the .exe is ran. I have a command step that has the command listed and I have added the .exe and the .ini file to be copied. I see the files being downloaded to the PDQDeployRunner folder as well as the associated .cmd file created by PDQ. However, the PDQ session appears to terminate prior to the .exe completing it's processing and reporting success. How can I get this to work?
Comments
I'd recommend using an Install Step. Put the path to your EXE in the Install File field, the silent parameters required to point the EXE to your INI in the Parameters field, and the path to the INI in the Additional Files field.
Here's how we did it with the Mozilla Firefox ESR package in our Package Library:
The .ini file is automatically picked up when it is in the same directory as the .exe. The issue is that the .exe is a shell for multiple MSI files. It appears that PDQ is not waiting for all of those to execute before closing out the session. I would prefer to run the MSI's directly, however, there is some functionality that the .exe version does in addition to shelling out to the MSI files.
I have most recently tried doing this via PowerShell step - upload both files, run the .exe and telling it to wait. No change.
Charles,
I ran into the same issue when trying to automate a Matlab installation. What's happening is your installer EXE is, at some point in the installation, passing off the installation to a different executable and then terminating itself. When PDQ sees the original EXE terminate, it assumes the deployment is complete and stops the package.
I was able to work around this by doing a command step instead, as you tried to do, but I had the benefit of the installer just passing it off to a second installer once-- since your installer is working with several MSI's that might not work.
Can you try your command step with a long pause afterwards? Just run "timeout /t 3600 /nobreak" afterwards and see what happens, maybe that will allow it enough time to finish?
lnichols likely has it right here. Your EXE intiates the process, but somewhere along the way it likely hands the rest of the setup off to either another EXE or to an MSI file. If you look at the logs, you should see the EXE send an error/success code prior to your deployment stopping.
As for this not working in Powershell, it's likely the switches you're using aren't complete or the EXE isn't truly silent at each step, which would cause issues of its own.