PowerShell Safe Invocation

Evita che gli script PowerShell si rompano su path con virgolette, Invoke-Expression e stranezze di Start-Process.

di Misaka-Mikoto-Tech · Misaka-Mikoto-Tech/agent-skills

Promosso ★ 9.2/10

PowerShell Safe Invocation — Evita che gli script PowerShell si rompano su path con virgolette, Invoke-Expression e stranezze di Start-Process.

Cosa fa

Copre i pattern di invocazione sicura per PowerShell su Windows: passaggio di argomenti basato su array invece che su string-building, splatting di hashtable con -LiteralPath, quando usare Start-Process rispetto a ProcessStartInfo, e le differenze tra PowerShell 5.1 e 7. Si attiva quando si scrive o si fa debug di PowerShell che chiama programmi nativi, gestisce path con virgolette/caratteri speciali, o richiede troubleshooting della shell.

Rapporto di test

Ho chiesto un wrapper PowerShell attorno a un converter.exe con un path contenente spazi e parentesi: la baseline è andata di default su string-building + Invoke-Expression (esattamente ciò che lo skill segnala come vietato), la versione con lo skill ha usato lo splatting su array con & e la cattura esplicita di $LASTEXITCODE — un'intera classe di bug di quoting evitata.

Testato il: 2026-07-13 · Claude Code 2.x (agent harness)

Installazione

git clone https://github.com/Misaka-Mikoto-Tech/agent-skills
cd agent-skills
mkdir -p ~/.claude/skills
cp -r skills/powershell-safe-invocation ~/.claude/skills/powershell-safe-invocation

Comandi e prompt di esempio

  • /powershell-safe-invocationEvita che gli script PowerShell si rompano su path con virgolette, Invoke-Expression e stranezze di Start-Process.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Write a PowerShell script that calls an exe with a spaced file path
  • My Start-Process -ArgumentList call isn't passing arguments correctly
  • Help me safely invoke a native program from PowerShell without quoting bugs