An independent checker for PowerShell scripts - not affiliated with Microsoft
PowerShell ClinicScripts that fail loudly, parse the way they read, and keep no secrets.
Paste a PowerShell script. Free in your browser: the pitfalls that make scripts misparse or fail silently - a cmdlet next to -and without parentheses, $null on the right, ConvertTo-Json without -Depth, a try that never catches, a native command whose exit code nobody checks - and the security holes: credentials in the script, SQL built by interpolation, Invoke-Expression, execution-policy bypasses. A run fixes the pitfalls, or hardens the script; the page re-scans the result and keeps every parameter.
1 Your script free
2 The scan free
Against the rules of the two PowerShell skills. Nothing leaves your browser for this part.
Where the problems are
Findings
3 The review or the security pass metered
The reply, as it came
Findings
The scan's calls
Secrets to create
Running it
Kept on purpose
Caveats
Diff
The script
Checked against the scan
Saved scripts
How it works
The scan reads the script with comments ignored and applies the rules of the powershell-windows skill (operator parentheses, null checks, error handling, JSON depth, paths, encoding) and the script-level checklist of the powershell-security skill (no credentials in the script, parameterized queries, no Invoke-Expression, validated parameters, signed scripts instead of bypassed policy, certificate checks left on).
The review and the security pass are written by a language model from your script and the scan's facts. The page holds the reply to the scan: every error and warning of the lane's family answered by rule id; the rewritten script re-scanned here, with every parameter and function still there; nothing PowerShell 7-only in a script that must run on 5.1; and every secret the hardened script reads listed so you can create it. Nothing is run - try it with -WhatIf and Invoke-ScriptAnalyzer first.