Navigation:  Actions > System > Run Program >

Run Program Action Advanced Tab

Previous pageReturn to chapter overviewNext page

This tab of the Run Program, Batch File, PowerShell, VisBuildPro Project, and other Run Program-derived actions is used to specify advanced options for the program that is called.


Username: Specifies the user account that the program will run under (optional).  If blank, the user identity will be inherited from the parent build instance.  To specify a domain, use the format user@domain.


Password: Specifies the password of the user account (optional).


Options: Specifies a logon option (optional, applies only if credentials are supplied).


Logon with profile: Log on, then load the user profile in the HKEY_USERS registry key.  Loading the profile can be time-consuming, so it is best to use this only if you must access the information in the HKEY_CURRENT_USER registry key.  If this option is not specified, access to information in the HKEY_CURRENT_USER registry key may not produce results that are consistent with a normal interactive logon.


Network credentials only:  Log on, but use the specified credentials on the network only. The new process uses the same token as the caller, but the system creates a new logon session within LSA, and the process uses the specified credentials as the default credentials. This value can be used to create a process that uses a different set of credentials locally than it does remotely. This is useful in inter-domain scenarios where there is no trust relationship.  The system does not validate the specified credentials. Therefore, the process can start, but it may not have access to network resources.


Batch: Intended for batch servers, where processes may be executing on behalf of a user without their direct intervention. This type is also for higher performance servers that process many plaintext authentication attempts at a time, such as mail or web servers.  Only applies if the UseLogonCreateProcessAsUser property is True.


Service: Indicates a service-type logon. The account provided must have the service privilege enabled.  Only applies if the UseLogonCreateProcessAsUser property is True.


Priority: Specifies the priority that the process will run at.


Affinity: Indicates the processor affinity for the threads of the process.


Wait for completion: When checked, Visual Build waits for the called program to finish and exit before continuing, displaying any step output in the Output pane and log file.  Uncheck this option to continue to the next step without waiting for the current step to complete.  No output from the step will be captured, and if the process is started, the step will be treated as successful.



When this option is unchecked, the process ID of the launched process will be stored in the RUNPROGRAM_PROCESSID temporary macro.
When this option is checked, the exit code of the process will be stored in the RUNPROGRAM_EXITCODE temporary macro.


Log the command-line that is used: If checked, the command used to call the external program will be logged when the step is built.  Can be useful for debugging purposes.


Use interactive desktop: If unchecked, the process will inherit the desktop and window station of the calling process (permission for the specified user account to the inherited window station and desktop are added automatically). If checked, the interactive windowstation and desktop will be used for the created process.


Note: Permissions for the specified user account are not automatically added to the interactive window station and desktop when checked, and GUI applications will not have full access to draw properly unless the necessary permissions are assigned manually (see here for more details).


Command to run before main command: Specifies command(s) to run before running the action's main command (optional).  This can be useful for executing a batch file or command script that creates or updates environment variables (for instance, the Visual C++ vsvars32.bat or DDK setenv.bat) -- the main command's environment will inherit the updated environment variables set in batch file.  Multiple commands can be performed by separating each command with the & character.  If a command is specified here, the main command will also run under the command shell (DOSCMD), allowing piping (|) and redirection (> or >>) for commands that are not shelled by default.  To force the main command to run under the command shell without running another command first, enter %DOSCMD% in this field.


Note: To call the 64-bit version of cmd.exe when running the command, create a COMSPEC global macro with a value of %WINDIR%\Sysnative\cmd.exe.


Prefix main command: If checked, rather than running Command to run before main command as a separate command before the main command (separated from the main command by &&), the command will instead be prefixed to the main command (the command can also be suffixed with another symbol to effect that behavior [i.e., &, ||).  When checked, the command will not automatically run under the command shell (begin the command with %DOSCMD% to do so).