PowerShell script exchange
Post Reply
Brunok
Enthusiast
Posts: 36
Liked: 6 times
Joined: Sep 02, 2014 7:16 am
Full Name: Bruno
Contact:

Export detailed jobsettings for every job

Post by Brunok »

Hello all,
i found many threads about exporting jobs and configurations, but nothing helped me (my veeam report etc. is not what i need). Maybe smasterson/VeeamJobDetail.ps1 https://gist.github.com/smasterson/9141287 but this is not working... also Veeam One (Job configuration dump) is not an option - not licenced by the clients.

What i need:

When i configure a new job, i have settings like: Which HyperV Hosts, which VMs etc. i want to include. Then i have settings like "application aware", under "Storage" for example another button "Advanvced" with a lot of other options (Backup, incremental or reverse / Maintenance / Storage / Notifications......)
On the next step in the wizard "Guest Processing - with more settings - application aware...) you know, what i mean.

For client documentations we have to take screenshots from each of these settings - and this is very annoying if you have many jobs.

So, simple question - how we can export these settings in a file with all the informations that have been set during the job configuration?
We use Veeam 10

thank you
Bruno
soncscy
Veteran
Posts: 643
Liked: 312 times
Joined: Aug 04, 2019 2:57 pm
Full Name: Harvey
Contact:

Re: Export detailed jobsettings for every job

Post by soncscy »

Heya Bruno,

CBackupJob objects fetched with Get-VBRJob has everything you need under some properties.

Assume you used Get-VBRjob -name 'some job' and saved it to $job.

$job.Info.VSSOptions ###has everything you want about VSS settings
$job.Options.* ### check these for whatever you want.

Usually just play around with the Get-Member cmdlet and pipe an object to it with the -Type Properties parameter, and you'll see the different options.
oleg.feoktistov
Veeam Software
Posts: 2010
Liked: 670 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: Export detailed jobsettings for every job

Post by oleg.feoktistov »

Hi Bruno,

Adding to Harvey's point, it might also worth trying Show-Object cmdlet from Powershell Cookbook module. Looks more interactive to me.
And all the properties under CBackupJob.Info or CBackupJob.Options are the way to go. Just keep in mind that they are not officially supported. So, in case the backend logic changes, we don't guarantee that they will still work. But then you can ask here anyways. We can help on our best effort.

Thanks,
Oleg
Brunok
Enthusiast
Posts: 36
Liked: 6 times
Joined: Sep 02, 2014 7:16 am
Full Name: Bruno
Contact:

Re: Export detailed jobsettings for every job

Post by Brunok »

Thanks - but i am not as good in Powershell to write such a script. I wondering why this is not available "out of the box" - when i search through the forum, such a script was often requested

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

Re: Export detailed jobsettings for every job

Post by oleg.feoktistov » 1 person likes this post

Because we don't write scripts for someone, we help with their design and advice on how to better approach things from automation perspective. We have VeeamHub, where you can find a bunch of scripts written by enthusiasts. They might help/point you to the right direction.

Moreover, what Harvey and I described is not so hard. It just involves a bit of research.
To give you an idea on where and how to gather some data:

Code: Select all

$job = Get-VBRJob -Name 'HYPERV-BACKUP'
$objects = Get-VBRJobObject -Job $job
$isHighPriority = $job.IsHighPriority()
$targetRepo = $job.FindTargetRepository() | select Id, Name
$retentionType = $job.BackupStorageOptions.RetentionType
$retentionDays = $job.BackupStorageOptions.RetainDaysToKeep
$backupAlgorithm = $job.BackupTargetOptions.Algorithm
$fullsEnabled = $job.BackupStorageOptions.EnableFullBackup
$syntheticFullsEnabled = $job.BackupTargetOptions.TransformFullToSyntethic
$syntheticDays = $job.BackupTargetOptions.TransformToSyntethicDays
$compressionLevel = $job.BackupStorageOptions.CompressionLevel
$dedupEnabled = $job.BackupStorageOptions.EnableDeduplication
$guestProcessingEnabled = $job.VssOptions.Enabled

$job | select Name, Description, @{n='Includes';e={$objects.Name}}, @{n='isHighPriority';e={$isHighPriority}}, `
@{n='BackupRepository';e={$targetRepo.Name}}, @{n='RetentionType';e={$retentionType}}, `
@{n='RetentionDays';e={$retentionDays}}, @{n='Algorithm';e={$backupAlgorithm}}, `
@{n='FullsEnabled';e={$fullsEnabled}}, @{n='SyntheticFullsEnabled';e={$syntheticFullsEnabled}}, `
@{n='SyntheticDays';e={$syntheticDays}}, @{n='CompressionLevel';e={$compressionLevel}}, `
@{n='DeduplicationEnabled';e={$dedupEnabled}}, @{n='GuestProcessingEnabled';e={$guestProcessingEnabled}}
By the way, Powershell ISE can come in really handy here. It gives you tips whenever you access objects written to a variable by a dot.
You can see which child properties are available and easily find what you are looking for.

Thanks!
Post Reply

Who is online

Users browsing this forum: masahide.k and 10 guests