Command tasks in Royal TS are very versatile and can be used for many different things. You can use them in context of a connection to quickly execute a command like ping while using the computer name/IP address of the selected computer(s) using “replacement tokens”. You can also use command tasks to be executed before you connect to a connection or after you disconnected from one by setting up the Connect Task and Disconnect Task configuration in the connection properties or the parent folder if you specified to use the settings inherited from the parent folder.
To explore command tasks, open the help document from within Royal TS (press F1 or by using the Help ribbon tab) and read the Command Task topics.
By using replacement tokens you can easily access all configuration settings of the context connection, such as computer name/IP as mentioned above but also things you put in one of the Custom Fields, for example. This makes the use of tasks more powerful and flexible.
Sometimes you need to pass in values which are “more dynamic”. Values like session IDs or an often changed password/pin code which cannot really be stored in one of your objects because they change every minute or so (RSA SecureID tokens). While we are planning some advanced features around tasks and prompts in one of our next major releases, I just want to share a quick and effective way to implement prompts using out-of-the-box functionality in Windows.
Let’s assume a scenario where you need to establish a VPN tunnel with a VPN client but the password used in the VPN client command arguments is a dynamic, often changed pin code. For demonstration purposes I will create a command which prompts for input and then writes it to the console using the ECHO statement:
Let’s have a look at the command in more detail:
cmd.exe /v:on /c "set /p PWD=Password: & echo !PWD! & pause"
To test this, you can put the above line in a command prompt window and see the results.
Here’s what’s happening:
Commandwe start in our task is
/v:onargument tells the command prompt to expand environment variables at execution time using the
!character as delimiter (instead of
cmd.exe /?for more information.
/cargument we actually tell what command we want to execute
&character we chain multiple commands together
set /p PWD=Password:
/Pallows you to prompt for a string and assign it to an environment variable
PWDis the environment variable name we use to store the prompted input string
Password:is the “prompt string” which is displayed in the command prompt
ECHOcommand. This is just for demonstration. In a real world scenario this would be the command to open a VPN tunnel which needs the password submitted as argument. Something like:
connect.exe /user:skoell /password:!PWD!
When you replace the
ECHO statement with the actual call to your VPN client application and assign this command task as a connect task in your connection properties, you can easily create simple prompts with no fancy add-on tools, etc.
Of course, this technique can also be used for lots of other stuff. You can chain commands together in this way to display some information (for example a list of tasks), prompt for the task ID to kill and kill the entered task. The sky is the limit…