Я использую следующий скрипт с веб-сайта Microsoft для создания резервной копии своих серверов. Проблема в том, что у меня есть внешний жесткий диск на одном из моих серверов, и сценарий резервного копирования всегда включает внешний жесткий диск в резервную копию образа.
Что мне нужно изменить в скрипте, чтобы сделать весь сервер без внешнего диска?
Источник: https://gallery.technet.microsoft.com/scriptcenter/WSB-Backup-network-email-9793e315#content
ВЫХОД Get-WBVolume -AllVolumes
VolumeLabel : System Reserved
MountPath :
MountPoint : \\?\Volume{e1c711f2-9b80-11e4-80b4-806e6f6e6963}
FileSystem : NTFS
Property : Critical, ValidSource, IsOnDiskWithCriticalVolume
FreeSpace : 75513856
TotalSpace : 367001600
VolumeLabel : HD2_BACKUP
MountPath : E:
MountPoint : \\?\Volume{ec27b343-e89b-11e4-80de-000c290bce57}
FileSystem : NTFS
Property : ValidSource
FreeSpace : 754411352064
TotalSpace : 1000202043392
VolumeLabel : SYSTEM
MountPath : C:
MountPoint : \\?\Volume{e1c711f3-9b80-11e4-80b4-806e6f6e6963}
FileSystem : NTFS
Property : Critical, ValidSource, IsOnDiskWithCriticalVolume
FreeSpace : 77012553728
TotalSpace : 107005083648
#requires -version 2.0
#Initialize WSB cmdlets
if ( (Get-PSSnapin -Name Windows.ServerBackup -ErrorAction SilentlyContinue) -eq $null )
{
Add-PsSnapin Windows.ServerBackup
}
#------------------------------------------------------------------
#Variables
#------------------------------------------------------------------
#Files server
$Nas = "\\FSVM001"
#Root folder
$HomeBkpDir = ($Nas+"\backup")
#Backup folder
$Filename = Get-Date -Format MMddyyyy_hhmmss
#Number of backup to retain (value "0" disable rotation)
$MaxBackup = 1
#List uncritical volumes
$Volumes = Get-WBVolume -AllVolumes | Where-Object { $_.Property -notlike "Critical*" }
#------------------------------------------------------------------
#Function to compare the number of folders to retain with
#$MaxBackup (No called if $MaxBackup equals 0)
#------------------------------------------------------------------
function Rotation()
{
#List all backup folders
$Backups = @(Get-ChildItem -Path $HomeBkpDir\*)
#Number of backups folders
$NbrBackups = $Backups.count
$i = 0
#Delete oldest backup folders
while ($NbrBackups -ge $MaxBackup)
{
$Backups[$i] | Remove-Item -Force -Recurse -Confirm:$false
$NbrBackups -= 1
$i++
}
}
#------------------------------------------------------------------
#Function to send email notification
#------------------------------------------------------------------
function EmailNotification()
{
#Sender email
$Sender = "sender.at.corpnet.net"
#Receipt email
$Receipt = "receipt.at.contoso.com"
#SMTP Server
$Server = "smtp.corpnet.net"
#Mail subject
$Object = $env:computername+": Backup report of "+(Get-Date)
#Mail content
$Content = Get-WBJob -Previous 1 | ConvertTo-Html -As List | Out-String
$SMTPclient = new-object System.Net.Mail.SmtpClient $Server
#Specify SMTP port if needed
#$SMTPClient.port = 587
#Activate SSL if needed
#$SMTPclient.EnableSsl = $true
#Specify email account credentials if needed
#$SMTPAuthUsername = "login"
#$SMTPAuthPassword = "password"
#$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPAuthUsername, $SMTPAuthPassword)
$Message = new-object System.Net.Mail.MailMessage $Sender, $Receipt, $Object, $Content
$Message.IsBodyHtml = $true;
$SMTPclient.Send($Message)
}
#------------------------------------------------------------------
#Main
#------------------------------------------------------------------
#Execute rotation if enabled
if ($MaxBackup -ne 0)
{
Rotation
}
#Backup folder creation
New-Item ($HomeBkpDir+"\"+$Filename) -Type Directory | Out-Null
$WBPolicy = New-WBPolicy
#Enable BareMetal functionnality (system state included)
Add-WBBareMetalRecovery -Policy $WBPolicy | Out-Null
#Add backup target
$BackupLocation = New-WBBackupTarget -network ($HomeBkpDir+"\"+$Filename)
Add-WBBackupTarget -Policy $WBPolicy -Target $BackupLocation -force | Out-Null
#Add uncritical volumes
if ($Volumes -ne $null)
{
Add-WBVolume -Policy $WBPolicy -Volume $Volumes | Out-null
}
$WBPolicy | Out-Null
Start-WBBackup -Policy $WBPolicy
#Call email notification function
EmailNotification
