PowerShellで自動バックアップする方法|ファイル・IIS・SQL Serverの運用を効率化

この記事の信頼性:本記事は、Windows Serverを20年以上提供している「Winserver」のマーケティングチームおよび技術チームが執筆しています。実際に企業ユーザーから寄せられた設定相談やサポート事例に基づき、初心者にもわかりやすく解説しています。最終更新日:2026年8月27日

「PowerShellで自動バックアップする方法|ファイル・IIS・SQL Serverの運用を効率化」のアイキャッチ画像

Windows Serverを運用する上で、予期せぬ障害やトラブルからシステムを復旧させるための「バックアップ」は最も重要なタスクです。しかし、重要ファイルやIISの設定、SQL Serverのデータベースなどを毎回手作業でバックアップしていると、実施忘れや設定ミスといったヒューマンエラーのリスクがつきまといます。

そこで本記事では、PowerShellを活用してバックアップを完全に自動化する方法を解説します。実務で多用される「Robocopy」を使ったファイル同期から、Webサーバー(IIS)やデータベース(SQL Server)の具体的なバックアップスクリプト例、さらにタスクスケジューラーによる自動実行のポイントまで網羅してご紹介します。

対象読者:RobocopyやPowerShellスクリプトを活用してバックアップを自動化したい情シス・インフラ担当者

\ 2週間無料でお試しできます! /
WinserverのWindows VPSが2週間無料でお試し可能。月額2,035円~、SSD搭載で電話サポートも充実・Windows Server OSのVPSが月額2,035円~!
・全プランSSD搭載!
・丁寧な電話サポート!
Windows VPSを使ってみる 

 

PowerShellでバックアップを自動化するメリット

システム運用では、定期的なバックアップが欠かせません。特に以下のようなデータは障害発生時の復旧に直接関わります。

  • 重要ファイル
  • IIS設定情報
  • SQL Serverデータベース
  • アプリケーション設定
  • ログデータ

しかし手作業によるバックアップは、実施忘れ、属人化、設定ミスなどのリスクがあります。

そこで活用したいのがPowerShellです。PowerShellとタスクスケジューラーを組み合わせることで、日次・週次のバックアップ処理を自動化できます。

PowerShellでファイルを自動バックアップする

最も基本的な例です。

フォルダをバックアップする

$source = "C:\Data"
$destination = "D:\Backup"
robocopy $source $destination /MIR /R:1 /W:1

処理内容は

  • ファイルコピー
  • 削除内容も同期
  • 差分のみコピー

となります。大量ファイル環境でも比較的高速です。

日付ごとに保存する

$date = Get-Date -Format "yyyyMMdd"
$destination = "D:\Backup\$date"
New-Item -ItemType Directory -Path $destination -Force
robocopy "C:\Data" $destination /E

バックアップ世代を残したい場合に便利です。

\ 2週間無料でお試しできます! /
Windows VPSを使ってみる

PowerShellでIISをバックアップする

Webサーバー運用では非常に重要です。OS障害が発生した場合でも、設定バックアップがあれば復旧時間を大幅に短縮できます。

IIS設定をバックアップ

$appcmd = "$env:SystemRoot\System32\inetsrv\appcmd.exe"
& $appcmd add backup IIS_Backup

実行すると
C:\Windows\System32\inetsrv\backup
配下へ設定が保存されます。

復元

& $appcmd restore backup IIS_Backup

で復元可能です。

IIS運用でバックアップすべき項目

  • Webサイトのコンテンツ(wwwrootなど)
  • SSL証明書(秘密鍵を含むPFX形式など)
  • IIS構成ファイル(applicationHost.configなど)

これらを併せて保存することで復旧性が向上します。

なお、AppCmdでバックアップできるのは主にIISの構成情報です。WebサイトのコンテンツやSSL証明書はAppCmdのバックアップには含まれないため、別途バックアップする必要があります。

PowerShellでSQL Serverをバックアップする

企業システムでは最も重要なバックアップ対象の一つです。

SQL Serverバックアップ例

$sql = @"
BACKUP DATABASE SampleDB
TO DISK = 'D:\Backup\SampleDB.bak'
WITH INIT
"@

Invoke-Sqlcmd `
-ServerInstance "localhost" `
-Query $sql

日付付きバックアップ

$date = Get-Date -Format "yyyyMMdd"
$file = "D:\Backup\SampleDB_$date.bak"

$sql = @"
BACKUP DATABASE SampleDB
TO DISK = '$file'
WITH INIT
"@

Invoke-Sqlcmd `
    -ServerInstance "localhost" `
    -Query $sql

として管理すると便利です。

SQL Server運用で確認したい項目

バックアップ取得だけでなく、

  • 容量増加
  • ジョブ失敗
  • バックアップ失敗
  • DB整合性

も定期確認しましょう。

\ 2週間無料でお試しできます! /
Windows VPSを使ってみる

タスクスケジューラーで自動実行する

PowerShellスクリプトが完成したら定期実行します。

  • 設定例
    実行プログラム:powershell.exe
    引数:-ExecutionPolicy Bypass -File “C:\Scripts\backup.ps1”
    実行タイミング:毎日23:00

これで自動バックアップ環境が完成します。

※タスクスケジューラーへの具体的な登録手順(画面キャプチャ付きの手順など)や、実行時の権限設定の注意点についてより詳しく知りたい方は、下記の記事も併せてご参考ください。

バックアップ運用でよくある課題

PowerShellによる自動バックアップを導入すると、次のような課題が発生します。

  • PCで動かしている
    担当者PCの電源が切れると停止します。
  • バックアップ先容量不足
    数ヶ月後にディスクフルになるケースがあります。
  • スクリプト管理が属人化
    作成者しか分からなくなることがあります。
  • IISやSQL Serverが増える
    サーバー台数増加に伴い運用負荷も増加します。

