※本ページにはプロモーション(広告)が含まれています
【2026年最新版】Windows PowerShellスクリプト作成・活用完全ガイド
PowerShellはWindowsに標準搭載されている強力なシェルおよびスクリプト言語です。コマンドプロンプトより高機能で、ファイル操作の自動化、システム管理、定期タスクの実行など幅広い用途に活用できます。この記事では基本コマンドレットからスクリプト作成・実行ポリシー設定まで、丁寧に解説します。
この記事でわかること
- PowerShellとコマンドプロンプトの違い
- PowerShellの起動方法(複数の方法)
- よく使う基本コマンドレット一覧
- スクリプトファイル(.ps1)の作成と実行方法
- 実行ポリシーの設定と変更方法
- 実際に使える自動化スクリプト例

PowerShellとは・コマンドプロンプトとの違い
PowerShellはMicrosoftが開発したシェルおよびスクリプト言語で、Windows 7以降に標準搭載されています。2016年以降はオープンソース化され、macOSやLinuxでも動作します(PowerShell Core / PowerShell 7)。
PowerShellとコマンドプロンプトの比較
| 比較項目 | コマンドプロンプト | PowerShell |
|---|---|---|
| 出力形式 | テキストのみ | オブジェクト(プロパティ・メソッドを持つ) |
| スクリプト機能 | バッチファイル(.bat) | PowerShellスクリプト(.ps1) |
| .NETとの連携 | なし | 完全対応 |
| パイプライン | テキスト渡し | オブジェクト渡し(より強力) |
| エラーハンドリング | 限定的 | try-catchで本格的な例外処理が可能 |
| モジュール拡張 | なし | PowerShell Gallery経由で数千のモジュールが利用可能 |
PowerShellの起動方法
方法1:スタートメニューから
- スタートボタンをクリック
- 「PowerShell」と入力
- 「Windows PowerShell」または「PowerShell 7」をクリック
- 管理者権限が必要な場合は「管理者として実行」を選択
方法2:Windowsターミナルから
Windows 11ではWindowsターミナルがデフォルトで搭載されています。タスクバーを右クリックして「Windowsターミナル」を開き、タブでPowerShellとコマンドプロンプトを切り替えられます。
方法3:ショートカットキー
Win+Xキーを押してクイックアクセスメニューを開き、「Windows PowerShell」または「Windows PowerShell(管理者)」を選択します。
基本コマンドレット一覧
PowerShellのコマンドはコマンドレット(Cmdlet)と呼ばれ、「動詞-名詞」の形式で統一されています。
| コマンドレット | 説明 | 使用例 |
|---|---|---|
| Get-Location | 現在のディレクトリを表示(cdと同等) | Get-Location |
| Set-Location | ディレクトリを移動 | Set-Location C:\Users |
| Get-ChildItem | ファイル・フォルダ一覧を取得 | Get-ChildItem -Path C:\ |
| Copy-Item | ファイルをコピー | Copy-Item file.txt backup.txt |
| Move-Item | ファイルを移動・名前変更 | Move-Item old.txt new.txt |
| Remove-Item | ファイル・フォルダを削除 | Remove-Item temp.txt |
| New-Item | 新しいファイル・フォルダを作成 | New-Item -Type Directory myfolder |
| Get-Content | ファイルの内容を表示 | Get-Content log.txt |
| Set-Content | ファイルに内容を書き込む | Set-Content file.txt “Hello” |
| Get-Process | 実行中のプロセス一覧を取得 | Get-Process | Sort-Object CPU -Desc |
| Stop-Process | プロセスを終了 | Stop-Process -Name notepad |
| Get-Service | Windowsサービス一覧を取得 | Get-Service | Where-Object Status -eq “Running” |

