PowerShell Safe Invocation

Empêche les scripts PowerShell de casser sur les chemins entre guillemets, Invoke-Expression, et les subtilités de Start-Process.

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

Testé · Fonctionne ★ 9.2/10

PowerShell Safe Invocation — Empêche les scripts PowerShell de casser sur les chemins entre guillemets, Invoke-Expression, et les subtilités de Start-Process.

Ce que fait

Couvre les patterns d'invocation sûrs pour PowerShell sous Windows : passage d'arguments par tableau plutôt que construction de chaînes, splatting de hashtable avec -LiteralPath, quand utiliser Start-Process vs ProcessStartInfo, et les différences entre PowerShell 5.1 et 7. Se déclenche lors de l'écriture ou du débogage de PowerShell qui appelle des programmes natifs, gère des chemins entre guillemets/avec caractères spéciaux, ou nécessite un dépannage shell.

Rapport de test

Demandé un wrapper PowerShell autour d'un converter.exe avec un chemin contenant espaces/crochets : la base par défaut construisait une chaîne + Invoke-Expression (exactement ce que le skill désigne comme interdit), la version skill utilisait le splatting par tableau avec & et une capture explicite de $LASTEXITCODE — une vraie classe de bug de quoting évitée.

Testé le: 2026-07-13 · Claude Code 2.x (agent harness)

Installation

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

Commandes et exemples de prompts

  • /powershell-safe-invocationEmpêche les scripts PowerShell de casser sur les chemins entre guillemets, Invoke-Expression, et les subtilités de Start-Process.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • 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