mikedopp icon

KeepVMtemplatesUpToDate

mikedopp | PRO | 05/26/16 09:42:11 PM UTC | 0 ⭐ | 277 👁️ | Never ⏰ | []
PowerShell |

1.6 KB

|

None

|

0 👍

/

0 👎

######################################
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

Comments