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

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

  1. 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

  2. Pingback: Defragmenteer Workstation VMware Images | Ward Vissers

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

Leave a Reply to tendam Cancel 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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.