Hyper-V Virtual Machine Restart PowerShell Script. In our company, we use VDI infrastructure with virtual machine pools working at Windows Server Hyper-V 2012 R2. Because we have many GPO, that fast changed and applied to the workstation we need to reboot machines occasionally. But not used machines went to save state if not using about 10 minutes. So we decide to write this script to “reboot machines” at night and create a task in the windows scheduler. As we have 4 pools we create 4 scripts for pools VMs and 4 tasks, that run at night with intervals of 2 hours.
How to:
Because we save not used machines we can’t reboot them, so we do run – shutdown – run – save. Maybe it’s somewhere wrong, but it’s work. This is the Windows PowerShell script:
$VMs = Get-VM 21V-PUBL01-*
Foreach ($VM in $VMs)
{
Start-VM $vm
timeout 60
Stop-VM $vm -passthru
timeout 60
Start-VM $vm
timeout 60
Save-VM $vm
}