PowerShell

PowerShell ile 100+ Sanal Makine Otomatik Oluşturma | Hyper-V

Kurumsal ortamlarda test, eğitim veya lab senaryolarında çok sayıda sanal makineyi manuel oluşturmak hem zaman kaybına hem de yapılandırma hatalarına yol açar.
Bu yazıda, PowerShell kullanarak 100 ve üzeri sanal makinenin otomatik olarak nasıl oluşturulacağını adım adım anlatıyorum.

Bu yöntem; standart, tekrarlanabilir ve ölçeklenebilir sanal altyapılar kurmak isteyen sistem yöneticileri için idealdir.

Neden PowerShell ile Toplu VM Oluşturmalıyız?

  • Manuel VM kurulumları yüksek hata riski taşır

  • Büyük ortamlarda zaman kaybına neden olur

  • Standart donanım ve isimlendirme sağlanamaz

PowerShell ile:

  • Tek komutla yüzlerce VM oluşturabilirsiniz

  • İsimlendirme ve donanım standart olur

  • Otomasyon altyapısına temel atılır

Senaryo: 120 Adet Sanal Makine Oluşturma

Bu yazıdaki örnek senaryoda:

  • 120 adet Windows Server sanal makine oluşturulacaktır

  • Tüm makineler aynı gold VHDX üzerinden kopyalanacaktır

  • VM isimleri sıralı ve kurumsal standartta olacaktır

  • CPU, RAM ve network otomatik atanacaktır

Ön Koşullar

İşleme başlamadan önce:

  • Hyper-V rolü kurulu olmalı

  • Yönetici yetkili PowerShell açık olmalı

  • Bir adet hazır şablon VHDX (gold image) bulunmalı

  • Yeterli disk alanı sağlanmalı

Kullanılacak Değişkenler

Script içerisinde dinamik yapı için şu değişkenler tanımlanır:

  • VM sayısı

  • VM isim ön eki

  • Şablon disk yolu

  • VM’lerin oluşturulacağı klasör

  • Sanal switch adı

PowerShell ile 100+ Sanal Makine Oluşturma Scripti

$VMCount = 120 $VMNamePrefix = "LAB-SRV" $BaseVHDX = "D:\VMTemplates\WinServer2022.vhdx" $VMPath = "D:\VMs" $VMSwitch = "Default Switch" for ($i = 1; $i -le $VMCount; $i++) { $VMName = "$VMNamePrefix-$($i.ToString("000"))" $VHDPath = "$VMPath\$VMName\$VMName.vhdx" New-Item -ItemType Directory -Path "$VMPath\$VMName" -Force Copy-Item $BaseVHDX $VHDPath New-VM ` -Name $VMName ` -MemoryStartupBytes 4GB ` -Generation 2 ` -VHDPath $VHDPath ` -Path "$VMPath\$VMName" ` -SwitchName $VMSwitch Set-VMProcessor -VMName $VMName -Count 2 }

İsimlendirme Standardı

Script sayesinde otomatik olarak şu yapı oluşur:

LAB-SRV-001 LAB-SRV-002 LAB-SRV-003 ... LAB-SRV-120

Bu yapı:

  • Active Directory

  • SCCM

  • Monitoring

  • Log analizi

gibi sistemlerde kritik öneme sahiptir.

Performans ve Dikkat Edilmesi Gerekenler

  • Aynı anda çok sayıda VM başlatmak disk IO’yu zorlar

  • Önerilen yöntem:

    • VM’leri oluştur

    • Sonra kontrollü şekilde başlat

Get-VM LAB-SRV-* | Start-VM

Gerekirse gruplar halinde başlatma yapılmalıdır.

Hata Yönetimi Eklemek (Opsiyonel)

Daha güvenli bir yapı için try / catch kullanılabilir:

try { New-VM ... } catch { Write-Host "VM oluşturulamadı: $VMName" -ForegroundColor Red }

Geliştirilebilir Senaryolar

Bu yapı aşağıdaki otomasyonların temelini oluşturur:

  • Otomatik domain join

  • IP adresi atama

  • SCCM agent kurulumu

  • Snapshot alma

  • Toplu VM silme / resetleme

  • VMware (PowerCLI) uyarlaması

 

PowerShell ile sanal makine oluşturmak yalnızca hız kazandırmaz;
aynı zamanda standart, kontrol ve sürdürülebilirlik sağlar.

Büyük altyapılar, küçük ama doğru otomasyonlar ile yönetilir.

Tolga CEYHAN

Tolga CEYHAN, bilgi teknolojilerini severek takip eder ve BT üzerine hali hazırda aktif olarak çalışmaktadır. 2006 yılından 2017 yılına kadar web tasarım yazılım üzerine çalışmalar yaptım. Şuan ise Windows Sistem ve Sistem Güvenliği alanında çalışmalarımı sürdürmekteyim.

Recent Posts

PowerShell Komutları (Profesyonel Rehber)

Birçok kişi PowerShell komutları konusuna yalnızca “hangi komut ne işe yarar?” düzeyinde yaklaşır. Oysa profesyonel…

1 ay ago

Windows File Server Migration Rehberi (Adım Adım Veri Taşıma)

Kurumsal IT altyapılarında zamanla depolama ihtiyaçlarının artması, eski sunucuların performansının yetersiz kalması veya yeni mimariye…

1 ay ago

NTFS Permission Tasarımı ve AGDLP Modeli Rehberi

NTFS Permission Tasarımı: AGDLP Modeli ile Kurumsal Yetkilendirme Rehberi Kurumsal ortamlarda NTFS permission tasarımı, dosya…

1 ay ago

Windows File Server Güvenliği Rehberi

Kurumsal yapılarda Windows File Server güvenliği, veri bütünlüğü ve iş sürekliliği açısından kritik öneme sahiptir.…

1 ay ago

Blockchain Mantığı ile PowerShell Log Bütünlüğü

Blockchain Log Bütünlüğü Bu yazımızda blockchain log bütünlüğü üzerine incelemelerde bulunacağız. Günümüz kurumsal sistemlerinde en…

2 ay ago

PowerShell SQL Backup Script – Automated Full Database Backup

A PowerShell SQL Server backup script is a practical way to standardize SQL backups across…

3 ay ago

This website uses cookies.

Read More