[Windows] VM 자동 생성 powershell script

SYSTEM/Windows / /
반응형

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을 동시에 여러대 생성하거나 삭제해야할 이슈가 있을때 

해당 파워쉘 스크립트를 사용하면 편리하다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기