Sauvegarde Windows à l'aide de Powershell

5

J'ai écrit le script Powershell suivant pour effectuer une sauvegarde unique de mon ordinateur Windows Server 2008 R2. L'idée est d'effectuer une sauvegarde hebdomadaire sur un autre lecteur externe et de planifier l'exécution du script à partir du planificateur de tâches.

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

Je reçois l'erreur suivante:

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

J'ai vérifié et vérifié que tous les modules, composants logiciels et fonctionnalités appropriés étaient installés / chargés.

cnc_general
la source
Si vous le déboguez, quel est l'état de l'objet $ hebdomadaire lorsque vous arrivez (juste avant) à la ligne Start-WBBackup (21)? Il semble dire que c'est NULL. Si ce n'est pas NULL, toutes les propriétés (obligatoires) sont-elles définies comme prévu dans cet objet?
cʜιᴇ007
1
Oui. J'ai placé un point d'arrêt dans l'ISE avant l'exécution de la commande Start et la variable hebdomadaire $ a cette valeur: Schedule : BackupTargets : {Seagate Backup+ Desk USB Device} VolumesToBackup : {DATAPART1 (D:), Local disk (C:)} FilesSpecsToBackup : {C:\*, D:\*} FilesSpecsToExclude : {} BMR : True SystemState : False VssBackupOptions : VssFullBackup j'ai vérifié MSDN et la planification n'a pas besoin d'être définie dans ce cas.
cnc_general
Pouvez-vous démarrer-WBBackup manuellement?
ernie

Réponses:

2

J'ai trouvé que le problème était dû à la façon dont je fixais la cible. Même s'il était correctement configuré, il n'était pas correctement lié à la politique WB que je créais. La manière correcte de définir la cible était:

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

Bien que cela suppose que le disque attaché soit toujours monté sur la lettre G: letter, cela a fonctionné correctement lorsque je l'ai exécuté.

cnc_general
la source
0

Je rencontre le même problème lors de la définition d'une sauvegarde ponctuelle (ou de la génération d'une stratégie à la volée). Je pense ... Vous devez utiliser Volume (objet de Get-WBVolume) ou VolumePath (si la lettre de montage est disponible). Les options de disque sont présentes lorsque vous souhaitez définir une stratégie persistante. Lorsque vous utilisez Disk (objet de Get-WBDisk), vous devez utiliser Set-Policy. Le disque sera effacé et un nouveau volume y sera créé. Ce volume sera ensuite utilisé.

gogy
la source