powershell-5.1-expert について
レガシーな Windows 環境で Windows PowerShell 5.1 スクリプトを扱うためのスキルです。WMI、ADSI、COM、DSC と旧システムとの互換性に重点を置いています。
主な機能
- 01WMI クエリとシステム管理
- 02ADSI とディレクトリ操作
- 03COM 自動化のガイダンス
- 04DSC と Windows 自動化
- 05旧スクリプトとの互換性
活用シーン
- 01WMI による Windows システムの照会
- 02ADSI による Active Directory 管理
- 03COM による Office や旧アプリの自動化
- 04旧版 Windows Server 向けスクリプトの保守
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill powershell-5.1-expertインストール後、Claude Code で/powershell-5.1-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/legacy_patterns.mdmigration_guide.mdps51_quickstart.mdscripts/deploy_dsc.ps1legacy_wrapper.tsmanage_legacy_ad.ps1query_wmi.ps1詳細
PowerShell 5.1 エキスパート
目的
レガシーな Windows 環境向けに、Windows PowerShell 5.1 の専門知識を提供します。WMI クエリ、ADSI 操作、COM オートメーション、および旧バージョンの Windows Server と互換性のあるスクリプトの保守を専門としています。
使用する場面
- Windows Server 2012/2016/2019 向けのスクリプト作成
- システム管理での WMI の使用
- ADSI 経由での Active Directory 操作
- COM オートメーション(Office、レガシーアプリ)
- 下位互換性の維持
- DSC(Desired State Configuration)
- Windows 固有の自動化
- レガシースクリプトの保守
クイックスタート
次の場合にこのスキルを呼び出します:
- Windows PowerShell 5.1 を特に扱う場合
- システムクエリに WMI を使用する場合
- ADSI または COM オブジェクトで自動化する場合
- レガシーな PowerShell スクリプトを保守する場合
- DSC による構成管理
次の場合は呼び出さないでください:
- クロスプラットフォームの PowerShell →
/powershell-7-expertを使用 - GUI/TUI の開発 →
/powershell-ui-architectを使用 - セキュリティ強化 →
/powershell-security-hardeningを使用 - モジュールのアーキテクチャ →
/powershell-module-architectを使用
判断の枠組み
PowerShell Version Context?
├── Must run on older Windows
│ └── Use 5.1 with WMI/ADSI
├── Cross-platform needed
│ └── Use PowerShell 7+ instead
├── AD Management
│ ├── Simple → ADSI
│ └── Complex → AD Module
└── System Info
├── Legacy → WMI
└── Modern → CIM (also works in 5.1)
主なワークフロー
1. WMI システムクエリ
- WMI クラス(Win32_*)を特定します
- WMI クエリを作成します
- Get-WmiObject または Get-CimInstance を使用します
- 結果を適切にフィルタリングします
- 出力を整形します
- リモートシステムでのエラーを処理します
2. ADSI 操作
- DirectoryEntry オブジェクトを作成します
- LDAP パスをたどります
- 属性をクエリまたは変更します
- 変更する場合は変更をコミットします
- 認証を処理します
- リソースをクリーンアップします
3. COM オートメーション
- New-Object -ComObject で COM オブジェクトを作成します
- オブジェクトモデルにアクセスします
- 操作を実行します
- COM エラーを処理します
- COM オブジェクトを適切に解放します
- [System.Runtime.InteropServices.Marshal] でクリーンアップします
ベストプラクティス
- 可能な場合は WMI より CIM コマンドレットを使用します(リモート処理に優れています)
- リモート操作では必ずエラー処理を含めます
- メモリリークを防ぐため、COM オブジェクトを明示的に解放します
- 対象の Windows バージョンでテストします
- 必要な PowerShell モジュールを文書化します
- 関数には承認済みの動詞を使用します
アンチパターン
| アンチパターン | 問題 | 適切な方法 |
|---|---|---|
| COM を解放しない | メモリリーク | 明示的にクリーンアップする |
| 低速ネットワークでの WMI | パフォーマンスの問題 | セッションを使用して CIM を使う |
| エラー処理がない | エラーが表面化しない | ログ記録を伴う Try/Catch |
| パスのハードコード | 移植性の問題 | 環境変数を使用する |
| 出力に Write-Host を使う | 出力を取得できない | Write-Output または return を使う |
コメント
Markdown 対応