In my last blog I shared about Building a simple form using PowerShell Polaris module. Where I used HTML and CSS from code pen sight – Now, I decided to go pure PowerShell way! Yes, let us use PSHTML module which is designed and developed by our well know PowerShell MVP Stéphane van Gulick. If you are a PowerShell user you must follow him on twitter @stephanevg.
Our objective is to collect user information and post to some system for processing. For our example collect user information and render it on browser using PSHTML and Polaris module!
Go Get the PSHTML and Polaris Modules and build your RESTful or HTML web forms using PowerShell
PSHTML
html { head { title "Home Page" link -rel "stylesheet" -href "home.css" -type "text/css" } Body { hr { "Horizontal Line" } -Style "border-width: 2px" h1 { 'PSHTML ♥ Polaris!' } -Style "font-family: 'Candara';text-align:center" hr { "Horizontal Line" } -Style "border-width: 2px" form { "RequestForm" } -action "/MyResponse" -method 'post' -target '_blank' -style "font-family:Candara" -Content { "First Name" input -type text "FN" -style "font-family:Candara" "Last Name" input -type text "SN" "Submit" input -type submit "Submit" -style "font-family:Candara" } } }
POLARIS
Import-Module Polaris -Verbose Add-Type -AssemblyName System.Web $Url = "http://localhost:8080" New-PolarisGetRoute -Path "/MyRequest" -Scriptblock { $Response.SetContentType('text/html') $Html = .\form.ps1 $Response.Send($Html) } New-PolarisPostRoute -Path "/MyResponse" -Scriptblock { $Response.SetContentType('application/json') $Body = [System.Web.HttpUtility]::UrlDecode($Request.BodyString) $Data = @{} $Body.split('&') | %{ $part = $_.split('=') $Data.add($part[0], $part[1]) } $Response.Send(($Data | ConvertTo-Json)) } Start-Polaris -Port 8080