Hyper-v 클라우드 환경에서 일괄적으로 여러대 VM을 생성해야할때 유용한 powershell script.
# 메모리값 입력
$Mem = Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName .
Write-Host "MemoryInfo :"$Mem.FreePhysicalMemory"/"$Mem.TotalVisibleMemorySize
# 전체 타이머 시작
$ElapsedTotal = [System.Diagnostics.Stopwatch]::StartNew()
for($i=10; $i -le 10; $i++)
{
# 루프단위 타이머 시작
$elapsed = [System.Diagnostics.Stopwatch]::StartNew()
#변수 입력
$VMname = "Virtual_$i";
$VMcore = "2"
$default_VHDdir = "C:\VM\"
$default_VHD = "Virtual.vhdx"
$destVHDdir = "C:\VM\$VMname"
$destVHD = "\$VMname.vhdx"
$VM_Template = "$destVHDdir$destVHD"
# 가상머신 생성
Write-Host "$VMname VM Creating..."
New-VM -name $VMname -path $destVHDdir
# 메모리 할당 MB단위
#Write-Host "$VMname 메모리 할당합니다."
#Set-VM -StaticMemory -Name $VMname -MemoryStartupBytes 2GB
#Set-VM -DynamicMemory -Name $VMname -MemoryMaximumBytes 2GB
Set-VM -DynamicMemory -Name $VMname -MemoryStartupBytes 2GB -MemoryMaximumBytes 2GB
# CPU_core 할당
#Write-Host "$VMname CPU-Core를 할당합니다."
SET-VMProcessor –VMName $VMname –Count $VMcore
#sleep(1)
# NIC 추가
#Write-Host "$VMname 가상 네트워크 어댑터를 추가합니다."
Connect-VMNetworkAdapter -VMName $VMName -SwitchName "VLAN1"
# 기본VHD 파일을 새로 생성한 VM으로 복사
#Write-Host "$VMname 원본 VHD파일을 생성중인 가상머신의 폴더로 복사중입니다."
copy $default_VHDdir$default_VHD $destVHDdir$destVHD
#sleep(1)
# 생성된 가상머신에 하드디스크 추가 및 복사된 VHD 연결
Write-Host "$VMname VHD 이미지연결합니다."
Add-VMHardDiskDrive -VMName $VMName -Path $VM_Template
#sleep(1)
# 생성한 가상머신 Start
#Write-Host "$VMname 시작합니다.
Start-VM -name $VMname
# 루프 한번 동작 완료 후 시간 출력
Write-Host "$VMname VM Create Time: $($elapsed.Elapsed.ToString())`n"
}
# 전체 완료 후 시간 출력
Write-Host "Total VM Create Time: $($ElapsedTotal.Elapsed.ToString())`n"
sleep 5
#전체 VM 현황 출력
Get-VM
현업에서 가끔 POC나 BMT 목적으로 VM을 동시에 여러대 생성하거나 삭제해야할 이슈가 있을때 해당 파워쉘 스크립트를 사용하면 편리하다.