Powershell Windows Server 仕事

Windows Server Backup最強説

2017/07/30

Windows Server Backupとは

Windows Server BackupはWindows Serverに標準で用意されている機能で
有効かすればすぐに使うことができる。

システム状態を戻すことが可能で
Active Directoryのバックアップにはたぶんこれが向いている。

Windows Server Backupの仕様

・バックアップの取得先は専用にフォーマットする必要がある。
・バックアップの取得先はドライブ指定
・ドライブを指定すると、ドライブの配下に
[指定したドライブ]¥WindowsImageBackup¥[コンピュータ名]
というフォルダを勝手に作って、その下にバックアップデータができる。

このWindows Server Backup、一応GUIベースのスケジュールは用意されているが
あまり細かいスケジューリングができないことがネック。

ということで今回は世代管理ができるようなスクリプトを考えてみた。
記載しているのは、スケジューリングの部分だけで、
バックアップを取得する部分はぐぐればたくさんでてくるのでそちらを参考にされたい。

スクリプト

#---------変数---------#

#今日の日付を取得して、代入する。
$TODAY=(get-date).ToString("yyyyMMdd")
#7日前(先週)の日付を取得して、代入する。
$LSTW =(get-date).adddays(-7).ToString("yyyyMMdd")

#今日取得したバックアップに日付をつける
$NewBK="$ENV:Computername"+"_"+"$today"

#一週間前のバックアップファイルの名前
$LASTWBK="$ENV:Computername"+"_"+"$LSTW"

#バックアップフォルダ
#WindowsServerBackupでのバックアップをDドライブに取得した想定
$BKTarget="D:¥WindowsImageBackup¥"+"$ENV:Computername"

#--------本体--------#

#バックアップを取る
wbadmin start backup -backupTarget:d: -allcritical -quiet -user:DOMAIN\user -password:password12345

#今日とったバックアップをリネームしておく
Rename-Item $BKTarget $NewBK

#一週間前のバックアップを消す
Remove-Item -path D:\WindowsImageBackup\$LASTWBK -recurse -force

#-------ここまで--------#

あとは、上記のスクリプトをタスクスケジューラで一日一回など
バックアップの頻度に合わせて実行すれば、下図のようなイメージで古いバックアップを消してくれる。
【動作イメージ】バックアップの取得先サーバ

上のサンプルでは周期7日間としたが同じようなロジックで世代管理は自在。
※リストア時はフォルダ名をWindowsImageBackupに戻す必要があるので注意。

おしまい

ブログ村

ブログ村PV

PVアクセスランキング にほんブログ村

-Powershell, Windows Server, 仕事