With Royal TS V3.1 we introduced a new PowerShell connection type which allows you to run any PowerShell script and display the results in a grid (for object data) or as text (like the console). In this quick tutorial I want to show how to pass on the connection credentials as parameters to be used in the script.
All you need in the script is a param script block where you define which parameters the script expects. In our example, the $usr and the $pwd, both string values are expected as script parameters:
Note: only named parameters are supported. Indexed parameters are not supported.
In the Parameters tab we can now map those with replacement tokens from Royal TS or any static value:
As Parameter Name, enter the name from the param script block without the $ character. As value, either enter just a static text or use a replacement token (like $EffectiveUsername$, $EffectivePassword$, $CustomField1$, etc.). The fly-out button shows a list of all available replacement tokens. Add all mappings you need to the list.
In our example, we will also configure Royal TS to prompt for a credential by setting up the Credentials configuration to Specify a credential by name and using the ? character as credential name - as described here. Once all is set up, you will get a credential prompt when you connect:
The sample script from above will just output whatever credentials we entered:
As you can see, the parameter mapping allows you to not only use credentials or values from the connection object, it also ensures that the script can be used *as is* without any modifications outside of Royal TS. There's no magic, only standards based named parameters used here.