【Windows Server】IISのWebサイトと構成をバックアップ・復元する完全ガイド
この記事では、Windows Server上で稼働するWebサイト、アプリケーションプール、IIS Webサーバーの構成をバックアップする方法を解説します。IISのバックアップを事前に取得しておけば、ホストサーバーに障害が発生した場合や、Webサイト(およびIIS構成)を別のサーバーへ移行する際に、迅速かつ確実な復元が可能になります。
Windows ServerにおけるIISのバックアップ方法
IIS Webサーバー上で稼働しているサイトのデータと構成のバックアップは、主に以下の3つのステップで構成されます。
- IIS Webサイトのファイルをバックアップする(既定では、IISのサイトファイルは
%SystemDrive%\inetpub\wwwrootに保存されています)。このフォルダは必ずバックアップ計画に含めてください。バックアップツールでファイル一式をコピーすれば十分です(Windows Server Backupなどの組み込み機能を使い、inetpubディレクトリをバックアップ対象に指定することもできます)。BATやPowerShellスクリプトでの対応も可能です。例えば、WSB(Windows Server Backup)をインストールし、inetpub\wwwrootフォルダを共有フォルダへバックアップするには、次のコマンドを使用します。# Windows Serverの機能をPowerShellでインストール
Install-WindowsFeature -Name Windows-Server-Backup
# IISサイトの静的ファイルをバックアップ
wbadmin start backup –backupTarget:\\srv-backup1\backup -include:c:\inetpub\wwwroot -vsscopy - 現在のIIS証明書をバックアップ(エクスポート)する。サーバー上のSSL証明書の一覧は、次のコマンドで確認できます。
netsh http show sslcert
PowerShellを使えば、証明書をPFX(Personal Information Exchange)形式で共有ネットワークフォルダにバックアップできます。dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | Foreach-Object { [system.IO.file]::WriteAllBytes("\\srv-backup1\backup\$($_.Subject).pfx",($_.Export('PFX', 'secret')) ) } - IISの構成(設定)をバックアップする
appcmdを使ったIIS構成のバックアップ
IISの構成は、組み込みのappcmdツールを使ってバックアップできます。管理者としてコマンドプロンプトを開き、次のディレクトリに移動します。
cd c:\Windows\system32\inetsrv
IIS構成のバックアップを作成します。
appcmd add backup srv1-iis-backup-2022_03_10
BACKUP object srv1-iis-backup-2022_03_10 added
appcmdを実行すると、c:\Windows\system32\inetsrv\backupフォルダ内にバックアップ名と同じ名前のフォルダが作成されます。このフォルダには以下のファイルが含まれています。
- administration.config
- applicationHost.config
- MBSchema.xml
- MetaBase.xml
- redirection.config
あとは、このフォルダをバックアップ用ストレージにコピーしておくだけで完了です。
Windows Server 2019/2016では、appcmdの代わりに組み込みのPowerShellコマンドレットを使ってIISをバックアップすることもできます。
Backup-WebConfiguration -Name MyBackup202203
このコマンドレットも、現在のIIS設定を$env:Windir\System32\inetsrv\backupにエクスポートします。
別のWindows ServerホストへのIIS構成の復元方法
IIS構成は、同じサーバーにも別のホストにも復元できます。ここでは、別のWindows ServerホストにIIS構成を復元するケースを想定して説明します。
まず、IISのバックアップフォルダを、ターゲットサーバーの同じパス(c:\windows\system32\inetsrv\backup)にコピーします。
利用可能なIIS構成バックアップの一覧を表示するには、次のコマンドを実行します。
appcmd list backup
コピーしたバックアップが一覧に表示されるはずです。続いて、バックアップからIIS構成を復元します。
appcmd restore backup /stop:true srv1-iis-backup-2022_03_10
「Restored configuration from backup srv1-iis-backup-2022_03_10」というメッセージが表示されれば、IIS構成の復元は成功です。
/stop:trueオプションを付けると、復元処理の前にIISサービスを強制的に停止させることができます。
PowerShellコマンドレットを使用する場合は、次のように実行します。
Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10
補足:利用可能なバックアップの一覧には、「BACKUP "CFGHISTORY_0000000001"」のようなエントリが表示されることがあります。これらはIISが自動的に作成した構成バックアップで、\inetpub\historyディレクトリに格納されています。自動バックアップ機能はIIS 7以降で導入されました。IISマネージャー経由でApplicationHost.configに加えられた変更が追跡され、直近10世代分のバックアップが保持され、2分ごとにファイルの変更チェックが行われます。
以前のバックアップを削除するには、次のコマンドを実行します。
appcmd.exe delete backup バックアップ名
復元時の重要な注意点と制限事項
- 両サーバーで同じIISバージョンを使用する必要があります。PowerShellでレジストリからIISのバージョンを確認できます。
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring筆者の環境ではIIS 10.0でした。 - IISアプリケーションプールがビルトインアカウント以外で実行されている場合、そのアカウントがターゲットのIISホスト上で利用可能である必要があります。
- IISを復元する前に、使用中のSSL証明書をすべて新しいサーバーにインポートしておく必要があります。
msdeploy(Web配置ツール)を使ったIISバックアップ
IIS Webサーバーのバックアップには、msdeployパッケージ(Web Deployment Tool)を使用する方法もあります。IISホストとバックアップ先のホストの両方にmsdeployパッケージをダウンロードしてインストールしてください(https://www.microsoft.com/en-us/download/details.aspx?id=43717)。
webdeploy経由で、リモートのWindowsホスト192.168.100.112上のIIS全体(複数サイトが稼働している場合はすべてのサイトを含む)のバックアップを作成するには、次のコマンドを使用します。
msdeploy -verb:sync -source:webServer,computername=192.168.100.112 dest:package=c:\Backup\IIS\server1_iis_backup.zip
個々のIIS Webサイトだけをバックアップすることもできます。
msdeploy –verb:sync -source:contentPath="site_name.com",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name.zip
さらに、指定したディレクトリから静的なWebサイトファイルのみをコピーすることも可能です。
msdeploy –verb:sync –source:dirPath="c:\inetpub\wwwroot\site_name",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name_static_files.zip
-
Windowsレジストリのバックアップと復元方法を徹底解説
レジストリは、コンピューターにとって「脳」のような役割を果たす重要な存在です。Windowsのコンポーネント、サービス、アプリケーションなど、システムのほぼすべてに関わる構成情報や設定がここに格納されています。 レジストリを理解するうえで押さえておきたい基本概念は「キー」と「値」の2つです。キーはフォルダのようなオブジェクトで、レジストリエディターの画面上でも実際にフォルダと同じように表示されます。一方、値はフォルダ内のファイルのようなもので、具体的な設定内容が記録されています。 なぜレジストリのバックアップが必要なのか Windowsパソコンの設定に大きな変更を加えたい場合、多くはWindo
-
Windowsタスクバーのピン留め項目をバックアップ・復元する方法
よく使うWindowsアプリをタスクバーにピン留めしておくと、素早くアクセスできてとても便利です。しかし、パソコンの乗り換え時や、何らかの原因でピン留めが消えてしまった場合でも、バックアップさえあれば簡単に復元できます。この記事では、Windowsのピン留めされたタスクバーアプリをバックアップする方法を詳しくご紹介します。 Windowsのピン留めされたタスクバー項目をバックアップする方法 Windowsパソコンには、バックアップに必要な情報がすべて格納された専用フォルダが存在します。 ステップ1: Win + Rキーを押して「ファイル名を指定して実行」を起動し、以下のファイルパスをテキストボ