Blog/Veeam/backup_modification.ps1

54 lines
2.1 KiB
PowerShell
Raw Normal View History

2023-12-17 20:01:55 +01:00
#Script créé par Nicolas Lang - Sous licence CC-BY-SA
#https://nicolaslang.fr
#On commence par importer le module Veeam pour Powershell. Ce module est disponible sur le serveur ayant Veeam Backup & Restore d'installé
Import-Module Veeam.Backup.PowerShell
# Nous enregistrons l'ensemble des jobs que nous voulons modifier. Ici, nous filtrons sur les jobs ayant "Premium" dans leur nom
$tochangejobs = Get-VBRJob -Name "premium"
# Cet index est juste là pour afficher la progression, rien de plus
$i = 1
#Pour chaque job dans les jobs sélectionnés
foreach ($changeme in $tochangejobs)
{
#On affiche la progression via Write-Progress
Write-Progress -Activity "Modification des jobs" -Status $($changeme).name -PercentComplete $($i / $($tochangejobs.count) \* 100)
#Pour les jobs de Synthetic Full, on peut utiliser Set-VBRJobAdvancedBackupOptions, qui permet de modifier certains paramètres que l'on trouve dans les arguments de la commande.
#Ici, TransformToSyntethicDays accepte une liste séparée par des virgules d'une énumération de jours.
Set-VBRJobAdvancedBackupOptions -Job $changeme -TransformToSyntethicDays Friday,Monday
#Par contre, Set-VBRJobAdvancedBackupOptions n'est pas en mesure de changer la durée de rétention.
#Pour ça, nous allons directement changer une propriété d'un objet représentant les options du job.
try
{
#Nous enregistrons les options du job sélectionné dans un objet
$joboptions = Get-VBRJobOptions -Job $changeme -ErrorAction Stop
#Puis nous modifions les propriétés de cet objet à notre guise. Ici, le nombre de points du job.
$joboptions.BackupStorageOptions.RetainCycles = 14
#Et enfin, nous appliquons à nouveau l'objet d'options de job à notre job, ce qui aura pour effet de le modifier.
Set-VBRJobOptions -Job $changeme -Options $joboptions -ErrorAction Stop
}
catch
{
#Un peu de Try / Catch au cas ou un problème arrive
Write-Error "Erreur sur $($premium.name)"
}
#On incrémente notre index pour l'affichage de Write-Progress
$i++
}