実行ポリシーの設定
PowerShellにはセキュリティのための実行ポリシーがあり、デフォルトではスクリプトの実行が制限されています。
実行ポリシーの種類
| ポリシー名 | 説明 | 推奨場面 |
|---|---|---|
| Restricted | スクリプトの実行を完全に禁止(デフォルト) | スクリプトを使わない場合 |
| RemoteSigned | ローカルスクリプトは実行可。インターネットからのスクリプトはデジタル署名が必要 | 個人利用・開発環境(推奨) |
| AllSigned | すべてのスクリプトにデジタル署名が必要 | 企業環境 |
| Unrestricted | すべてのスクリプトを実行可(警告は表示) | テスト環境のみ |
| Bypass | すべてのスクリプトを警告なしで実行 | CI/CDパイプライン等 |
実行ポリシーを確認・変更する
# 現在の実行ポリシーを確認 Get-ExecutionPolicy # 実行ポリシーを変更(管理者として実行が必要) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
PowerShellスクリプト(.ps1)の作成と実行
スクリプトファイルの作成
- メモ帳やVisual Studio Codeを開く
- PowerShellコードを記述する
- ファイルを
.ps1拡張子で保存(例:myscript.ps1)
スクリプトの実行方法
# フルパスで実行 C:\Scripts\myscript.ps1 # 現在のディレクトリのスクリプトを実行 .\myscript.ps1
基本的なスクリプト構文例
# 変数の宣言
$name = "PowerShell"
$number = 42
# 文字列の出力
Write-Host "Hello, $name!"
# 条件分岐
if ($number -gt 10) {
Write-Host "10より大きい"
} else {
Write-Host "10以下"
}
# ループ
for ($i = 1; $i -le 5; $i++) {
Write-Host "カウント: $i"
}
# 配列
$fruits = @("りんご", "バナナ", "みかん")
foreach ($fruit in $fruits) {
Write-Host $fruit
}
実際に使える自動化スクリプト例
例1:古いファイルを自動バックアップするスクリプト
# 指定フォルダの30日以上前のファイルをバックアップフォルダに移動
$sourceFolder = "C:\Users\UserName\Documents"
$backupFolder = "C:\Backup"
$days = 30
# バックアップフォルダが存在しない場合は作成
if (-not (Test-Path $backupFolder)) {
New-Item -Type Directory -Path $backupFolder
}
# 古いファイルを移動
Get-ChildItem -Path $sourceFolder -File |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } |
Move-Item -Destination $backupFolder
Write-Host "バックアップ完了"
例2:システム情報をCSVに出力するスクリプト
# 実行中プロセスのCPU使用率上位10件をCSVに出力
Get-Process |
Sort-Object CPU -Descending |
Select-Object -First 10 Name, CPU, WorkingSet |
Export-Csv -Path "C:\process_report.csv" -NoTypeInformation -Encoding UTF8
Write-Host "レポートを保存しました: C:\process_report.csv"

よくある質問(FAQ)
Q1. 「このシステムではスクリプトの実行が無効になっています」というエラーが出ます
実行ポリシーがRestrictedに設定されているためです。管理者としてPowerShellを起動し、Set-ExecutionPolicy RemoteSigned -Scope CurrentUser を実行して実行ポリシーを変更してください。
Q2. PowerShellとPowerShell 7(Core)の違いは何ですか?
Windows標準のPowerShell(5.1)はWindowsのみ対応です。PowerShell 7はオープンソース版で、Windows、macOS、Linuxすべてで動作します。PowerShell 7の方が新機能が多く、クロスプラットフォームスクリプトを書く場合はPowerShell 7が推奨されます。
Q3. スクリプト実行中にエラーが発生した場合、処理を止めるにはどうすればいいですか?
try-catchブロックを使ってエラーをハンドリングできます。$ErrorActionPreference = "Stop" を設定することで、エラー発生時に自動的に処理を停止させることもできます。
Q4. コマンドレットの使い方を調べるにはどうすればいいですか?
Get-Help コマンドレット名 でヘルプを表示できます。例えば Get-Help Get-ChildItem -Full で詳細な使い方と例が確認できます。Get-Help Get-ChildItem -Examples で使用例のみを表示することもできます。
Q5. PowerShellスクリプトをWindowsのタスクスケジューラで定期実行するには?
タスクスケジューラを開き、「タスクの作成」→「操作」タブで「プログラム/スクリプト」に powershell.exe、「引数の追加」に -ExecutionPolicy Bypass -File "C:\Scripts\myscript.ps1" を設定することで定期実行できます。
Q6. PowerShellでWebサイトからファイルをダウンロードできますか?
はい、Invoke-WebRequest コマンドレットを使ってファイルをダウンロードできます。例:Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "C:\Downloads\file.zip"
まとめ
PowerShellはWindowsの自動化・管理において非常に強力なツールです。最初はコマンドプロンプトより複雑に感じるかもしれませんが、基本的なコマンドレットを覚えるだけで日常的な作業を大幅に効率化できます。
スクリプト作成においては、まず繰り返し行っている手作業を特定して自動化することから始めるのがおすすめです。ファイルの整理、レポート作成、定期バックアップなどの作業をPowerShellスクリプトで自動化すれば、貴重な時間を節約できます。この記事を参考に、ぜひPowerShellを活用してみてください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!