# Script

[VMware/Script] VM Disk, Memory Expand (VM 디크스, 메모리 증설, VDI)

이론과 실습 사이 2022. 2. 2. 20:35
반응형

 

 

 

 

 

 

흐름

1.Disk 증설 -> 2.VM종료(종료 텀 0.5초) -> 3. 메모리증설

 

 

 

 

 

 

 

 

$vCenter = "vCenter IP"
$vCenUser = "vCenter ID"
$password = "vCenter ID 계정 Password"
$VM_Imfo = "0"
$NewMem_Value = "0"
$Addmem = "0"
$AddDisk1 = "0"
$nowdisk1 = "0"
$NewDisk1 = "0"
$AddDisk2 = "0"
$nowdisk2 = "0"
$NewDisk2 = "0"
$list = Import-csv "리스트 경로 "

Import-Module VMware.VimAutomation.Core
Connect-VIServer -Server $vCenter -user $vCenUser -Password $password

$results_disk = @()  #Disk 증설 결과값 저장 AS-IS / To-Be 출력 + VM이름
$results_mem = @()   #Mem 증설 결과갑 저장 AS-IS / To-Be 출력 + VM이름

foreach ($vm in $list)
{
### Disk1,Disk2 증설 ###
	if($vm.disk1 -gt 0){
	$AddDisk1 = $VM.disk1
    $nowdisk1 = Get-vm $vm.name | Get-HardDisk | Where-Object {$_.name -eq "Hard Disk 1"}
    $NewDisk1 = $nowdisk1.CapacityGB + $AddDisk1
    Get-vm $vm.name | Get-HardDisk | Where-Object {$_.name -eq "Hard Disk 1"} | Set-HardDisk -CapacityGB $NewDisk1 -Confirm:$false
	}

    if($vm.disk2 -gt 0){
	$AddDisk1 = $VM.disk2
    $nowdisk1 = Get-vm $vm.name | Get-HardDisk | Where-Object {$_.name -eq "Hard Disk 2"}
    $NewDisk1 = $nowdisk2.CapacityGB + $AddDisk2
    Get-vm $vm.name | Get-HardDisk | Where-Object {$_.name -eq "Hard Disk 2"} | Set-HardDisk -CapacityGB $NewDisk2 -Confirm:$false
	}
    
    $VM_Disk =@{
                VM_Name = $VM.name
                AS_IS_Disk1 = $nowdisk1.CapacityGB
                TO_BE_Disk1 = $NewDisk1
                AS_IS_Disk2 = $nowdisk2.CapacityGB
                To_BE_Disk2 = $NewDisk2
                }
        $results_disk += New-Object psobject -Property $VM_Disk
### Disk1,Disk2 증설 끝###


### Memory 증설 시작###
        Stop-VM -VM $VM.name -Confirm:$false
        Start-Sleep -Milliseconds 500
        $Addmem = $vm.mem
        $VM_Imfo = Get-VM $vm.name
        $VM_Imfo.MemoryGB
        $NewMem_Value = $VM_Imfo.MemoryGB + $Addmem
        Set-vm $vm.name -MemoryGB $NewMem_Value -confirm:$false

        $VM_Mem =@{
                VM_Name = $vm.name
                AS_IS_Mem = $VM_Imfo.MemoryGB
                TO_BE_Mem = $NewMem_Value
                }
        $results_mem += New-Object psobject -Property $VM_Mem
### Memory 증설 끝###
}

$results_disk | Export-Csv -Path ""
$results_mem | Export-Csv -Path ""

Disconnect-VIServer -Server * -Force -Confirm:$false

 

 

 

 

*vCenter 상에서 Disk만 증설을 한다고 끝이 아니다. Windows OS 내부에서 디스크관리에 가서 확장을 해줘야 한다.

해당 Script는 아래 참조

 

https://min-310.tistory.com/241

 

[VMware/Script] Windows OS 파티션 삭제 (DiskPartition Remove 스크립트)

정상 (복구파티션) / 복구파티션 삭제 / Windows OS 내부 특정 Partition제거 후 Disk 확장 $driver_litter+ "C" : +를 -> = 으로 수정 ⇒ [디스크 0]에서 정상 ( 복구 파티션 ) 으로 2GB가 여유가 있더라도 확..

min-310.tistory.com

*복구 영역이 없다면 해당 코드를 제거하고 확장만 진행해도 무방.

 

 

 

 

 

 

 

 

 

 

 

반응형