Home / Microsoft / Windows / 【2026年最新版】Windows PowerShellスクリプト作成・活用完全ガイド

【2026年最新版】Windows PowerShellスクリプト作成・活用完全ガイド

※本ページにはプロモーション(広告)が含まれています

【2026年最新版】Windows PowerShellスクリプト作成・活用完全ガイド

PowerShellはWindowsに標準搭載されている強力なシェルおよびスクリプト言語です。コマンドプロンプトより高機能で、ファイル操作の自動化、システム管理、定期タスクの実行など幅広い用途に活用できます。この記事では基本コマンドレットからスクリプト作成・実行ポリシー設定まで、丁寧に解説します。

この記事でわかること

  • PowerShellとコマンドプロンプトの違い
  • PowerShellの起動方法(複数の方法)
  • よく使う基本コマンドレット一覧
  • スクリプトファイル(.ps1)の作成と実行方法
  • 実行ポリシーの設定と変更方法
  • 実際に使える自動化スクリプト例
PowerShell起動・基本操作画面

PowerShellとは・コマンドプロンプトとの違い

PowerShellはMicrosoftが開発したシェルおよびスクリプト言語で、Windows 7以降に標準搭載されています。2016年以降はオープンソース化され、macOSやLinuxでも動作します(PowerShell Core / PowerShell 7)。

PowerShellとコマンドプロンプトの比較

比較項目 コマンドプロンプト PowerShell
出力形式 テキストのみ オブジェクト(プロパティ・メソッドを持つ)
スクリプト機能 バッチファイル(.bat) PowerShellスクリプト(.ps1)
.NETとの連携 なし 完全対応
パイプライン テキスト渡し オブジェクト渡し(より強力)
エラーハンドリング 限定的 try-catchで本格的な例外処理が可能
モジュール拡張 なし PowerShell Gallery経由で数千のモジュールが利用可能

PowerShellの起動方法

方法1:スタートメニューから

  1. スタートボタンをクリック
  2. 「PowerShell」と入力
  3. 「Windows PowerShell」または「PowerShell 7」をクリック
  4. 管理者権限が必要な場合は「管理者として実行」を選択

方法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)の作成と実行

スクリプトファイルの作成

  1. メモ帳やVisual Studio Codeを開く
  2. PowerShellコードを記述する
  3. ファイルを .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を活用してみてください。

Check Also

Windowsディスククリーンアップ最適化ガイド

【2026年最新版】Windowsのディスククリーンアップ・ストレージ最適化完全ガイド

「Cドライブの空き容量が不足し …