diff --git a/Veeam/backup_modification.ps1 b/Veeam/backup_modification.ps1 new file mode 100644 index 0000000..c81a1c3 --- /dev/null +++ b/Veeam/backup_modification.ps1 @@ -0,0 +1,53 @@ +#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++ + + +}