I attended the
VCP 410 training course last week (install, configure & manage). I found this training very interesting but the real thief of my attention was just how good the vmware vSphere Powercli modules and cmdlets were. Below are a few one-liners I wrote as the week went on out of boredom and curiosity.
Hopefully I soaked in enough of the course through partial listening while reading the powercli help references to pass my exam today!
Retrieve and Apply DRS recommendations:
get-drsrecommendation | Apply-DrsRecommendation
Find all vm’s with e1000 network cards, for upgrade to vmxnet:
get-vm | Get-NetworkAdapter | where {$_.type -match “e1000″} | select-object parent,networkname,name,type
power off all vm’s with “test” in their names:
get-vm test* | stop-vm -confirm:$false
Move all vm’s with “test” in their names:
get-vm | where {$_.name -like “*test”} | move-vm -destination destinationhostname
Remove all vm’s with “test” in their name:
get-vm test* | remove-vm -confirm:$false
retrieve a list of vm’s with thinly provisioned disks:
get-vm | select HardDisks -expandproperty HardDisks | where {$_.storageformat -match “Thin”} | select-object parent,name,capacitykb,filename
A function to report on physical resources vs virtual commitment:
function get-commitment {
$objreport=@()
get-vmhost | % {
$intvmcommitmemmb=$null
$intvmcommitcpu=$null
get-vm -location $_ | % {
$intvmcommitcpu += $_.numcpu
$intvmcommitmemmb += $_.MemoryMB
}#end vm
$objOutput = New-Object PSObject -Property @{
VMHost = $_.name
VMMaxCpu = $_.NumCpu
VMCommitCPU = $intvmcommitcpu
VMMaxMem = $_.MemoryTotalMB
VMCommitMem = $intvmcommitmemmb
}#end object
$objreport += $objoutput
}#endhost
return $objreport
}#endfunction
get-commitment
A function to report all machines with snapshots:
function get-snapshots {
$i=$null
$result=@()
$objAllservers = get-vm
foreach ($server in $objAllservers){
$i++
$intsize = $intsize + $objallservers.length
Write-Progress -activity "Gathering snapshot report ($server)" -status "Percent complete: " -PercentComplete (($i / $objAllservers.length) * 100)
$result += get-snapshot $server}
return $result
}
get-snapshots | select-object name,created,sizemb,iscurrent,vm,vmid,Id,Uid
pass the vcp exam: (work in progress)
get-coursenotes | select-object salespitch,minimums,maximums,configurationlimitations | commit-tobrain | out-exampaper

