Execute PowerShell scripts via .Net Blazor Server WebApp with real-time output
Useful for automation and user accessibility, this is a working .NET Blazor Server WebApp that asynchronously executes PowerShell scripts, and writes the Output, Information, Progress, Warning, and Error streams in real-time.
test.ps1 (included in this project):
for ($i=1; $i -le 5; $i++) {
Write-Progress "Loop $i - progress output (Write-Progress)"
Write-Information "Here's some information (Write-Information)"
Write-Output "Normal output text (Write-Output)"
Write-Warning "Here's some warning text (Write-Warning)"
Write-Error "Oh no, here's some error text (Write-Error)"
Start-Sleep -s 1
}
Looks like this...
-
PowerShell scripts must be non-interactive; there's no means to provide input back to PowerShell scripts once they're running.
-
Output must be written using
Write-Output
,Write-Information
,Write-Progress
,Write-Warning
, orWrite-Error
only. Output written withWrite-Host
cannot be captured and hence won't display. -
Ensure PowerShell Execution Policies have been sufficiently opened to allow scripts to run. If in doubt (and at own risk), as Administrator run:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Set-ExecutionPolicy Unrestricted -Scope Process
Note: for Visual Studio users, execute the above in Package Manager Console
- Place your PowerShell scripts in ~/Scripts/. .NET requires the path to be relative to the project, hence this location.