Skip to content
2011/03/27 / vpourchet

VMWare Server : Script PowerShell de sauvegarde des machines virtuelles

Ce Script vous permet d’effectuer une sauvegarde des machine virtuelles sur un serveur VMware Server.

Attention : le répertoire de sauvegarde est par default : « D:\dossier de sauvegarde » à vous de le changer selon votre besoin.

À noter que le script gère automatiquement l’état des machines pendant la sauvegarde et écrit un message dans le journal d’événement.

Bonne utilisation ;-)

Et merci à son auteur : Robin Lemesle.

##########################################################

# Script de sauvegarde de toutes les machines virtuelles sur un serveur VMWARE Server #

##########################################################

$VmPowerOpMode_Hard = 1

$VmPowerOpMode_Soft = 2

$VmPowerOpMode_TrySoft = 3

$VmExecutionState_Off = 2

$VmExecutionState_On = 1

$VmExecutionState_Stuck = 4

$VmExecutionState_Suspended = 3

$VmExecutionState_Unknown = 5

$dossier_de_sauvegarde= »D:\dossier de sauvegarde »

#création des objects VMCOM nécessaires pour communiquer avec les machines virtuelles

$vm_serveur = New-Object -comobject vmcom.vmserverctl

$params = New-Object -comobject vmcom.vmconnectparams

$vm_serveur.Connect($params)

$noms_machines = $vm_serveur.RegisteredVmNames

#cette instance spécifie le journal d’événements application

$event = New-Object -TypeName System.Diagnostics.EventLog -argumentlist application

#spécification de la source

$event.Set_source(« script de sauvegarde »)

#listage toutes les machines virtuelles

foreach($nom in $noms_machines)

{

# connection a la machine virtuelle

$vm = new-object -comobject vmcom.vmctl

$vm.connect($params,$nom)

if($vm.ExecutionState -eq $VmExecutionState_On)

{

$vm.suspend($VmPowerOpMode_TrySoft)

while($vm.ExecutionState -ne $VmExecutionState_Suspended)

{

}

$indice=$nom.LastIndexOf(« \ »)

$nom_rep_machine=$nom.substring(0,$indice)

$indice=$nom_rep_machine.LastIndexOf(« \ »)

$nom_machine=$nom_rep_machine.substring($indice+1,$nom_rep_machine.length-$indice-1)

Copy-Item $nom_rep_machine -Recurse $dossier_de_sauvegarde -force

$event.WriteEntry(« la machine vituelle : $nom_machine, est sauvegardée »)

write-host « $nom_machine : machine sauvegardée »

$vm.start($VmPowerOpMode_TrySoft)

}

elseif($vm.ExecutionState -eq $VmExecutionState_Suspended -or $VmExecutionState_Off)

{

$indice=$nom.LastIndexOf(« \ »)

$nom_rep_machine=$nom.substring(0,$indice)

$indice=$nom_rep_machine.LastIndexOf(« \ »)

$nom_machine=$nom_rep_machine.substring($indice+1,$nom_rep_machine.length-$indice-1)

Copy-Item $nom_rep_machine -Recurse $dossier_de_sauvegarde -force

$event.WriteEntry(« la machine vituelle : $nom_machine, est sauvegardée »)

write-host « $nom_machine : machine sauvegardée »

}

}

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :