初心者でもわかる!PowerShellスクリプトの書き方と基本構文を徹底解説

Windowsの管理作業を自動化したいけれど、「PowerShellスクリプトって難しそう…」と思っていませんか?
PowerShellは、Windowsに標準搭載されている強力なシェルであり、簡単な構文でタスクを効率化できる便利なツールです。特に、スクリプトを書いておくことで、繰り返しの作業を自動化でき、業務効率が大きく向上します。

本記事では、PowerShellスクリプトの基本的な書き方から、よく使う構文や実践的なサンプルまで、初心者にもわかりやすく解説します。これからPowerShellを始めたい方、業務自動化に興味がある方にとって役立つ内容になっていますので、ぜひ最後まで読んでみてください。


PowerShellスクリプトとは?

PowerShellスクリプトとは、Windows PowerShellまたはPowerShell Coreで実行可能な命令の集合です。通常「.ps1」という拡張子のファイルに記述します。バッチファイルのように、複数のコマンドをまとめて実行することができ、複雑な処理も自動で行えます。

たとえば、ログファイルのバックアップや、サービスの状態チェック、ユーザーアカウントの一括作成など、あらゆる場面で活躍します。


スクリプト作成の準備と実行方法

1. 実行ポリシーの確認と変更

PowerShellではセキュリティ保護のため、スクリプトの実行に制限が設けられています。まずは現在の実行ポリシーを確認しましょう。

Get-ExecutionPolicy

「Restricted」と表示された場合は、以下のように一時的にポリシーを変更できます。

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

※ポリシー変更には管理者権限が必要です。

2. スクリプトの保存と実行

スクリプトは.ps1ファイルとして保存します。例えば、以下のようなスクリプトをHello.ps1として保存してみましょう。

Write-Host "Hello, PowerShell!"

保存後は、PowerShellで次のように実行します。

.\Hello.ps1

基本的な構文と使い方

コメント

スクリプト内で説明を加えるには「#」を使います。

# これはコメントです

変数の使い方

変数は「$」で始めます。

$name = "Taro"
Write-Host "Hello, $name"

条件分岐(if文)

$score = 85
if ($score -ge 80) {
Write-Host "合格です"
} else {
Write-Host "不合格です"
}

繰り返し(for / foreach / while)

for ($i = 1; $i -le 5; $i++) {
Write-Host "番号:$i"
}
$items = @("apple", "banana", "cherry")
foreach ($item in $items) {
Write-Host $item
}

よく使うPowerShellコマンド例

ファイルの作成と読み込み

# ファイルに書き込む
"これはテストです" | Out-File -FilePath "test.txt"

# ファイルを読み込む
$content = Get-Content -Path "test.txt"
Write-Host $content

ディレクトリ内のファイル一覧を取得

Get-ChildItem -Path "C:\Users\Public" -Recurse

サービスの状態確認

Get-Service | Where-Object { $_.Status -eq "Running" }

スクリプトを関数化して再利用しよう

同じ処理を複数回使う場合、関数を定義しておくと便利です。

function GreetUser {
param($name)
Write-Host "こんにちは、$name さん!"
}

GreetUser "山田"

スクリプトのエラー処理

予期しないエラーが出てもスクリプトが止まらないように、「try-catch」を使うのが一般的です。

try {
Get-Content "存在しないファイル.txt"
} catch {
Write-Host "エラーが発生しました:" $_.Exception.Message
}

より実践的なスクリプト例

ログファイルを日付付きで保存

$today = Get-Date -Format "yyyyMMdd"
$logPath = "C:\logs\log_$today.txt"
"ログを記録しました。" | Out-File -FilePath $logPath

一定間隔でPingを送るスクリプト

$host = "google.com"
while ($true) {
Test-Connection -ComputerName $host -Count 1
Start-Sleep -Seconds 5
}

スクリプトをスケジュールタスクで自動実行

書いたスクリプトを定期実行するには、タスクスケジューラを使うのが一般的です。

  1. 「タスクスケジューラ」を起動
  2. 「基本タスクの作成」→「トリガー(毎日、毎週など)」を設定
  3. 「操作」で「プログラムの開始」→ PowerShell を選択
  4. 引数に -File "C:\Path\To\YourScript.ps1" を入力

まとめ

PowerShellスクリプトは、一見とっつきにくく感じるかもしれませんが、基本的な書き方と使い方を覚えれば誰でも扱える便利なツールです。
業務の効率化、トラブル対応の自動化、ログ管理など、活用の幅は非常に広く、まさに「覚えて損なし」のスキルです。

最初はシンプルなスクリプトから始めて、徐々に応用へと進めていきましょう。日々の作業がぐっと楽になりますよ!

タイトルとURLをコピーしました