PowerShell 学習資料

Windows PowerShell 5.1 と PowerShell 7 の両対応 / 全 12 章 + 付録3本

📅 作成: 2026-08-22 / 更新: 2026-08-26 / 対象: 何らかのプログラミング言語の基礎を知っている方

この資料について

PowerShell を「コマンドを暗記する道具」ではなく「調べ方が分かれば自走できる道具」として身につけるための資料です。JavaScript・Java・C#・VBA いずれかの経験を前提に、他の言語と違う部分だけを重点的に扱います。

掲載しているコードと出力は、すべて実際に実行して確認しています。
「たぶんこう動く」ではなく、実機で確かめた結果だけを載せています。バイト列・終了コード・エラーメッセージも実物です。

本編 全 12 章

付録

本編は順に読む資料ですが、付録は必要になったときに引くものです。

1. 4部構成と読む順序

第1部 基礎編 01 生まれた経緯 02 ファイル形式と文字コード 03 実行環境と実行ポリシー 04 変数・型・演算子 05 パイプラインとオブジェクト 第2部 実践編 06 制御構文と関数 07 ファイル・テキスト操作 08 エラー処理とデバッグ 09 実務パターン集 第3部 演習 10 ハンズオン課題 全5回分 第4部 発展編 11 C# を埋め込む 12 Office と COM 必要になってからでよい 読んで分かる 書けるようになる 一人で作れる 限界を超える 各部の到達目標 付録 — 順に読まず、必要になったときに引く A1 逆引き 症状・コマンド・JavaScript・用語から引く A2 テンプレ集 コピーして使う雛形6種 A3 モジュール 業務で使える厳選8本と導入の実務
図 1 — 01 から順に読むのが基本。02・03 は環境が整わないと以降が動かせないため必須。第4部と付録は、必要になったときに読めばよい

目的別の読み方

目的読む順序目安
とにかく動かしたい02 → 03 → 10 の課題21時間
PowerShell らしい書き方を知りたい05(山場)→ 04 → 062時間
既存スクリプトを直したい07 → 08 →(必要に応じて 04)1.5時間
業務を自動化したい01〜09 を順に → 09 のパターンを改造1日
勉強会で使いたい4. 勉強会で使う場合 → 10
時間がないなら 05 章だけでも読んでください。
「画面の表示とデータは別物」「迷ったら Get-Memberの2つが分かれば、あとは実行環境が教えてくれます。この資料に載っていないコマンドも自力で扱えるようになります。

2. この資料の約束事

表記意味
pwsh 7PowerShell 7 以降でのみ使える/挙動が異なる
5.1Windows PowerShell 5.1 固有の注意点
(バッジなし)両方で同じように動く
「PowerShell が初めての人へ」JS 以外の言語経験者向けの補足。読み飛ばして構わない
C:¥Users表示は円記号だが、実体はバックスラッシュ。コピペすれば正しく動く

3. 目的から引く — 逆引き索引

困っていることから探す

ここにはよくある入口だけを並べています。網羅した索引は A1. 逆引き にあり、症状・コマンド名・JavaScript・用語の4つの入口から引けます。

症状・やりたいこと参照先
日本語が文字化けする02.2 BOM とバージョンの関係07.3 読み書きの文字コード
スクリプトが実行できない03.2 実行ポリシー
ダブルクリックで動かしたい02.4 cmd ランチャー
5.1 と 7 のどちらで動いているか知りたい03.1 $PSVersionTable
比較がうまくいかない(大文字小文字)04.3 -ceq / -creplace
パスにバックスラッシュを書きたい04.2 エスケープはバッククォート
コマンドの結果から値を取り出せない05.2 Get-Member
知らないコマンドの使い方を調べたい05.5 Get-Command / Get-Help
関数の戻り値に余計な値が混ざる06.3 戻り値の落とし穴
配列が1件のとき壊れる06.3 return ,$a
Get-ChildItem が 0 件しか返さない07.2 0 件になる3つの理由
JSON の一部が欠ける07.4 -Depth の既定は 2
try/catch が効かない08.1 非終了エラー
外部コマンドの失敗を検知したい08.3 $LASTEXITCODE
ログを集計したい09.1 ログの集計
安全に一括リネームしたい09.2 -WhatIf
タスクスケジューラから動かしたい09.4 無人実行
Office ファイルを PDF にしたい12.2 Word・Excel・PowerPoint の PDF 化
EXCEL.EXE / WINWORD.EXE が残る12.3 ReleaseComObject
ループが遅い。C# で書き直したい11.6 使いどころの見極め

困ったときの7行

何が返るか分からない  → | Get-Member
中身の値を見たい      → | Select-Object -First 1 | Format-List *
コマンドを忘れた      → Get-Command *keyword*
使い方が分からない    → Get-Help <コマンド> -Examples
0 件しか返らない      → 07.2 の3つの理由を確認
文字化けする          → 読み書き両方の -Encoding を確認
エラーが捕まらない    → -ErrorAction Stop を付ける
PowerShell でつまずく場面の大半は、この7行のどれかです。
コマンドを暗記する必要はありません。困ったときにどれを試すかを知っていれば足ります。
ここに無い症状は A1.1 症状から引く に 48 項目あります。

関連ファイル

ファイル内容
docs/plan/構成案資料を作る側の文書。各章に何を書いたかの設計記録と、主催者向けの準備、資料のビルド手順
docs/A1-逆引き付録。4つの入口から本編へ引く索引。コマンド一覧は自動生成
docs/A2-テンプレ集付録。コピーして使う雛形6種
docs/A3-モジュール付録。業務で使えるモジュール厳選8本と、導入・オフライン配布

4. 勉強会で使う場合

この資料は全5回・1回90分の勉強会を想定して作ってあります。1人で読む場合はこの章を飛ばして構いません。

全5回の進行

扱うファイルゴールハンズオン
第1回01・02PowerShell が何を解決する道具かを言えるBOM なしで文字化けを再現する
第2回03・04自分の PC でスクリプトを実行できる環境構築 + Hello World の ps1 と cmd ランチャー
第3回05Get-Member で自力で調べられるプロセス一覧をメモリ順に並べて上位5件を出す
第4回06・07関数に切り出したスクリプトが書ける指定フォルダのファイル一覧を CSV 出力
第5回08・09・10実務スクリプトを1本完成させるログ集計スクリプトを課題形式で作る
第3回(05 パイプラインとオブジェクト)が山場です。
ここを理解できるかどうかで、PowerShell を「コマンドの寄せ集め」として使うか「オブジェクト指向シェル」として使えるかが分かれます。最も時間を割く回として組んでください。
11・12 章は勉強会では扱いません。
C# の埋め込みCOM / Office 操作は、PowerShell だけでは届かない場面に限った発展編です。全5回を終えたあと、必要になった人が各自で読めば足ります。

参加する前に

課題と解答例

ハンズオンの課題・解答例・つまずきどころは 10. ハンズオン課題 にまとまっています。5回分の課題がそのまま入っているので、進行役はこれを見ながら進められます。

主催する側の準備(サンプルデータの用意、社内の実行ポリシー確認、時間配分)は 構成案の6章 にあります。
参加するだけなら読む必要はありません。