Windows Server バックアップを、PowerShell でやってみる。<実践編>

前回、PowerShell のスナップインに"windows.serverbackup"を追加したので、今回はいよいよ"wbbackup"コマンドレットを打ってみます。

 

 

まずは手始めに、"get-help wbbackup"でヘルプを呼び出してみたのですが、正直よく分かりませんでした。仕方がないのでググったところ、役に立ちそうなサイトを2つ見つけました。

 

◆ステップ バイ ステップ ガイド - Windows Server 2008 R2 の Windows Server バックアップ

(http://technet.microsoft.com/ja-jp/library/ee849849%28v=ws.10%29.aspx)

このサイトの、「バックアップ用に Windows PowerShell オブジェクトを作成および構成するには」および「Windows PowerShell を使用して 1 回限りのバックアップを実行するには」という二つの項が参考になると思います。

 

◆PowerShell での Active Directory ディレクトリ サービスのバックアップ

(http://adtan.wordpress.com/2012/01/14/powershell-%E3%81%A7%E3%81%AE-active-directory-%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA-%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83/)

私がやりたいことと、かなり近いことを実践されてます。

 

 

これらのサイトを参考にし、実際に私が打ってみたコマンドレットは下記の通りです。コマンドプロンプトのように1行で済ませる方法は見つからず、5行になっています。

-----------------------------------------------------------

$policy=new-wbpolicy

add-wbbaremetalrecovery $policy

$backuptargetvolume=new-wbbackuptarget -volume G:

add-wbbackuptarget -policy $policy -target $backuptargetvolume

start-wbbackup -policy $policy

-----------------------------------------------------------

※Gドライブが、Cドライブと物理的に同じディスク上に在る場合、5行目の実行後、リスクを説明するメッセージが表示されます。ここで"y"(イエス)を打ち込まないと、バックアップは開始されません。

 

 

上記5行のコマンドレットにより、(少なくとも私が見る限り、)コマンドプロンプトで”Wbadmin start backup -backuptarget:G: -allcritical”を実行した場合と同じバックアップが取れました。新品のHDDへOS自体を回復することも可能です。もちろんCドライブ内の各種データも一緒に回復されます。

コマンドプロンプトでは"wbadmin get versions"、PowerShellでは"get-wbbackupset"を実行することで「過去のバックアップ履歴とその内容」を確認出来るのですが、これらの結果も、”Wbadmin start backup -backuptarget:G: -allcritical”を実行した場合と同一でした。

 

 

一応、目標は達成できました。しかしながら、まだ私はこの5行のコマンドレットの意味を半分も理解していません。これからそれをじっくり調べていきたいと思います。

 

 

まだ続きます。

Windows Server バックアップを、PowerShell でやってみる。<導入編>

Windows Server 2008 以降、標準のバックアップ機能は「Windows Server バックアップ」といいます。(Windows Server 2003以前は「ntbackup」といいます。)

標準の機能と言っても、OSインストール直後には存在せず、サーバーマネージャーの「機能の追加」で追加してやる必要があります。(私が知る限り、追加後に再起動を要求されたことはありません。)

追加する前にも、[スタート]メニューの[管理ツール]の中には「Windows Server バックアップ」が存在するのですが、起動しても機能しません。「追加してください」という内容の文言が表示されるだけです。

追加後はこれがGUIツールになのですが、コマンドプロンプトで"wbadmin"を実行することでもバックアップをとることが出来ます。

 

 

今回は、これをPowerShellの”wbbackup“コマンドレットを用いて行ってみようと思います。

コマンドプロンプトで、”Wbadmin start backup -backuptarget:G: -allcritical”というコマンドを実行した場合と、同じ結果になることを目指します。

上記コマンドは、OSもユーザープロファイルも、バックアップしたい全情報がCドライブに入っているものとして、それらを「新品のHDDへ、OS自体の回復が可能」な状態でGドライブへバックアップする、という意味です。(これをベアメタル回復といいます。)

オプションとして"-allcritical"を付けることで、OS自体の回復に必要な情報を含むドライブが自動的にバックアップ対象となるため、コマンド内で明示的にCドライブを指名する必要はありません。

逆に、"-allcritical"を付けない場合、たとえコマンド内で明示的にCドライブを指名(-include:C:)してバックアップしたとしても、そのバックアップデータからOS自体の回復は出来ません。Cドライブ内のデータのみ回復可能です。

 

 

なお、今回実際に使ったのは Windows Server 2008 R2 SP1です。Windows Server バックアップの機能が Windows Server 2008よりも強化されており、PowerShell も最初から搭載されています。(Windows Server 2008では、PowerShellもサーバーマネージャーの「機能の追加」で追加する必要があります。)

 

 

さて、「PowerShell」と「Windows Server バックアップ」が両方揃っている環境でも、PowerShellでWindows Server バックアップが出来るとは限りません。

まず最初に、サーバーマネージャーの「機能の追加」で、「Windows Server バックアップの機能」の配下で「「Windows Server バックアップ」の隣にある「コマンドライン ツール」を追加してやる必要があります。

この機能を追加後、PowerShell にて"add-pssnapin windows.serverbackup" というコマンドレットを実行してスナップインを追加することで、やっと"wbbackup"コマンドレットが使えるようになります。

ちゃんとこのスナップインが追加されたかどうかは、"get-pssnapin" で全スナップインの一覧を表示すれば確認出来ます。あるいは、"get-help wbbackup"でヘルプを表示出来るかどうかでも確認出来ます。

(スナップインって何?と聞かれても上手く説明出来ないので聞かないでください。)

なお、サーバーを再起動した後は、またこのスナップインを追加し直す必要があります。なんで消えちゃうんでしょうね・・・  不便です。

 

 

続きます。

2TB超のVHDでは仮想マシンのスナップショットに失敗する!

前回、Windows Server 2008 R2 SP1 の Hyper-V環境において、2TB超のVHDを仮想マシンに接続し、データディスクとして利用できたと書きました。

しかし、その状態では「スナップショット」を取ることに失敗することが分かりました。(仮想マシンはシャットダウンしています。)

この機能が使えないのでは、仮想環境の魅力は半減してしまうのではないでしょうか。

少なくとも私にとっては、半減どころか8割減です。仕事柄、検証などで多用するので。

Windows Server 2008 R2 の Hyper-VのVHDが、最大2TBまでしかサポートしていないというのはこういう意味だったんですね・・・

(Windows Server 2012 で新たに採用された.vhdx という形式は、最大16TBだそうです。)

 

 

今のところ、このVHDを物理マシンに接続した際には特に不都合なことは起きていませんが、何か分かったら都度このブログに書いていこうと思います。