VMware Cloud Community
aaronlundber
Contributor
Contributor

Configuring Shares For Virtual Hardisk using Powercli

I want to bulk configure virtual hard disk shares level from "Normal" to "Low" for VMs in a specific folder. How will that powercli script look like? 

0 Kudos
1 Reply
LucD
Leadership
Leadership

You could do something like this

$folderName = 'MyFolder'

Get-Folder -Name $folderName |
Get-VM -PipelineVariable vm |
ForEach-Object -Process {
    $spec = New-Object -TypeName VMware.Vim.VirtualMachineConfigSpec

    Get-HardDisk -VM $vm -PipelineVariable hd | 
    ForEach-Object -Process {
        $device = New-Object -TypeName VMware.Vim.VirtualDeviceConfigSpec
        $device.Operation = [VMware.Vim.VirtualDeviceConfigSpecOperation]::edit
        $device.Device = $hd.ExtensionData
        $device.Device.StorageIOAllocation.Shares.Level = [VMware.Vim.SharesLevel]::low
        $device.Device.StorageIOAllocation.Shares.Shares = 500

        $spec.DeviceChange += $device
    }


    $vm.ExtensionData.ReconfigVM($spec)
}


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos