Ironman Software Forums
Continue the conversion on the Ironman Software forums. Chat with over 1000 users about PowerShell, PowerShell Universal, and PowerShell Pro Tools.
PowerShell Universal is a platform for building custom, web-based tools with PowerShell. One of the features of PSU is the ability to build web forms for your PowerShell scripts. In this post, we’ll look at three ways to do this.
PowerShell Universal provides the ability to run ad-hoc scripts using the admin console. The platform can parse the basic parameters within the param
block of a script and present a form based on the types of parameters shown.
First, you will need to create a script. Click Automation \ Scripts and then Create New Script. To create a basic form, just specify a param
block like you would in any PowerShell script. In the below example, we use various types of parameters.
param(
$String,
[string]$String2,
[string[]]$StringArray,
[DateTime]$DateTime,
[bool]$Switch,
[int]$Number,
[Switch]$Switch2,
[System.DayOfWeek]$DayOfWeek
)
$String
$String2
$StringArray
$DateTime
$Switch
$Number
$Switch
$DayOfWeek
When you click Run, you will be presented with a form that contains fields for each parameter.
Once you run the script, you will see the output for each parameter within the Output pane.
Oct 24, 2021 4:23 PM Test
Oct 24, 2021 4:23 PM Test2
Oct 24, 2021 4:23 PM test123
Oct 24, 2021 4:23 PM test1231
Oct 24, 2021 4:23 PM Monday, September 27, 2021 4:23:32 PM
Oct 24, 2021 4:23 PM True
Oct 24, 2021 4:23 PM 123123
Oct 24, 2021 4:23 PM True
Oct 24, 2021 4:23 PM Thursday
You can include help text within your forms by using the HelpMessage
property of the ParameterAttribute
.
param(
[Parameter(HelpMessage = 'Enter your name')]
$Name
)
$Name
If you hover your cursor over the tooltip, the help message will be shown.
Required parameters can be specified by using the Mandatory
property of the ParameterAttribute
.
param(
[Parameter(Mandatory)]
$Name
)
$Name
Required parameters need to be filled out before the script can be run.
Pages provide more configuration of the user experience. A form within a page executes a script or API after the user enters the information into the form.
To create a page, click User Interfaces \ Pages and click Create New Page. View the page and then click Edit in the top right.
Next, click Toolbox and navigate to the Data Input tab.
You can resize and reposition the form on the page by dragging the bottom right corner or the middle of the component. Click the blue edit button in the top right to modify the properties of the form. The first setting to ensure that you configure is the script to run. Each field the user enters will be passed as a parameter to the script.
Next, you can define the fields for your page. There are 10 field types to choose from including text boxes, check boxes and selects.
Once you’ve defined your fields, save the form and then save the page. The resulting page will contain the form. Users will be able to enter data and the script will be called.
Dashboards allow for the creation of complex, dynamic websites, including forms, using PowerShell. The Universal Dashboard framework provides over 40 controls to create interactive websites. You can take advantage of the input and form controls to build complex forms.
To create a new dashboard, you can click User Interfaces \ Dashboards and then click Create New Dashboard. Once the dashboard has been created, click the details button. You will see the code editor for specifying the contents of the interface.
The below example is a multi-step form that defines several pages worth of input controls. When using the stepper, you can validate input, adjust steps based on user data and call any PowerShell cmdlet when the form has been submitted.
New-UDStepper -Steps {
New-UDStep -OnLoad {
New-UDTextbox -Id 'firstName' -Label "First Name" -Value $EventData.Context.firstName
New-UDTextbox -Id 'lastName' -Label "Last Name" -Value $EventData.Context.lastName
} -Label "Name"
New-UDStep -OnLoad {
New-UDCheckbox -Id 'email' -Label 'Create Email Address'
} -Label "Email"
New-UDStep -OnLoad {
New-UDDatePicker -Id 'startDate' -Label 'Specify a start date for this employee'
} -Label "Start Date"
} -OnFinish {
New-UDTypography -Text 'User has been created!' -Variant h3
New-UDElement -Tag 'div' -Id 'result' -Content {$Body}
}
The resulting dashboard will contain a single page with the stepper. As you move through the stepper, data will be collected and displayed at the end.
You can use PowerShell Universal for free.
Find this useful? Please consider sharing this article. Have a question about PowerShell? Contact us and we'll write a post about it.
Continue the conversion on the Ironman Software forums. Chat with over 1000 users about PowerShell, PowerShell Universal, and PowerShell Pro Tools.
Receive once-a-month updates about Ironman Software. You'll learn about our product updates and blogs related to PowerShell.