Windowsの管理作業を自動化したいけれど、「PowerShellスクリプトって難しそう…」と思っていませんか?
PowerShellは、Windowsに標準搭載されている強力なシェルであり、簡単な構文でタスクを効率化できる便利なツールです。特に、スクリプトを書いておくことで、繰り返しの作業を自動化でき、業務効率が大きく向上します。
本記事では、PowerShellスクリプトの基本的な書き方から、よく使う構文や実践的なサンプルまで、初心者にもわかりやすく解説します。これからPowerShellを始めたい方、業務自動化に興味がある方にとって役立つ内容になっていますので、ぜひ最後まで読んでみてください。
PowerShellスクリプトとは、Windows PowerShellまたはPowerShell Coreで実行可能な命令の集合です。通常「.ps1
」という拡張子のファイルに記述します。バッチファイルのように、複数のコマンドをまとめて実行することができ、複雑な処理も自動で行えます。
たとえば、ログファイルのバックアップや、サービスの状態チェック、ユーザーアカウントの一括作成など、あらゆる場面で活躍します。
PowerShellではセキュリティ保護のため、スクリプトの実行に制限が設けられています。まずは現在の実行ポリシーを確認しましょう。
Get-ExecutionPolicy
「Restricted」と表示された場合は、以下のように一時的にポリシーを変更できます。
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
※ポリシー変更には管理者権限が必要です。
スクリプトは.ps1
ファイルとして保存します。例えば、以下のようなスクリプトをHello.ps1
として保存してみましょう。
Write-Host "Hello, PowerShell!"
保存後は、PowerShellで次のように実行します。
.\Hello.ps1
スクリプト内で説明を加えるには「#
」を使います。
# これはコメントです
変数は「$
」で始めます。
$name = "Taro"
Write-Host "Hello, $name"
$score = 85
if ($score -ge 80) {
Write-Host "合格です"
} else {
Write-Host "不合格です"
}
for ($i = 1; $i -le 5; $i++) {
Write-Host "番号:$i"
}
$items = @("apple", "banana", "cherry")
foreach ($item in $items) {
Write-Host $item
}
# ファイルに書き込む
"これはテストです" | 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
$host = "google.com"
while ($true) {
Test-Connection -ComputerName $host -Count 1
Start-Sleep -Seconds 5
}
書いたスクリプトを定期実行するには、タスクスケジューラを使うのが一般的です。
-File "C:\Path\To\YourScript.ps1"
を入力PowerShellスクリプトは、一見とっつきにくく感じるかもしれませんが、基本的な書き方と使い方を覚えれば誰でも扱える便利なツールです。
業務の効率化、トラブル対応の自動化、ログ管理など、活用の幅は非常に広く、まさに「覚えて損なし」のスキルです。
最初はシンプルなスクリプトから始めて、徐々に応用へと進めていきましょう。日々の作業がぐっと楽になりますよ!