All of our servers are getting their Disk allocations increased. I have no desire to type:
Select disk 6
Select Partition 1
Extend
Select disk 7
Select Partition 1
Extend
.....
For 10 volumes per server, for 100 servers.....
Is there a way to have powershell scan the disk, looking for disks with free space greater than 100MB. Then have it extend the partition on said Disk?
Server running 2008R2
$psVersion Table
Name Value
---- -----
CLRVersion 2.0.50727.5485
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
Same solution but more simple, and it works with other locales too:
Since
diskpart
reads commands from STDIN you could do something like this:The first regular expression selects only disks that have free space in the MB or GB range (
[gm]b
). Adjust as required.Wrap the
diskpart
calls into functions to make them a little more "digestible":For VMs inside vSphere/ESX
After expanding a VMDK in vSphere that expansion is not always immediately apparent to a Windows guest OS. Sometimes it never sees it at all until the following steps are taken.
Typically you have to open Disk Management and do a Refresh for the system to then see the additional space that has been added on. Only after that can you then Expand the drive in Windows.
The two scripts above worked fine if you had already gone in and done that refresh, but obviously the point of all this is to take as much manual labor out as possible. I tested and added onto the first script. Works exactly as needed for me.
Update-Disk -Number $matches[1] is the key line.
Sorry for the ugly formatting.