安定運用にはWindows Server環境がおすすめ

PowerShellによるバックアップは、

  • 24時間稼働
  • リモート接続
  • 権限制御
  • 定期実行

が可能なWindows Server環境との相性が非常に良好です。

例えば、

  • ファイルサーバーバックアップ
  • IIS設定バックアップ
  • SQL Serverバックアップ
  • Active Directory運用

などを一台のWindows Server上で管理できます。

\ 2週間無料でお試しできます! /
Windows VPSを使ってみる

Robocopyを活用したバックアップ運用例

Robocopyは、Windows環境で広く利用されている標準のファイルコピーコマンドです。差分転送やミラーリングに対応しており、追加ソフトウェアを導入せずに高度なバックアップ環境を構築できる点が大きなメリットです。当社(Winserver)でも、社内データの保全やサーバー更改時のデータ移行においてRobocopyを活用しています。

例えば、

  • ローカル領域へのバックアップ取得
  • 世代管理用フォルダへのコピー
  • 別ストレージへの転送
  • サーバー更改時のデータ移行

などの用途で利用するケースがあります。

実際の運用における注意点

本記事で紹介したスクリプトやRobocopyのコマンドは一例です。実際のバックアップ運用では、データ容量や保持期間、復旧要件に合わせて構成を調整してください。

運用にあたっては、特に以下の3つのポイントに注意が必要です。

  1. 検証環境での事前テスト
    設定誤りによるデータ消失を防ぐため、本番運用前に必ずテスト環境でスクリプトの動作確認を行ってください。
  2. /MIR(ミラーリング)オプションの扱い
    Robocopyの/MIR指定は、コピー元で削除されたファイルがコピー先でも即座に削除されます。重要データの消失を防ぐため、世代管理(アーカイブ保存)との併用を強くおすすめします。
  3. 定期的な「復元テスト」の実施
    バックアップは「正常に復元できて初めて意味を持つ」ものです。万が一のトラブルに備え、バックアップデータの健全性と復元手順を定期的に確認する運用フローを整えておきましょう。

まとめ

PowerShellとWindows標準のコマンドを組み合わせることで、ファイル、IIS、SQL Serverといった重要データのバックアップを簡単に自動化できます。日常的なバックアップを無人化することは、運用工数の削減だけでなく、ヒューマンエラーによるデータ損失リスクの軽減に直結します。

ただし、自動化スクリプトを確実に動作させ、大容量のバックアップデータを安全に保管するためには、安定したサーバー環境と十分なディスク容量が不可欠です。「社内PCでの運用に限界を感じている」「バックアップの信頼性をより高めたい」という場合は、24時間365日安定して稼働する「Windows Server VPS」などの専用環境を活用し、強固なデータ保護体制を構築しましょう。

よくある質問

Q1.Robocopyの /MIR(ミラーリング)オプションを使う際の注意点はありますか?
A1./MIR は「コピー元(同期元)」の状態を「コピー先」に完全に一致させるため、コピー元で削除されたファイルは、コピー先からも自動的に削除されます。誤操作による削除も同期されてしまうため、重要なデータは /MIR だけでなく、日付ごとのフォルダに世代管理して保存する方法との併用を推奨します。

Q2.Invoke-Sqlcmd が実行時に「コマンドが見つからない」というエラーになります。
A2.Invoke-Sqlcmd を使用するには、SQL Server管理用のPowerShellモジュール(SqlServerモジュール)がインストールされている必要があります。事前に Install-Module -Name SqlServer を実行してモジュールを導入してください。

参考リンク集

関連記事

  • PowerShell運用の効率化

 

  • Windows Server運用

※この記事は2026年8月時点の情報に基づいて執筆されています。掲載内容は将来的に変更される可能性があります。
※本記事の情報は、各ソフトウェアの公式サイトおよび開発元のドキュメントに基づいて作成しています。
最終更新日:2026年8月27日

この記事の執筆者について:
本記事は、Windows専門レンタルサーバーを20年以上提供する「Winserver(株式会社アシストアップ)」が運営する公式コラムです。
当社はMicrosoft SPLAパートナーとして、法人・個人を問わず多数の顧客に対し、Windows Server環境の導入・運用支援を行ってまいりました。
執筆・構成は、技術サポートとマーケティングチームが共同で担当。実際に社内導入やお客様からのフィードバックに基づいた情報をもとに執筆しています。

 

Windows環境をご検討の方へ

こんなお悩みはありませんか?

  • PowerShellでバックアップを自動化したい
  • IIS設定を定期保存したい
  • SQL Serverを安全に運用したい
  • バックアップ環境を整備したい
  • Windows Serverを導入したい

Winserverでは、PowerShellによる自動運用にも適したWindows Server VPS仮想デスクトップ専用サーバーをご提供しています。

VPS紹介資料

VPS紹介資料

Winserverで一番人気のVPSの概要、特徴、料金プランをまとめた資料です。
Windows VPSの他、オンラインセラー向けの「物販特化VPS」や、会計専用ソフトをインストールした「VPS for 会計ソフト」などについても紹介しています。

VPS紹介資料

VPS紹介資料

Winserverで一番人気のVPSの概要、特徴、料金プランをまとめた資料です。
Windows VPSの他、オンラインセラー向けの「物販特化VPS」や、会計専用ソフトをインストールした「VPS for 会計ソフト」などについても紹介しています。

資料をダウンロードする

Windows環境を利用するなら!
WinserverのVPS
稼働率99.99%・メモリ完全保証

▶ プランを見る

サーバーの基礎知識

TOP
CLOSE