top of page

PowerShell Hyper-v

Выгрузить список виртуальных машин из кластера.

Запустить на гипервизоре, входящем в кластер.

Get-ClusterGroup | ? {$_.GroupType -eq 'VirtualMachine' } | Get-VM | Where-Object {$_.State -eq 'Running'} | Export-Csv -Path C:\!Drivers\getvm.csv

 

Скрипт для отправки сообщения на почту о статусе репликации виртуальных машин.

# Получаем состояние репликации Get-VMReplication | select name,health и засовываем в переменную $params (без Out-String у меня ругается после выполнения следующей команды)

$params = Get-VMReplication | select name,health | Out-String

# Отправляем на почту содержимое переменной $params

Send-MailMessage -SmtpServer mail.server.local -to admin@server.ru -From Replica@server.ru -Subject 'Replication report' -Body $params

Включение/выключение виртуальных машин.

Запуск ВМ с именем YourVM

start-vm YourVM

Выключение ВМ с именем YourVM

stop-vm YourVM

Перезагрузка ВМ с именем YourVM

restart-vm YourVM

Управление виртуальными сетевыми адаптерами виртуальных машин.

Отключаем виртуальный сетевой адаптер ВМ с именем YourVM от виртуального свича (Not Connected)

Disconnect-VMNetworkAdapter -VMName YourVM

Подключаем виртуальный сетевой адаптер ВМ с именем YourVM к виртуальному свичу с именем VirtualSwitch

Get-VMNetworkAdapter -VMName YourVM | Connect-VMNetworkAdapter -SwitchName VirtualSwitch

Получить информацию по ВМ.

Вывести список ВМ в кластере SVRXXX00-VSCL00

Get-VM -ComputerName (Get-ClusterNode -Cluster SVRXXX00-VSCL00)

Вывести текущие настройки запуска и остановки всех ВМ

Get-VM -ComputerName (Get-ClusterNode -Cluster SVRXXX00-VSCL00) | Select-Object VMname,AutomaticStartAction,AutomaticStartDelay,AutomaticStopAction

Изменить настройки автозапуска ВМ с помощью опции AutomaticStartAction. Возможные значения (Nothing, StartIfRunning, Start).

Get-VM –VMname win10 | Set-VM –AutomaticStartAction Start

Вывести ноды в кластере

Get-ClusterNode

Вывести сети в кластере

Get-ClusterNetwork

Вывести диски CSV

Get-ClusterSharedVolume

Создание ВМ.

# VM Name
$PetVMName = "PETXXX00-DC01"
$ClusterDisk = "HDD01"


# VHD Name
$PetVMDiskC = $PetVMName+'_C'


# New VM
New-VM -Name $PetVMName -Path "C:\ClusterStorage\$ClusterDisk" -MemoryStartupBytes 4GB -NewVHDPath "C:\ClusterStorage\$ClusterDisk\$PetVMName\Virtual Hard Disks\$PetVMDiskC.vhdx" -NewVHDSizeBytes 10Gb -Generation 2 -SwitchName "EXT" -BootDevice VHD


# vCPU
Set-VMProcessor -VMName $PetVMName -count 2


# Copy VHDX template, replace old VHDX
Copy-Item -Path "C:\ClusterStorage\HDD01\!Template\PETXXX00-XX00_C.vhdx" -Destination "C:\ClusterStorage\$ClusterDisk\$PetVMName\Virtual Hard Disks\$PetVMDiskC.vhdx"


# VLAN VM
Set-VMNetworkAdapterVlan -VMName $PetVMName -Access -VlanId 11


# Add VM to cluster
Add-ClusterVirtualMachineRole -VirtualMachine $PetVMName


# Start VM
Start-VM $PetVMName
#End

Настройка ОС.

Переименовать компьютер, ввести в домен.

# Rename PC
$PetVMName = "PETXXX00-XX01"
Rename-Computer -NewName $PetVMName -Restart
#End

Настройка сети.

# Network
$Octet2 = YYY
$Octet3 = ZZZ
$IPAddress = "10.$Octet2.$Octet3.37"
$DefaultGateway = "10.$Octet2.$Octet3.1"
$Mask = "255.255.255.0"
$DNSserver = "172.16.215.33", "10.$Octet2.$Octet3.38"
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled ='true'"
$wmi.EnableStatic($IPAddress, $Mask)
$wmi.SetGateways($DefaultGateway, 1)
$wmi.SetDNSServerSearchOrder($DNSserver)
#End

Установить роли.

# Install AD DS and DHCP
Install-windowsfeature AD-Domain-Services, DHCP -IncludeManagementTools

bottom of page