Skip to content

VirtuallyThatGuy

Anything VMware , PowerCLI, PowerShell, Automation and some Windows

Menu
  • Home
  • PowerCLI
  • VMware
  • Automation
  • Windows
  • About
Menu

How to Expand Windows VM Disk Using PowerCLI or Powershell in VMware – VirtuallyThatGuy

Posted on December 26, 2018December 19, 2025 by VirtuallyThatGuy

This is a quick post about some tools I used during previous project of deploying server core for an online gambling firm I worked for. We often found ourselves expanding disk and wanted to automate the process by including logging in to the OS and extending after VMware vmdk expansion.

###Expand VM Hard Disk Using dispart.txt on windows 2012r2

#download pstools from https://docs.microsoft.com/en-us/sysinternals/downloads/psexec and open zip and copy PsExec.exe & PsExec64 to scripts folder
#create diskpart.txt in scripts folder and include below
#Run powercli as domain admin account
# Path into script folder and save below as PS.1

$vCenter=”uk3p-vc01.lab.local”
$NewSizeGB=108
$vms=("Ron-Test01")
connect-viserver $vCenter
foreach ($vm in $vms) {
get-vm $vm | get-harddisk | where {$_.name -eq “Hard Disk 1”} | set-harddisk -confirm:$false -capacityGB $NewSizeGB
copy diskpart.txt \\$vm\c$\windows\temp\
.\PsExec.exe \\$vm diskpart /s C:\windows\temp\diskpart.txt
}
disconnect-viserver -Confirm:$false

diskpart.txt: # create diskpart.txt in scripts folder and include below

rescan
select volume 2 
extend

## You can also use this one liner
Get-HardDisk -vm $vms | Where {$_.Name -eq "Hard disk 1"} | Set-HardDisk -CapacityGB 108 -ResizeGuestPartition -Confirm:$false


###Expand VM Hard Disk Using dispart.txt on windows 2012r2

 

#download pstools from https://docs.microsoft.com/en-us/sysinternals/downloads/psexec and open zip and copy PsExec.exe & PsExec64 to scripts folder

#create diskpart.txt in scripts folder and include below

#Run powercli as domain admin account

# Path into script folder and save below as PS.1

 

$vCenter=”uk3p-vc01.lab.local”

$NewSizeGB=108

$vms=("Ron-Test01")

connect-viserver​​ $vCenter

foreach​​ ($vm​​ in​​ $vms) {

get-vm​​ $vm​​ |​​ get-harddisk​​ |​​ where​​ {$_.name​​ -eq​​ “Hard Disk 1”}​​ |​​ set-harddisk​​ -confirm:$false​​ -capacityGB​​ $NewSizeGB

copy​​ diskpart.txt​​ \\$vm\c$\windows\temp\

.\PsExec.exe​​ \\$vm​​ diskpart​​ /s​​ C:\windows\temp\diskpart.txt

}

disconnect-viserver​​ -Confirm:$false

 

diskpart.txt:​​ # create diskpart.txt in scripts folder and include below

 

rescan

select​​ volume​​ 2​​ 

extend

​​ 

 

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • vROps: Management Pack Troubleshooting
  • Windows AD {Active Directory} (PowerShell) samples
  • Migrate VMs Between vCentres Using Powershell or PowerCLI
  • Set VM Tools to Update Automatically on VM Reboot using powershell
  • Windows Administrator Must Have Powershell Commands

Recent Comments

  • JB on Script: How to get VM with Tag Assignment and export results to csv using PowerCLI or Powershell
  • DL on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • 360coolp on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • Yogesh on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy
  • VirtuallyThatGuy on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017

Categories

  • Automation
  • PowerCLI
  • VMware
  • Windows
© 2026 VirtuallyThatGuy | Powered by Superbs Personal Blog theme