PowerShell Universal es una plataforma para crear herramientas web personalizadas con PowerShell. Una de sus fortalezas es la posibilidad de crear formularios web para sus scripts de PowerShell. En esta entrada veremos tres formas de hacerlo.
Formularios web automáticos con parámetros de script
PowerShell Universal puede ejecutar scripts ad hoc desde la consola de administración. La plataforma analiza los parámetros básicos del bloque param de un script y presenta un formulario según esos tipos de parámetros.
Crear un formulario con un bloque param
Primero, cree un script. Haga clic en Automation > Scripts y luego en Create New Script. Para un formulario básico, especifique un bloque param como en cualquier script de PowerShell. En el ejemplo siguiente usamos varios tipos de parámetros:
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
Cuando haga clic en Run, obtendrá un formulario con campos para cada parámetro.
Una vez ejecutado el script, verá la salida de cada parámetro en el panel Output.
Texto de ayuda
Puede incluir texto de ayuda en sus formularios con la propiedad HelpMessage de ParameterAttribute:
param(
[Parameter(HelpMessage = 'Enter your name')]
$Name
)
$Name
Pase el cursor sobre el tooltip y aparecerá el mensaje de ayuda.
Parámetros obligatorios
Marque los parámetros obligatorios con la propiedad Mandatory de ParameterAttribute:
param(
[Parameter(Mandatory)]
$Name
)
$Name
Los parámetros obligatorios deben rellenarse antes de poder ejecutar el script.
Formularios web sencillos en Pages
Las Pages le dan más control sobre la experiencia del usuario. Un formulario en una página ejecuta un script o una API después de que el usuario introduce su información.
Para crear una página, haga clic en User Interfaces > Pages y luego en Create New Page. Visualice la página y haga clic en Edit en la parte superior derecha.
A continuación, abra Toolbox y vaya a la pestaña Data Input.
Cambie el tamaño y la posición del formulario arrastrando la esquina inferior derecha o el centro del componente. Haga clic en el botón de edición azul de la parte superior derecha para cambiar las propiedades del formulario. La primera opción que debe configurar es el script que se ejecutará. Cada campo que rellene el usuario se pasa como parámetro a ese script.
A continuación, defina los campos de su página. Hay 10 tipos de campo entre los que elegir, incluidos cuadros de texto, casillas de verificación y listas de selección.
Cuando haya definido los campos, guarde el formulario y después la página. La página resultante contiene el formulario. Los usuarios pueden introducir datos y se llama al script.
Formularios dinámicos complejos en paneles
Los paneles permiten crear sitios web complejos y dinámicos (incluidos formularios) con PowerShell. El framework Universal Dashboard ofrece más de 70 controles para sitios interactivos. Puede usar los controles de entrada y de formulario para crear formularios más avanzados.
Para crear un panel nuevo, haga clic en User Interfaces > Dashboards y luego en Create New Dashboard. Cuando exista, haga clic en el botón de detalles. Verá el editor de código para el contenido de la interfaz.
El ejemplo siguiente es un formulario de varios pasos con varias páginas de controles de entrada. Con un stepper, puede validar la entrada, ajustar los pasos según los datos del usuario y llamar a cualquier cmdlet de PowerShell al enviar el formulario:
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}
}
El panel resultante muestra una sola página con el stepper. A medida que avanza por los pasos, se recopilan los datos y se muestran al final.
Pruébelo usted mismo
Puede usar la edición Developer de forma gratuita. ¿Listo para crear? Descargue PowerShell Universal.

Adam Driscoll