Script: Defrag all Local VMDK’s.


powerShellIcon

De volgende function zoekt eerst alle *.VMX bestanden op en vervangt daarna de extentie *.VMX naar *.VMDK. Deze *.VMDK bestanden worden in de $List geplaatst. Daarna worden alle VMDK’s gedefragmenteerd via de vmware-vdiskmanager.exe.

function Defrag-allVMDKs{
param([string]$path)
$vdiskmanager = “C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe”
$parameter = “-d”
$List = get-childitem $path -recurse | where {$_.extension -eq “.vmx”} |
foreach-object -process { $_.FullName } | ForEach-Object {$_ -replace “.vmx”, “.vmdk”}
ForEach($vmdk in $List)
{
echo $vmdk
& $vdiskmanager $parameter $vmdk
}
}

Via het volgende commando kun de bovenstaande function gebruiken.

Defrag-allVMDKs <drive>\<path>

Als je dit in de Shell uitvoerd ziet het er als volgt uit:

image

Advertisements

5 thoughts on “Script: Defrag all Local VMDK’s.

  1. tendam

    Was het niet zo dat wanneer je virtual disks defragmenteerd, ze automatisch groeien wanneer je niet meteen de totale grootte hebt gealloceerd?

    Reply
  2. gabesvirtualworld

    Hi Arne

    Let ook op dat het bij ons steeds vaker voorkomt dat vmdk en vmx naam niet overeenkomen. Kun je niet handiger de info van de VMDK naam ophalen?

    Plus ik zou nog een check inbouwen of er snapshots actief zijn. En dan bij actieve snapshot geen defrag uitvoeren, anders groeit je snapshot gigantisch

    Gabrie

    Reply
  3. Pingback: Defragmenteer Workstation VMware Images | Ward Vissers

  4. Pingback: Defragmenteer VMware Workstation Images - Fabian.Is-Online.Nu

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s