Backup do Windows usando o Powershell

5

Eu escrevi o seguinte Powershell Script para executar um backup único da minha máquina Windows Server 2008 R2. A idéia é executar um backup semanal em uma unidade externa diferente e agendar o script para ser executado no Agendador de Tarefas.

Import-Module ServerManager
Add-PSSnapin Windows.ServerBackup

$backup = Get-WBPolicy
$weekly = New-WBPolicy

Add-WBVolume -POLICY $weekly -VOLUME $backup.VolumesToBackup

$inc1 = NEW-WBFileSpec -FileSpec "C:\"
$inc2 = NEW-WBFileSpec -FileSpec "D:\"
$incs = $inc1,$inc2
Add-WBFileSpec -POLICY $weekly -fileSpec $incs

$disk = WBDisk | where{$_.DiskName -EQ "Seagate Backup+ Desk USB Device"}
$target = New-WBBackupTarget -DISK $disk
Add-WBBackupTarget -POLICY $weekly -TARGET $target

Add-WBBareMetalRecovery -POLICY $weekly
Set-WBVSSBackupOptions -POLICY $weekly -VSSFULLBACKUP

Start-WBBackup -POLICY $weekly

Eu recebo o seguinte erro:

Start-WBBackup : Object reference not set to an instance of an object.
At C:\Users\ejb\Documents\Scripts\WeeklyBackup.ps1:21 char:15
+ Start-WBBackup <<<<  -POLICY $weekly
    + CategoryInfo          : NotSpecified: (:) [Start-WBBackup], NullReferenceException
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.Windows.ServerBackup.Commands.StartWBBackup

Eu verifiquei e verifiquei se todos os módulos, snapins e recursos adequados foram instalados / carregados.

    
por cnc_general 11.12.2013 / 18:05

2 respostas

2

Descobri que o problema estava sendo causado pela maneira como eu estava configurando o alvo. Mesmo que estivesse mostrando corretamente definido, ele não estava vinculado corretamente à WBPolicy que eu estava fazendo. A maneira correta de definir o alvo foi:

$disk = New-WBBackupTarget -VolumePath G:
Add-WBBackupTarget -POLICY $backup -TARGET $disk

Embora isso pressuponha que o disco anexado esteja sempre montado na letra G: ele funcionou com sucesso quando eu o executei.

    
por 11.12.2013 / 21:18
0

Estou tendo o mesmo problema ao definir o backup de uma única vez (ou gerar uma diretiva on-the-fly). Eu acho que ... Você tem que usar o Volume (objeto de Get-WBVolume) ou VolumePath (se a letra de montagem estiver disponível). As opções de disco estão lá quando você deseja definir uma política persistente. Quando você usa Disco (objeto de Get-WBDisk), você tem que usar Set-Policy e o disco será limpo e um novo volume será criado nele. Esse volume será então usado.

    
por 14.07.2014 / 13:07