
powershell-expert
by aiskillstore
Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified.
SKILL.md
name: powershell-expert description: Develop PowerShell scripts, tools, modules, and GUIs following Microsoft best practices. Use when writing PowerShell code, creating Windows Forms/WPF interfaces, working with PowerShell Gallery modules, or needing cmdlet/module recommendations. Covers script development, parameter design, pipeline handling, error management, and GUI creation patterns. Verifies module availability and cmdlet syntax against live documentation when accuracy is critical.
PowerShell Expert
Develop production-quality PowerShell scripts, tools, and GUIs using Microsoft best practices and the PowerShell ecosystem.
Quick Reference
Script Structure
#Requires -Version 5.1
<#
.SYNOPSIS
Brief description.
.DESCRIPTION
Detailed description.
.PARAMETER Name
Parameter description.
.EXAMPLE
Example-Usage -Name 'Value'
#>
[CmdletBinding()]
param(
[Parameter(Mandatory, ValueFromPipeline)]
[ValidateNotNullOrEmpty()]
[string[]]$Name,
[switch]$Force
)
begin {
# One-time setup
}
process {
foreach ($item in $Name) {
# Per-item processing
}
}
end {
# Cleanup
}
Function Template
function Verb-Noun {
[CmdletBinding(SupportsShouldProcess)]
param(
[Parameter(Mandatory, Position = 0)]
[string]$Name,
[Parameter(ValueFromPipelineByPropertyName)]
[Alias('CN')]
[string]$ComputerName = $env:COMPUTERNAME,
[switch]$PassThru
)
process {
if ($PSCmdlet.ShouldProcess($Name, 'Action')) {
# Implementation
if ($PassThru) { Write-Output $result }
}
}
}
Workflow
1. Script Development
Follow naming and parameter conventions:
- Verb-Noun format with approved verbs (
Get-Verb) - Strong typing with validation attributes
- Pipeline support via
ValueFromPipeline - -WhatIf/-Confirm for destructive operations
See best-practices.md for complete guidelines.
2. GUI Development
Windows Forms for simple dialogs, WPF/XAML for complex interfaces:
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form -Property @{
Text = 'Title'
Size = New-Object System.Drawing.Size(400, 300)
StartPosition = 'CenterScreen'
}
See gui-development.md for controls, events, and templates.
3. PowerShell Gallery Integration
Search and install modules using PSResourceGet:
# Search gallery
Find-PSResource -Name 'ModuleName' -Repository PSGallery
# Install module
Install-PSResource -Name 'ModuleName' -Scope CurrentUser -TrustRepository
Use scripts/Search-Gallery.ps1 for enhanced search.
See powershellget.md for full cmdlet reference.
Key Patterns
Error Handling
try {
$result = Get-Content -Path $Path -ErrorAction Stop
}
catch [System.IO.FileNotFoundException] {
Write-Error "File not found: $Path"
return
}
catch {
throw
}
Splatting for Readability
$params = @{
Path = $sourcePath
Destination = $destPath
Recurse = $true
Force = $true
}
Copy-Item @params
Pipeline Best Practices
# Stream output immediately
foreach ($item in $collection) {
Process-Item $item | Write-Output
}
# Accept pipeline input
param(
[Parameter(ValueFromPipeline)]
[string[]]$InputObject
)
process {
foreach ($obj in $InputObject) {
# Process each
}
}
Module Recommendations
When recommending modules, search the PowerShell Gallery:
| Category | Popular Modules |
|---|---|
| Azure | Az, Az.Compute, Az.Storage |
| Testing | Pester, PSScriptAnalyzer |
| Console | PSReadLine, Terminal-Icons |
| Secrets | Microsoft.PowerShell.SecretManagement |
| Web | Pode (web server), PoshRSJob (async) |
| GUI | WPFBot3000, PSGUI |
Live Verification
You MUST verify information against live sources when accuracy is critical. Do not rely solely on training data for module availability or cmdlet syntax.
Tools to use:
- WebFetch: Retrieve and parse specific documentation URLs (PowerShell Gallery pages, Microsoft Docs)
- WebSearch: Find correct URLs when the exact path is unknown or to verify module existence
When Verification is Required
| Scenario | Action |
|---|---|
| User asks "does module X exist?" | MUST verify via PowerShell Gallery |
| Recommending a specific module | MUST verify it exists and isn't deprecated |
| Providing exact cmdlet syntax | SHOULD verify against Microsoft Docs |
| Module version requirements | MUST check gallery for current version |
| General best practices | Static references are sufficient |
Step 1: Verify Module on PowerShell Gallery
When recommending or checking a module, use the WebFetch tool to verify it exists:
WebFetch call:
- URL:
https://www.powershellgallery.com/packages/{ModuleName} - Prompt:
Extract: module name, latest version, last updated date, total downloads, and whether it shows any deprecation warning or 'unlisted' status
If WebFetch returns 404 or error: The module likely doesn't exist. Use the WebSearch tool to confirm:
- Query:
{ModuleName} PowerShell module site:powershellgallery.com
Step 2: Verify Cmdlet Syntax (When Needed)
Microsoft Docs URLs vary by module. Use the WebSearch tool to find the correct documentation page:
WebSearch call:
- Query:
{Cmdlet-Name} cmdlet site:learn.microsoft.com/en-us/powershell
Then use WebFetch on the returned URL with prompt:
- Prompt:
Extract the complete cmdlet syntax, required vs optional parameters, and PowerShell version requirements
Step 3: Fallback Strategies
If the WebFetch or WebSearch tools are unavailable or return errors:
-
For module verification: Execute
Search-Gallery.ps1from this skill:~/.claude/skills/powershell-expert/scripts/Search-Gallery.ps1 -Name 'ModuleName' -
For cmdlet syntax: Suggest the user run locally:
Get-Help Cmdlet-Name -Full Get-Command Cmdlet-Name -Syntax -
Clearly state uncertainty: If verification fails, tell the user:
"I wasn't able to verify this against live documentation. Please confirm the module exists by running:
Find-PSResource -Name 'ModuleName'"
Verification Examples
Good (verified with live data):
"The ImportExcel module (v7.8.10, updated Oct 2024, 17M+ downloads) provides Export-Excel for creating spreadsheets without Excel installed."
Bad (unverified claim):
"Use the Excel-Tools module to export data." ← May not exist!
Documentation Resources
- PowerShell Docs: https://learn.microsoft.com/en-us/powershell/
- Module Browser: https://learn.microsoft.com/en-us/powershell/module/
- PowerShell Gallery: https://www.powershellgallery.com
- GitHub Docs: https://github.com/MicrosoftDocs/PowerShell-Docs
References
- best-practices.md - Naming, parameters, pipeline, error handling, code style
- gui-development.md - Windows Forms, WPF, controls, events, templates
- powershellget.md - Find, install, update, publish modules
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon
