Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ######################################
- YOU CAN RUN THESE SCRIPTS MANUALLY OR
- RUN THE START UPDATE SECTION AS A
- SCHEDULED TASK AND THE FINISH SECTION
- AS A SEPARATE TASK.
- ######################################
- ### START UPDATE OF VM TEMPLATE ###
- #Import the PowerCLI module
- Add-PSSnapin VMware.VimAutomation.Core
- #Host IP or vCenter Server IP/NAME
- $hostIP = '[vCenter Server]'
- #Connect to vCenter
- Connect-VIServer $hostIP
- #VM Templates to Update
- $VMTemplates = 'Win7ENTx64','WS2012StdR2'
- Foreach($vm in $VMTemplates){
- #convert template to VM
- Get-Template -Name $vm | Set-Template -ToVM
- #Power on VM
- Start-VM -VM $vm
- }
- #Disconnect From vCenter Server
- Disconnect-VIServer $hostIP -Confirm:$false
- ####################################
- ### FINISH UPDATE OF VM TEMPLATE ###
- #Import the PowerCLI module
- Add-PSSnapin VMware.VimAutomation.Core
- #Host IP or vCenter Server IP/NAME
- $hostIP = '[vCenter Server]'
- #Connect to vCenter
- Connect-VIServer $hostIP
- #VM Templates to Update
- $VMTemplates = 'Win7ENTx64','WS2012StdR2'
- foreach($vm in $VMTemplates){
- #check if VM is powered on
- $ison = Get-VM -Name $vm
- if($ison.PowerState -eq 'PoweredOn'){
- #Shutdown VM
- Get-VM -Name $vm | Shutdown-VMGuest -Confirm:$false
- #Wait for shutdown to complete
- Start-Sleep -Seconds 300
- #Convert VM back to a Template
- $tobeTemplate = Get-VM $vm | Get-View
- $tobeTemplate.MarkAsTemplate()
- }
- }
- #Disconnect From vCenter Server
- Disconnect-VIServer $hostIP -Confirm:$false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement