Windows Server BackupをPowerShellで操作する

またまた、検証してみました

今回はWindows Server BackupをPowerShellからいじってみました。まずはインストールです

PowerShell

サーバーマネージャーの機能より「Windows Server Backup バックアップの機能」の「コマンドラインツール」を選択します。ここで間違えてはいけないのがWSBのコマンドラインであるwbadminは「Windows Server Backup バックアップ」を選択するとGUIのツールと一緒にインストールされます。「コマンドラインツール」はWindows PowerShell のコマンドレット (スナップイン)がインストールされます。

しかし、これですぐにPowerShell 上でインストールされたスナップインが使えるわけではありません。

PowerShell 上で次のコマンドをたたくことによって組み込まれます

PS C:> Add-PSSnapin windows.serverbackup

ここで本当に組み込まれたか確認

PS C:> Get-PSSnapin

Name        : Microsoft.PowerShell.Core
PSVersion   : 1.0
Description : この Windows PowerShell スナップインには、Windows PowerShell のコンポーネントを管理するために使用する Windows PowerShell 管理コマンドレットがあります。

Name        : Microsoft.PowerShell.Host
PSVersion   : 1.0
Description : この Windows PowerShell スナップインには、Windows PowerShell ホストで使用するコマンドレットが含まれています。

Name        : Microsoft.PowerShell.Management
PSVersion   : 1.0
Description : この Windows PowerShell スナップインには、Windows コンポーネントの管理に使用する管理コマンドレットが含まれています。

Name        : Microsoft.PowerShell.Security
PSVersion   : 1.0
Description : この Windows PowerShell スナップインには、Windows PowerShell のセキュリティを管理するためのコマンドレット が含まれています。

Name        : Microsoft.PowerShell.Utility
PSVersion   : 1.0
Description : この Windows PowerShell スナップインには、データの操作に使用できるユーティリティ コマンドレットが含まれて います。

Name        : windows.serverbackup
PSVersion   : 1.0
Description :

このスナップインを追加することによって15個のコマンドレットが追加されました。ということで確認してみます。

PS C:> Get-Command -CommandType cmdlet | Where-Object{$_.ImplementingType -like “*wb*”}| Format-Table name

Name
—-
Add-WBBackupTarget
Add-WBVolume
Get-WBBackupTarget
Get-WBDisk
Get-WBPolicy
Get-WBSchedule
Get-WBSummary
Get-WBVolume
New-WBBackupTarget
New-WBPolicy
Remove-WBBackupTarget
Remove-WBPolicy
Remove-WBVolume
Set-WBPolicy
Set-WBSchedule

現在接続されているディスクの状況を確認してみます。

PS C:> Get-WBDisk

DiskName       : FUJITSU MHY2160BH ATA Device
DiskNumber     : 0
DiskId         : 7c297c29-0000-0000-0000-000000000000
TotalSpace     : 160041885696
FreeSpace      : 54449995776
Volumes        : {Microsoft.Windows.ServerBackup.Commands.WBVolume, Microsoft.Windows.ServerBackup.Commands.WBVolume}
Properties     : None
ContainsBackup : False
BackupVolumeId : 00000000-0000-0000-0000-000000000000

DiskName       :
DiskNumber     : 1
DiskId         : 760cb29f-0000-0000-0000-000000000000
TotalSpace     : 1000204886016
FreeSpace      : 999959649280
Volumes        : {Microsoft.Windows.ServerBackup.Commands.WBVolume}
Properties     : External, ValidTarget
ContainsBackup : False
BackupVolumeId : 00000000-0000-0000-0000-000000000000

それでは外付けHDDをバックアップディスクとする設定をこれから行います。ちなみに外付けHDDはDiskNumberが1です。ですので$diskを変数として設定します。

PS C:> $disk = Get-WBDisk | where{$_.DiskNumber -eq 1}
PS C:> $disk

DiskName       :
DiskNumber     : 1
DiskId         : 760cb29f-0000-0000-0000-000000000000
TotalSpace     : 1000204886016
FreeSpace      : 999959649280
Volumes        : {Microsoft.Windows.ServerBackup.Commands.WBVolume}
Properties     : External, ValidTarget
ContainsBackup : False
BackupVolumeId : 00000000-0000-0000-0000-000000000000

ターゲットディスクの設定です。

PS C:> $tgt = New-WBBackupTarget -Disk $disk -Label “NewBackup”
PS C:> $tgt

Label                  : NewBackup
WBDisk                 : Microsoft.Windows.ServerBackup.Commands.WBDisk
Path                   :
TargetType             : Volume
PreserveExistingBackup : False

そしてポリシーの作成です。まだ何も入っていませんね。

PS C:> $pol = New-WBPolicy
PS C:> $pol

Schedule                                BackupTargets                           VolumesToBackup
——–                                ————-                           —————

ここでポリシーを追加します。

PS C:> Add-WBBackupTarget -Policy $pol -Target $tgt

Label                  : NewBackup
WBDisk                 : Microsoft.Windows.ServerBackup.Commands.WBDisk
Path                   :
TargetType             : Volume
PreserveExistingBackup : False

次にどのボリュームをバックアップするかを指定します。まずは全体のボリューム情報の確認です。

PS C:> Get-WBVolume -AllVolumes

VolumeLabel :
MountPath   : D:
MountPoint  : ?Volume{c948a59a-4794-11dd-995f-806e6f6e6963}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 25328717824
TotalSpace  : 52428800000

VolumeLabel :
MountPath   : C:
MountPoint  : ?Volume{c948a59b-4794-11dd-995f-806e6f6e6963}
FileSystem  : NTFS
Property    : Critical, ValidSource
FreeSpace   : 29117566976
TotalSpace  : 107610112000

VolumeLabel : HD-CNU2
MountPath   : F:
MountPoint  : ?Volume{1d553c30-7d8c-11de-afe2-001cc4d190f9}
FileSystem  : FAT32
Property    : None
FreeSpace   : 999958052864
TotalSpace  : 1000202241024

今回はC:ドライブをバックアップしますので指定します。

PS C:> $vol = Get-WBVolume -AllVolumes | Where{$_.MountPath -eq “C:”}
PS C:> Add-WBVolume -Policy $pol -Volume $vol

VolumeLabel :
MountPath   : C:
MountPoint  : ?Volume{c948a59b-4794-11dd-995f-806e6f6e6963}
FileSystem  : NTFS
Property    : Critical, ValidSource
FreeSpace   : 29117517824
TotalSpace  : 107610112000

そしてスケジュールの指定です。とりあえず変数$schedにぶち込みます。

PS C:> $sched = [datetime]”07/08/2009 16:00:00″
PS C:> $sched

2009年7月8日 16:00:00

当然ながらまだこの状態ではポリシーを見てもスケジュールされていません。

PS C:> $pol | fl

Schedule        :
BackupTargets   : {Microsoft.Windows.ServerBackup.Commands.WBBackupTarget}
VolumesToBackup : {Microsoft.Windows.ServerBackup.Commands.WBVolume}

ではスケジュールを設定します。

PS C:> Set-WBSchedule -Policy $pol -Schedule $sched

2009年8月7日 16:00:00

これでポリシーを確認するとスケジュールが入っていますね

PS C:> $pol | fl

Schedule        : {2009/08/07 16:00:00}
BackupTargets   : {Microsoft.Windows.ServerBackup.Commands.WBBackupTarget}
VolumesToBackup : {Microsoft.Windows.ServerBackup.Commands.WBVolume}

じゃあ、バックアップの設定をしますか~このHDDは初めて接続するのでフォーマットしちゃいます

PS C:> Set-WBPolicy -Policy $pol

警告!
をフォーマットしますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は “Y”): y

ここで全体のボリューム確認

PS C:> Get-WBVolume -AllVolumes

VolumeLabel :
MountPath   : D:
MountPoint  : ?Volume{c948a59a-4794-11dd-995f-806e6f6e6963}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 25328717824
TotalSpace  : 52428800000

VolumeLabel :
MountPath   : C:
MountPoint  : ?Volume{c948a59b-4794-11dd-995f-806e6f6e6963}
FileSystem  : NTFS
Property    : Critical, ValidSource
FreeSpace   : 29117366272
TotalSpace  : 107610112000

VolumeLabel : NewBackup
MountPath   :
MountPoint  : ?Volume{1d553c33-7d8c-11de-afe2-001cc4d190f9}
FileSystem  : NTFS
Property    : None
FreeSpace   : 1000059502592
TotalSpace  : 1000183914496

確かに新しいHDDがNewBackupとして存在していますね

そしてサマリーを確認すると・・・

PS C:> Get-WBSummary

NextBackupTime                  : 2009/08/07 16:00:00
NumberOfVersions                : 0
LastSuccessfulBackupTime        : 0001/01/01 0:00:00
LastSuccessfulBackupTargetPath  :
LastSuccessfulBackupTargetLabel :
LastBackupTime                  : 0001/01/01 0:00:00
LastBackupTarget                :
LastBackupResultHR              : 0
LastBackupResultDetailedHR      : 0
CurrentOperationStatus          : NoOperationInProgress
DetailedMessage                 :

確かにスケジュールがされているのがわかりますね。

PS C:> Get-WBSummary

NextBackupTime                  : 2009/08/08 16:00:00
NumberOfVersions                : 1
LastSuccessfulBackupTime        : 2009/08/07 16:00:01
LastSuccessfulBackupTargetPath  : ?Volume{1d553c33-7d8c-11de-afe2-001cc4d190f9}
LastSuccessfulBackupTargetLabel : NewBackup
LastBackupTime                  : 2009/08/07 16:00:01
LastBackupTarget                : NewBackup
LastBackupResultHR              : 0
LastBackupResultDetailedHR      : 0
CurrentOperationStatus          : NoOperationInProgress
DetailedMessage                 :

バックアップが終わりました~

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください