- исходные данные: Power Shell и PowerShell ISE(необязательно) устанвлены
- Устанавливаем библиотеку модулей power Shell для Hyper-V через прилагающийся в комплекте установки install.bat. Для просты копирем папку HyperV в C:\system32\MicrosoftPower Shell\v.1.0\modules (чтобы модуль Hyper-V загружался вместе с запуском powershell :powershell.exe -noexit -ImportSystemModules)
- Вариант1: запускает виртуалку и не дожидается ее запуска. Создаем файл start-vms.ps1 c таким содержимым:
Import-Module "C:\Program Files\modules\hyperV"
Start-Sleep -s 10
start-vm "your_vm_name"
- Вариант2 : Основан на той-же библиотеке. Позволяет дожидаться запуска виртуалки - актуально для виртуализированных контроллеров домена и зависимых друг от друга машин. Создаем файл start-vms-wait.ps1:
function PowerOnVM
{
param($vm, $Wait)
if ($Wait -eq 1) {
start-vm $vm
$i = ping-vm $vm
$x = $i.Status
$count = 0
do {
Write-Host $x
Write-Host $vm " is not running"
Write-Host "Count: " $count
$i = ping-vm $vm
$x = $i.Status
Start-Sleep -s 10
$count++
$DNS = $count.ToString()
$DNS = $DNS.substring($DNS.length-1,1)
if ($DNS -eq "0") {
Write-Host "Flushing DNS"
ipconfig /flushdns}
}
while ($x -ne "Success")
Write-Host $vm " is running"
Start-Sleep -s 30
}
else {
start-vm $vm
Start-Sleep -s 10
}
}
#Only make changes below this line
#Add a new line for each VM
#Paramters: -vm = the name of the VM to turn on
# -Wait = 1 to wait until VM is fully turned on
# 0 to not wait
PowerOnVM -vm DC1 -Wait 1
PowerOnVM -vm SQL1 -Wait 1
PowerOnVM -vm Stor1 -Wait 0
PowerOnVM -vm Exchange1 -Wait 0
- Создаем bat файл start-vms.bat : powershell.exe -noexit "& {<path_to_script>\start-vms.ps1}" и вешаем его на планировщик задач. Не забываем поставить галочку - "запускать с наивысшими правами"
- Любуемся результатами
Комментариев нет:
Отправить комментарий