← SkillSafe
PowerShell Clinic

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.

Try a sample:

1 Your script free

Drop the .ps1 / .psm1 file here, or

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

NOT RUN YET

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.