cnc*_*ral 5 windows backup powershell
我编写了以下 Powershell 脚本来对我的 Windows Server 2008 R2 机器执行一次性备份。这个想法是对不同的外部驱动器执行每周备份,并安排脚本从任务计划程序运行。
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
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
我检查并验证了所有正确的模块、管理单元和功能都已安装/加载。
我发现问题是由我设定目标的方式引起的。尽管它显示设置正确,但它没有正确绑定到我正在制定的 WBPolicy。设定目标的正确方法是:
$disk = New-WBBackupTarget -VolumePath G:
Add-WBBackupTarget -POLICY $backup -TARGET $disk
Run Code Online (Sandbox Code Playgroud)
虽然这假设附加的磁盘始终安装到 G: 盘符,但当我运行它时它工作成功。
| 归档时间: |
|
| 查看次数: |
7227 次 |
| 最近记录: |