Script
------------------------------------------------------------------------------------------
# PowerCLI-Extend-Disks.ps1
# Must be run in VMware PowerCLI
# Written by Jason Pearce, www.jasonpearce.com, (2015 June)
# Inspiration from Brian Wuchner, Adam Stahl, and of course Luc Dekens (LucD)
# BEGIN Variables
# vCenter that contains target VMs
Add-PSSnapin vmWARE.VimAutomation.Core
$vc="vcname"
$date = Get-Date -Format 'yyyyMMdd'
$SourceVMs = "C:\PS\vmlist.txt"
$list = Get-Content $SourceVMs
# New hard drive size you want (should be larger than current drive size)
$NewCapacityGB=25
# One or more virtual machines you want to target (modify and uncomment this line)
# $VMs=(Get-Cluster -Name "ClusterName" | Get-VM -Name "VM-Prefix-*")
# $VMs=("VM1","VM2","VM3")
# Virtual Machine Windows Credentials (a local admin account)
$GuestUser="administrator"
$GuestPassword="4444abcde!"
# END Variables
# BEGIN Script
# Connect to vCenter via PowerCLI
Connect-VIServer $vc
# BEGIN foreach loop
foreach ($VM in $list) {
# Have vSphere PowerCLI increase the size of the first hard drive in each target VM
Get-VM $VM | Get-HardDisk | Where-Object {$_.Name -eq "Hard Disk 2"} | Set-HardDisk -CapacityGB $NewCapacityGB -Confirm:$false
# Run DISKPART in the guest OS of each of the specified virtual machines
Invoke-VMScript -VM $VM -ScriptText "ECHO RESCAN > C:\DiskPart.txt && ECHO SELECT Volume E >> C:\DiskPart.txt && ECHO EXTEND >> C:\DiskPart.txt && ECHO EXIT >> C:\DiskPart.txt && DiskPart.exe /s C:\DiskPart.txt && DEL C:\DiskPart.txt /Q" -ScriptType BAT -GuestUser $GuestUser -GuestPassword $GuestPassword
}
# END foreach loop
# Disconnect from vCenter
Disconnect-VIserver -Confirm:$false
# END Script
附件:http://down.51cto.com/data/2366949
本文转自学海无涯博客51CTO博客,原文链接http://blog.51cto.com/549687/1959009如需转载请自行联系原作者
520feng2007