PowerShell script exchange
Post Reply
The_Penguin
Influencer
Posts: 10
Liked: 1 time
Joined: Aug 03, 2018 1:12 pm
Contact:

Powershell VeeamZip

Post by The_Penguin »

Hi all. Apologies if this has been covered, I did do some searches.
We just upgraded from 9.5 to 11. It went well.
Everything is working well, but I have a special monthly Veeamzip job using a scheduled Powershell job that no longer works.
Is there still support for Powershell scripted Veeamzip in version 11?

Thanks.

oleg.feoktistov
Veeam Software
Posts: 1058
Liked: 376 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: Powershell VeeamZip

Post by oleg.feoktistov »

Hi,

Yes, VeeamZIP cmdlet is supported in v11. Can you please post your script and the error if any? I will have a look.

Thanks,
Oleg

The_Penguin
Influencer
Posts: 10
Liked: 1 time
Joined: Aug 03, 2018 1:12 pm
Contact:

Re: Powershell VeeamZip

Post by The_Penguin »

Thanks for the reply!

The script is pretty much a copy/pasta from the standard one in the forums back in 2015.
Looking at it again today with fresh eyes/brain it appears that I'm just missing the PowerShell snapin.
I re-ran the install, still missing. I'm assuming that it's supposed to be installed by default.

The error message is:

Asnp : The Windows PowerShell snap-in 'VeeamPSSnapin' is not installed on this computer.
At C:\backup\sample.ps1:73 char:1

Code: Select all

# Author: Vladimir Eremin
# Created Date: 3/24/2015
# http://forums.veeam.com/member31097.html
# 

##################################################################
#                   User Defined Variables
##################################################################

# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = "RDS-1"

# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = "Hyper-v-2"

# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = "F:\Veeam"

# Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme) 
$CompressionLevel = "5"

# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $False

# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $False

# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""

# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time. 
# Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"

##################################################################
#                   Notification Settings
##################################################################

# Enable notification (Optional)
$EnableNotification = $True

# Email SMTP server
$SMTPServer = "mail.mydomain.ca"

# Email FROM
$EmailFrom = "info@mydomain.ca" 

# Email TO
$EmailTo = "me@mydomain.ca"

# Email subject
$EmailSubject = "Veeam Scheduled Backup  - Hyper-V-2"

##################################################################
#                   Email formatting 
##################################################################

$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"

##################################################################
#                   End User Defined Variables
##################################################################

#################### DO NOT MODIFY PAST THIS LINE ################




Asnp VeeamPSSnapin

$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()

foreach ($VMName in $VMNames)
{
   $VM = Find-VBRHvEntity -Name $VMName -Server $Server
  
  If ($EnableEncryption)
  {
    $EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
  }
  
  Else 
  {
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
  }
  
  If ($EnableNotification) 
  {
    $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
    $FailedSessions =  $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"}
  
  if ($FailedSessions -ne $Null)
  {
    $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}})
  }
   
  Else
  {
    $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
  }
  
  }   
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}



oleg.feoktistov
Veeam Software
Posts: 1058
Liked: 376 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: Powershell VeeamZip

Post by oleg.feoktistov »

In v11 we migrated our PS snap-in to module since starting from v6 Powershell doesn't support snap-ins.
The module should be already there upon VBR console installation. So, feel free to remove the line, which imports snap-in.
If you experience any issues with the module, please, let me know. Thanks!

The_Penguin
Influencer
Posts: 10
Liked: 1 time
Joined: Aug 03, 2018 1:12 pm
Contact:

Re: Powershell VeeamZip

Post by The_Penguin »

Great, thanks!
Turns out my $hostnames now need fqdn where before they didn't. All good now.

Thanks again!

Post Reply

Who is online

Users browsing this forum: No registered users and 10 guests