Navigation:  Actions > System > Run Program >

Run Program Action Remote 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 execute the command on a remote computer.


Computer: The name of one or more remote computers (separated by commas) to run the command on.  If blank, the program will be executed on the local computer.


Timeout: Specifies a timeout (in seconds) for connecting to remote computers (optional).


Run in System account: If checked, the remote process will be run in the System account, the account that Windows services and Windows processes such as Winlogon and the Local Security Authority Subsystem Service (LSASS) run in.


Note: For remote execution, if a username is not provided on the Advanced tab and Run in System account is unchecked, the remote system impersonates the account that Visual Build is running under on the local computer, and the remote process will not have access to network resources that the user normally would have access to.  If the account that Visual Build is running in doesn't have local administrator privileges on the remote system, the process needs access to network resources, or to run the process under a different account, provide a username and password of another user that the remote process should run under.


Don't load user profile: If checked, the specified user's account profile will not be loaded.


Interact with desktop session: Interact with the desktop of the specified session on the remote system (if checked and no session is specified, the process runs in the console session).


Run with elevation: If the target system is Vista or later, the process will run with the account's elevated token, if available. Note: This option requires PsExec v1.98 or later.


Run as limited user: Strips the Administrators group and allows only privileges assigned to the Users group.


Display UI on Winlogon secure desktop: Applies only when %COMPUTERNAME% is used in the Computer field.


Copy program to remote system: If checked, the program specified in the Command field will be copied to the Windows directory of the remote system and deleted after the program finishes running.  Otherwise, the program specified in the Command field must be available in the PATH environment variable of the remote system or the full path to the program (on the remote computer) must be specified.


Copy only if version number higher than on remote system: If checked, the program will only be copied if its version number is higher than the version on the remote system.


Copy even if file already exists on remote system: If checked, the program will be copied even if it already exists on the remote system.


Log PsExec output: If checked, all output from PsExec.exe will also be included in the build output.


Remote service name: Specifies the name PsExec assigns to its remote service (optional). This can improve performance when multiple users are interacting concurrently with a system, since each will have a dedicated PsExec service. Note: This option requires PsExec v2.0 or later.


Additional PsExec options: Specifies additional command-line arguments for PsExec.



Use of this tab requires that the SysInternals PsExec utility be available in a path of the PATH environment variable on the local computer (alternatively, PAExec can be used by overriding the PsExecCmd property).  See the Server.bld sample for sample steps to download PsExec and install it in the System path if not found (Visual Build must be run as administrator on Windows Vista and later in order to build).  See this SysInternals forum post for setup of remote execution.
Paths and filenames entered in the various fields must be valid paths and filenames relative to the remote computer.
To run a program with a graphic interface (GUI) remotely, uncheck the Hide application window checkbox on the Program tab.
When using PsExec v1.58 or later, if Wait for completion on the Advanced tab is unchecked and the process was successfully started on the remote computer, the process ID of the remote process will be stored in the RUNPROGRAM_PROCESSID temporary macro.
When calling PowerShell remotely, you must set the Input format field on the Options tab to None to work around a known issue that keeps PowerShell from exiting when the script finishes.