Solved

Veeam Start-VBRZip powershell script (ET)

Posted on 2016-10-11
10
179 Views
Last Modified: 2016-10-19
I am trying to write a powershell script to perform VeeamZIP on certain VMs. This article explains how to do it (page 746) but i cannot seem to get it right because i keep getting errors with my syntax.
https://www.veeam.com/pdf/guide/veeam_backup_9_0_powershell_reference_en.pdf

This is what i wrote so far:
Add-PSSnapin VeeamPSSnapin
$ServerName = Find-VBRHvEntity -Server localhost -Name 'OSNY2k12PS01'
Start-VBRZip -Folder "D:\VMBackup" -Entity $ServerName -Compression 5 -DisableQuiesce -AutoDelete In1Week

Open in new window


Also i have about 10 vms that i want to run this on. Can i combine them all into one script so it starts the next server when the previous one finishes.
0
Comment
Question by:tabush
  • 6
  • 4
10 Comments
 
LVL 39

Accepted Solution

by:
footech earned 500 total points
ID: 41838728
I'd suggest checking out this blog.  There are a couple sample scripts (for Hyper-V and VMWare) at the bottom of the page you can download (and I have used, at least the VMWare one).  You can supply the names of multiple VMs and it will loop through them.

Just looking at your commands above, I don't see any problem.  You may want to verify that your Find-VBRHvEntity command returns the right object.  Other that than, you'd have to show which errors you're getting.  But the sample scripts are your best bet.
1
 
LVL 2

Author Comment

by:tabush
ID: 41838738
Which blog are you referring to? Think you forgot to post the link.
0
 
LVL 39

Assisted Solution

by:footech
footech earned 500 total points
ID: 41838842
Damn.  I thought you could see my screen...
:)

Sorry about that.
https://www.veeam.com/blog/veeam-backup-free-edition-now-with-powershell.html
1
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 2

Author Comment

by:tabush
ID: 41842479
In the script it asks to specify
"Name of vCenter or standalone host VMs to backup reside on"
What would the name of my vCenter be? I dont want to specify host because i have more than one.
Would it be the IP or one of the names below that?

2016-10-13-14_38_27-osny2k12bkup01.n.png
0
 
LVL 2

Author Comment

by:tabush
ID: 41842571
I tried it with NYC ESX and this is the error im getting:

At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:21 char:2
+ - High, 9 - Extreme)
+  ~
Missing expression after unary operator '-'.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:21 char:3
+ - High, 9 - Extreme)
+   ~~~~
Unexpected token 'High' in expression or statement.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:21 char:7
+ - High, 9 - Extreme)
+       ~
Missing argument in parameter list.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:21 char:20
+ - High, 9 - Extreme)
+                    ~
Unexpected token ')' in expression or statement.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:117 char:101
+ ... | select -first
+                    ~
Missing closing ')' in expression.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:119 char:1
+ 1).Title}})
+ ~
Unexpected token '1' in expression or statement.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:117 char:38
+ {$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descen ...
+                                      ~
Missing closing '}' in statement block.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:119 char:2
+ 1).Title}})
+  ~
The hash literal was incomplete.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:79 char:1
+ {
+ ~
Missing closing '}' in statement block.
At C:\Users\networkadmin\Desktop\VeeamZIP.ps1:119 char:11
+ 1).Title}})
+           ~
Unexpected token ')' in expression or statement.
Not all parse errors were reported.  Correct the reported errors and try again.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

and in the script that i wrote (posted above) this is the error i was getting:

Find-VBRHvEntity : Cannot process argument transformation on parameter 'Server'. Host with name 'localhost'
was not found
At C:\Users\networkadmin\Desktop\Veeam Backup Script.ps1:2 char:40
+ $ServerName = Find-VBRHvEntity -Server localhost -Name 'OSNY2k12PS01'
+                                        ~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Find-VBRHvEntity], ParameterBindingArgumentTransformationExc
   eption
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Veeam.Backup.PowerShell.Command.FindVBRHv
   Entity
 
Start-VBRZip : Cannot validate argument on parameter 'Entity'. The argument is null. Provide a valid value
for the argument, and then try running the command again.
At C:\Users\networkadmin\Desktop\Veeam Backup Script.ps1:3 char:44
+ Start-VBRZip -Folder "D:\VMBackup" -Entity $ServerName -Compression 5 -DisableQu ...
+                                            ~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Start-VBRZip], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Veeam.Backup.PowerShell.Commands.Backup.Start
   VBRZip
0
 
LVL 39

Expert Comment

by:footech
ID: 41842641
In your screenshot above, it looks like your vCenter would be the 192.168.x.x address.  Below that is the Datacenter, Cluster, then hosts.

Make sure to use the hostname as you see it in Veeam (I think it's always the full FQDN).

Looks like all those errors are likely from a poor copy and paste of the script, or maybe editing with something that changed the file, or a missing quote.

Lastly, are you backing up Hyper-V or VMWare?  Make sure you're using the right cmdlet for each.
0
 
LVL 2

Author Comment

by:tabush
ID: 41843817
I downloaded the script straight to the server this time so no copy-pasting but getting a different error now.
It seems that its not recognizing the $server variable

Find-VBRViEntity : Cannot validate argument on parameter 'Server'. The argument is null. Provide a valid
value for the argument, and then try running the command again.
At C:\Users\networkadmin\Downloads\VeeamZIP-VI-updated\VeeamZIP (VI - updated).ps1:76 char:48
+   $VM = Find-VBRViEntity -Name $VMName -Server $Server
+                                                ~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Find-VBRViEntity], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Veeam.Backup.PowerShell.Command.FindVBRViEnti
   ty
 
Start-VBRZip : Cannot validate argument on parameter 'Entity'. The argument is null. Provide a valid value
for the argument, and then try running the command again.
At C:\Users\networkadmin\Downloads\VeeamZIP-VI-updated\VeeamZIP (VI - updated).ps1:86 char:40
+     $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $Comp ...
+                                        ~~~
    + CategoryInfo          : InvalidData: (:) [Start-VBRZip], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Veeam.Backup.PowerShell.Commands.Backup.Start
   VBRZip
0
 
LVL 39

Expert Comment

by:footech
ID: 41844441
Is the $Hostname variable set correctly for your environment?  Make sure the following line returns info.
Get-VBRServer -name $HostName

Open in new window

The script uses that to set the $server variable.  And then that is used in the next command.
Find-VBRViEntity -Name $VMName -Server $Server

Open in new window

Running that command manually should also return info.
0
 
LVL 2

Author Comment

by:tabush
ID: 41850611
Sorry for the delayed response. Yes that command worked.
I also did ECHO $HostName
and it did output the correct hostname that i entered.
0
 
LVL 2

Assisted Solution

by:tabush
tabush earned 0 total points
ID: 41850633
Think i figured it out!
For hostname i had to enter the IP address because that's how we have it listed within Veeam.
0

Featured Post

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Create and license users in Office 365 in bulk based on a CSV file. A step-by-step guide with PowerShell script examples.
A procedure for exporting installed hotfix details of remote computers using powershell
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question