PowerShell Universal er en platform til at bygge brugerdefinerede, webbaserede værktøjer med PowerShell. En af styrkerne er muligheden for at bygge webformularer til dine PowerShell-scripts. I dette indlæg ser vi på tre måder at gøre det på.
Automatiske webformularer med scriptparametre
PowerShell Universal kan køre ad hoc-scripts fra administratorkonsollen. Platformen fortolker de grundlæggende parametre i et scripts param-blok og viser en formular ud fra disse parametertyper.
Oprettelse af en formular med en param-blok
Opret først et script. Klik på Automation > Scripts og derefter på Create New Script. For at oprette en grundlæggende formular angiver du en param-blok, ligesom du ville gøre i et hvilket som helst PowerShell-script. I eksemplet nedenfor bruger vi flere parametertyper:
param(
$String,
[string]$String2,
[string[]]$StringArray,
[DateTime]$DateTime,
[bool]$Switch,
[int]$Number,
[Switch]$Switch2,
[System.DayOfWeek]$DayOfWeek
)
$String
$String2
$StringArray
$DateTime
$Switch
$Number
$Switch2
$DayOfWeek
Når du klikker på Run, får du en formular med felter til hver parameter.
Når du har kørt scriptet, ser du outputtet for hver parameter i ruden Output.
Hjælpetekst
Du kan medtage hjælpetekst i dine formularer med egenskaben HelpMessage på ParameterAttribute:
param(
[Parameter(HelpMessage = 'Enter your name')]
$Name
)
$Name
Hold markøren over værktøjstippet, så vises hjælpeteksten.
Obligatoriske parametre
Markér obligatoriske parametre med egenskaben Mandatory på ParameterAttribute:
param(
[Parameter(Mandatory)]
$Name
)
$Name
Obligatoriske parametre skal udfyldes, før scriptet kan køre.
Enkle webformularer på sider
Pages giver dig mere kontrol over brugeroplevelsen. En formular på en side kører et script eller et API, når brugeren har indtastet sine oplysninger.
For at oprette en side skal du klikke på User Interfaces > Pages og derefter på Create New Page. Vis siden, og klik på Edit øverst til højre.
Åbn derefter Toolbox, og gå til fanen Data Input.
Tilpas størrelse og placering af formularen ved at trække i nederste højre hjørne eller i midten af komponenten. Klik på den blå redigeringsknap øverst til højre for at ændre formularens egenskaber. Den første indstilling, du skal konfigurere, er det script, der skal køre. Hvert felt, brugeren udfylder, sendes som en parameter til det script.
Definer derefter felterne på din side. Der er 10 felttyper at vælge imellem, herunder tekstfelter, afkrydsningsfelter og valglister.
Når du har defineret dine felter, skal du gemme formularen og derefter gemme siden. Den færdige side indeholder formularen. Brugerne kan indtaste data, og scriptet bliver kaldt.
Komplekse, dynamiske formularer i dashboards
Med dashboards kan du bygge komplekse, dynamiske websteder (herunder formularer) med PowerShell. Frameworket Universal Dashboard har over 70 kontrolelementer til interaktive websteder. Du kan bruge input- og formularkontrolelementerne til at bygge mere avancerede formularer.
For at oprette et nyt dashboard skal du klikke på User Interfaces > Dashboards og derefter på Create New Dashboard. Når det findes, skal du klikke på detaljeknappen. Du ser kodeeditoren til brugerfladens indhold.
Eksemplet nedenfor er en formular i flere trin med flere sider af inputkontrolelementer. Med en stepper kan du validere input, justere trin ud fra brugerens data og kalde en hvilken som helst PowerShell-cmdlet, når formularen sendes:
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}
}
Det færdige dashboard viser en enkelt side med stepperen. Efterhånden som du bevæger dig gennem trinnene, indsamles dataene og vises til sidst.
Prøv det selv
Du kan bruge Developer-udgaven gratis. Klar til at bygge? Download PowerShell Universal.

Adam Driscoll