使用 powershell 脚本进行完整服务器备份

使用 powershell 脚本进行完整服务器备份

我正在使用来自微软网站的以下脚本来创建我的服务器的映像备份。问题是我的一台服务器上有一个外部硬盘,而备份脚本总是将外部硬盘包含在映像备份中。

我应该在脚本中修改什么才能使整个服务器没有外部磁盘?

来源:https://gallery.technet.microsoft.com/scriptcenter/WSB-Backup-network-email-9793e315#content

Get-WBVolume -AllVolumes 的输出

卷标:系统保留
安装路径:
挂载点:\\?\Volume{e1c711f2-9b80-11e4-80b4-806e6f6e6963}
文件系统:NTFS
属性:Critical、ValidSource、IsOnDiskWithCriticalVolume
自由空间:75513856
总空间:367001600

卷标:HD2_BACKUP
安装路径:E:
挂载点:\\?\Volume{ec27b343-e89b-11e4-80de-000c290bce57}
文件系统:NTFS
属性:ValidSource
自由空间:754411352064
总空间:1000202043392

卷标:SYSTEM
安装路径:C:
挂载点:\\?\Volume{e1c711f3-9b80-11e4-80b4-806e6f6e6963}
文件系统:NTFS
属性:Critical、ValidSource、IsOnDiskWithCriticalVolume
自由空间 : 77012553728
总空间:107005083648
#需要-版本 2.0

 

#初始化 WSB cmdlet
如果((Get-PSSnapin-名称 Windows.ServerBackup-ErrorAction SilentlyContinue)-eq $null)
{
    添加 PsSnapin Windows.ServerBackup
}

#-----------------------------------------------------------------
#变量
#-----------------------------------------------------------------  

#文件服务器
$Nas = “\\FSVM001”

#根文件夹
$HomeBkpDir = ($Nas+"\backup")

#备份文件夹
$Filename = 获取日期 -格式 MMddyyyy_hhmmss

#要保留的备份数量(值“0”表示禁用轮换)
$MaxBackup = 1

#列出不重要的卷
$Volumes = Get-WBVolume -AllVolumes | Where-Object { $_.Property -notlike "Critical*" }

#-----------------------------------------------------------------  
#用于比较要保留的文件夹数量的函数
#$MaxBackup(如果 $MaxBackup 等于 0,则不调用)
#-----------------------------------------------------------------  
函数旋转()
{  
 #列出所有备份文件夹
 $Backups = @(Get-ChildItem -Path $HomeBkpDir\*)

 #备份文件夹数量
 $NbrBackups = $Backups.count

 $i = 0

 #删除最旧的备份文件夹
 while ($NbrBackups -ge $MaxBackup)
 {
  $Backups[$i] | 删除项目-强制-递归-确认:$false
  $NbrBackups -= 1
  $i++
 }
}

#-----------------------------------------------------------------
#发送电子邮件通知的功能
#-----------------------------------------------------------------  
函数EmailNotification()
{
 #发件人电子邮件
 $Sender = “sender.at.corpnet.net”

 #收据邮件
 $Receipt = “receipt.at.contoso.com”

 #SMTP 服务器
 $Server = “smtp.corpnet.net”

#邮件主题
 $Object = $env:computername+":“+(Get-Date)”的备份报告

#邮件内容
 $Content = Get-WBJob -Previous 1 | ConvertTo-Html -As List | Out-String

 $SMTPclient = 新对象 System.Net.Mail.SmtpClient $Server

 #如果需要,请指定 SMTP 端口
 #$SMTP客户端.端口 = 587

 #如果需要,请激活 SSL
 #$SMTPclient.EnableSsl = $true

 #如果需要,请指定电子邮件帐户凭据
 #$SMTPAuthUsername =“登录”
 #$SMTPAuthPassword = “密码”
 #$SMTPClient.Credentials = 新对象 System.Net.NetworkCredential($SMTPAuthUsername,$SMTPAuthPassword)

 $Message = 新对象 System.Net.Mail.MailMessage $Sender, $Receipt, $Object, $Content
 $消息.IsBodyHtml = $true;
 $SMTP客户端.发送($Message)
}

#-----------------------------------------------------------------
#主要的
#-----------------------------------------------------------------  

#如果启用则执行旋转
如果 ($MaxBackup -ne 0)
{
 回转
}

#备份文件夹创建
新项目 ($HomeBkpDir+"\"+$Filename) -类型目录 | Out-Null

$WBPolicy = 新-WBPolicy

#启用 BareMetal 功能(包括系统状态)
添加-WBBareMetalRecovery-Policy $WBPolicy | Out-Null

#添加备份目标
$BackupLocation = New-WBBackupTarget -network($HomeBkpDir+"\"+$Filename)
添加-WBBackupTarget -Policy $WBPolicy -Target $BackupLocation -force | Out-Null

#添加不重要的卷
如果 ($Volumes -ne $null)
{
 添加-WBVolume -Policy $WBPolicy -Volume $Volumes | Out-null
}

$WBPolicy | 输出-Null
启动-WBBackup-Policy $WBPolicy

#调用邮件通知功能
电子邮件通知

相关内容