Ok merci pour l'info
Je suis passer comme tu m'a conseiller par un autre mode de transfert des sauvegardes.
Et sa marche
##
## Create a backup of all the vm's
##
$cheminlog="C:\scripts"
$datejour=get-date -uformat "%Y-%m-%d"
$fichierlog=$cheminlog+"\sauv_log_"+$datejour+".log"
#==========================================================================
# SETTING : Démarrage du log
#==========================================================================
Start-Transcript -path $fichierlog
$dest = "vers nouveau partage"
$destTemp = "temp local"
$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter "ElementName <> Name and ElementName = 'Vmtest'"
foreach ($VM in [array] $ListOfVMs)
{
$VMReturnState = $VM.EnabledState
$VMName = $VM.ElementName
if (($VM.EnabledState -eq 2) -or ($VM.EnabledState -eq 32768) -or ($VM.EnabledState -eq 32770))
{
$VM.RequestStateChange(32769)
#echo "Saving the state of $VMName"
}
while (!($VM.EnabledState -eq 32769) -and !($VM.EnabledState -eq 3))
{
Start-Sleep(1)
$VM = get-wmiobject -namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='$VMName'"
}
if ([IO.Directory]::Exists("$destTemp\TmpDir\$VMName" ))
{
[IO.Directory]::Delete("$destTemp\TmpDir\$VMName", $True)
}
#echo "Exporting the VM"
$status = $VM_Service.ExportVirtualSystem($VM.__PATH, $True, "$destTemp\TmpDir" )
if ($status.ReturnValue -eq 4096)
{
$job = [Wmi]$status.Job
while (!($job.PercentComplete -eq 100) -and ($job.ErrorCode -eq 0))
{
Start-Sleep(5)
$job = [Wmi]$status.Job
#echo $job.PercentComplete
}
}
## Store the files on in a temp directory before moving them to their location and then remove the old files.
if ([IO.Directory]::Exists("$dest\$VMName" ))
{
[IO.Directory]::Move("$dest\$VMName", "$dest\$VMName-OldTmpDir" )
Copy-item "$destTemp\TmpDir\$VMName" -Destination "$dest\$VMName" -recurse
[IO.Directory]::Delete("$dest\$VMName-OldTmpDir", $True)
[IO.Directory]::Delete("$destTemp\TmpDir\$VMName", $True)
}
else
{
Copy-item "$destTemp\TmpDir\$VMName" -Destination "$dest\$VMName" -recurse
[IO.Directory]::Delete("$destTemp\TmpDir\$VMName", $True)
}
echo "*-*-*-*-*-* Export de $VMName terminé *-*-*-*-*-*"
$VM.RequestStateChange($VMReturnState)
}
#==========================================================================
# SETTING : Arrêt du log
#==========================================================================
Stop-Transcript
#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = "Hyper-V@mondom.fr"
$destinataire = "supervision@mondom.fr"
$serveur = "smtp.mondom.fr"
$fichier = $fichierlog
$objet = "sauvegarde des VM" + [System.DateTime]::Now
$texte = "Result Sauveagrde VM Hyper-V"
#==========================================================================
# SCRIPT ENVOI DU MAIL
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$client.Send($message)
#==========================================================================
# FIN DU SCRIPT
#==========================================================================
Je poste le script pour 3615kineve
Message édité par an nibal le 20-02-2014 à 10:03:11