Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Compression de fichiers

0 views
Skip to first unread message

Christophere

unread,
Oct 15, 2008, 9:48:01 AM10/15/08
to
Bonjour à tous,
Le script ci-dessous me permet de faire des backups de mes 3 machines
virtuelles sur HYPER-V. Mon problème – je voudrais ajouter à ce script la
compression des fichiers backupés car ils occupent beaucoup d’espace. Et je
ne sais pas le faire. J’ai le soft 7z (outil de compression de fichiers)
d’installer sur mon serveur. Connaissiez vous un moyen qui me permettrais de
compresser ces fichiers SVP.
Je vous remercie d’avance de votre aide.

$dest = "D:\BackupVM"
$VM_Service = get-wmiobject -namespace root\virtualization
Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization
Msvm_ComputerSystem -filter "ElementName <> Name"
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("$dest\TmpDir\$VMName"))
{
[IO.Directory]::Delete("$dest\TmpDir\$VMName", $True)
}
echo "Exporting the VM"
$status = $VM_Service.ExportVirtualSystem($VM.__PATH, $True, "$dest\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")
[IO.Directory]::Move("$dest\TmpDir\$VMName", "$dest\$VMName")
[IO.Directory]::Delete("$dest\$VMName-OldTmpDir", $True)
}
else
{
[IO.Directory]::Move("$dest\TmpDir\$VMName", "$dest\$VMName")
}
echo "Done with $VMName"
$VM.RequestStateChange($VMReturnState)

## Compression des fichiers
}

--
Christophere

0 new messages