PowerShell kullanarak Hyper-V VM'yi Başlatma ve Durdurma


Hyper-V'yi Windows 11 veya Windows 10 ana makinenize yükledikten veya etkinleştirdikten sonra, çeşitli amaçlarla farklı bir işletim sistemini (konuk işletim sistemi) çalıştıracak VM'ler oluşturabilirsiniz. Bu yayında size PowerShell kullanarak Hyper-V VM'nin nasıl başlatılıp durdurulacağını göstereceğiz.

PowerShell kullanarak Hyper-V VM'yi Başlatma ve Durdurma

Hyper-V yöneticisi, sanal makinelerinizi manuel olarak başlatmak ve durdurmak için kullanılabilir. PowerShell'deki Start-VM ve Stop-VM cmdlet'i bir sanal makineyi başlatır/durdurur. Hyper-V modülünde bulunan cmdlet'ler, Hyper-V ana bilgisayarlarında çalışan bir veya daha fazla sanal makineyi başlatmak/durdurmak için kullanılabilir.

PowerShell kullanarak Hyper-V'de bir sanal makineyi başlatmak veya durdurmak için aşağıdaki ilgili cmdlet'i çalıştırın. Komut, VMName parametresi tarafından belirtilen VM-1 sanal makinesini başlatır/durdurur.

Start-VM -VMName VM-1
Stop-VM -VMName VM-1

Varsayılan olarak, Start-VM cmdlet'i herhangi bir çıktı döndürmez. Dolayısıyla, çıktıyı oluşturmak ve bunu ardışık düzene aktarmak için -PassThru parametresini kullanabilir ve ardından sanal makinenin durumunu döndürmek için Get-VM cmdlet'ini kullanabilirsiniz. İlgili sözdizimi şöyle görünmelidir:

Start-VM -VMName VM-1 -Passthru | Get-VM

VM durumunu kaydetmek ve durdurmak için aşağıda gösterildiği gibi -Save parametresini kullanmanız gerekecektir:

Stop-VM -VMName VM-1 -Save

Hyper-V'de PowerShell kullanarak birden fazla sanal makineyi başlatmak veya durdurmak için aşağıdaki ilgili cmdlet'i çalıştırın. Komut, adları VM ile başlayan tüm sanal makineleri başlatacak/durduracaktır.

Start-VM -VMName VM*
Stop-VM -VMName VM*

Yanıt vermeyen bir Hyper-V VM'si Nasıl Durdurulur

Bazen Hyper-V sanal makinelerinizi kapatmaya çalıştığınızda askıda kalabilir. Bu sorun oluştuğunda, Hyper-V Yöneticisi'nde, etkilenen VM'lerin artık yanıt vermeyen Kapanıyor durumuna sahip olduğunu göreceksiniz. Ayrıca, konuk işletim sistemi yanıt vermeyi durdurduğunda Kapat komutu etkinleştirildiğinden, PowerShell Stop-VM -Force komutunu kullanarak veya normal denetimleri kullanarak sanal makineyi zorla kapatmanız mümkün değildir. Hyper-V Yöneticisindeki >, Kapat ve Sıfırla düğmeleri gri renktedir ve basıldığında aşağıdaki hatayı verir:

Uygulama, VM'nin durumunu değiştirmeye çalışırken bir hatayla karşılaştı.
Durum değiştirilemedi.
Nesne mevcut durumundayken işlem gerçekleştirilemez.

Bu durumda, istemci Hyper-V kullanıyorsanız sunucunuzu veya PC'nizi kapatmak yerine (ki bu da bir yoldur, ancak bu sadece aşırıya kaçmaktır), aşağıdaki yöntemleri kullanarak yanıt vermeyen bir VM'yi kapanmaya zorlayabilirsiniz:

  1. Güç kalkanı

  2. Görev Yöneticisi veya Süreç Gezgini

Her yöntem için ilgili adımları görelim.

1. Yanıt vermeyen bir Hyper-V VM'yi PowerShell kullanarak durdurun

  • PowerShell'i yönetici modunda açın.

  • Aşağıdaki komutu yazın ve tüm VM'nizin GUID'inin çıktısını almak için Enter tuşuna basın. Yanıt vermeyen VM'nin adını bilmeniz gerekir.

Get-VM
  • VM adını aldıktan sonra aşağıdaki komutu çalıştırın. VM_NAME yer tutucusunu durdurmak istediğiniz VM'nin adıyla değiştirin:

$VmGUID = (Get-VM 'VM_NAME').id
  • Daha sonra VM’nin işlem kimliğini bulmak için aşağıdaki komutu çalıştırın. Komut, sanal makinenizin vmwp.exe ve GUID'si ($VmGUID) ile eşleşen, çalışan bir CPU işlemi bulmak için Win32_Process Windows Yönetim Araçları (WMI) ad alanını kullanır.

$VMWMProc = (Get-WMIObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VmGUID})
  • İşlem kimliğini ($VMWMProc) aldıktan sonra, işlemi sonlandırmak için Stop-Process cmdlet'ini aşağıda gösterildiği gibi çalıştırabilirsiniz:

Stop-Process ($VMWMProc.ProcessId) -Force

2. Yanıt vermeyen Hyper-V VM'yi Görev Yöneticisi veya İşlem Gezgini'ni kullanarak durdurun

Hyper-V ana bilgisayarındaki tüm VM'ler, bir VM'nin takılması durumunda sonlandırmanız gereken Sanal Makine Çalışan İşlemi vmwp.exe işlem örnekleri kullanılarak başlatılır. Belirli bir işlem PID'sini bulmak için sanal makinenin GUID'ini bulmanız gerekir.

Bu yöntemlerden herhangi biri için Hyper-V Manager konsolunu kullanarak VM GUID'ini alabilirsiniz.

  • Hyper-V sunucu ayarlarını açın.

  • Sunucu bölümü, sanal makine yapılandırma dosyalarının depolandığı dizini içerir.

  • Klasörü tanımladıktan sonra Dosya Gezgini'ndeki dizine gidin.

  • Konumda, takılı kalan sanal makinenizin adının bulunduğu klasörü bulun.

  • Sanal makine yapılandırma dosyasının adında belirtilen GUID'yi *.vmcx uzantısıyla kopyalayın.

  • Ardından Görev Yöneticisi'ni açın ve Ayrıntılar sekmesine gidin.

  • Şimdi, Kullanıcı adı sütununda, VM'nizin GUID'inin takılıp kaldığı vmwp.exe işlemini bulun ve sonlandırın.

Benzer şekilde, aşağıdaki adımları izleyerek bir Hyper-V ana bilgisayarında takılı kalan bir sanal makine işlemini bulmak ve durdurmak için İşlem Gezgini aracını kullanabilirsiniz:

  • Process Explorer'ı yönetici olarak çalıştırın.

  • Daha sonra, Ctrl-F tuş birleşimine basın veya Tanıtıcı veya DLL Bul'u tıklayın.

  • Başlatma/durdurma durumunda kalan Hyper-V VM'nin sanal diskinin (*.vhdx) yolunu belirtin.

  • Process Explorer, sanal makine VHDX dosyasını kullanan tüm işlemleri listeleyecektir.

  • Şimdi vmwp.exe sanal makine işlemini bulun.

  • Süreci sağ tıklayın ve menüden İşlemi Sonlandır'ı seçin.

Yanıt vermeyen bir VM'yi kapanmaya zorlamanın başka bir yolu da aşağıdaki komutu yükseltilmiş bir PowerShell isteminde çalıştırarak Hyper-V hizmetini durdurmaktır. Restart-Service komutu, sunucunuzda çalışan tüm VM'leri zorla kapatacaktır. Hyper-V hizmetini (vmms) yeniden başlatmanın biraz zaman alabileceğini unutmayın. Bu nedenle işlemin durdurulması ve yeniden başlatılması birkaç dakika sürebilir.

Get-Service vmms | Restart-Service

Bu kadar!

Sonraki yazıyı okuyun: Hyper-V sanal makinesinin Başlangıçta otomatik olarak başlatılması nasıl sağlanır?

VM durumumu nasıl kontrol ederim?

VMware'de tek bir sanal makinenin durumunu kontrol etmek için aşağıdakileri yapın:

  • VSphere Client'ta bir sanal makineye gidin.

  • Güncellemeler sekmesinde Durumu Kontrol Et'i tıklayın. Varlığı tarama görevi Son Görevler bölmesinde görünür.

  • Görev tamamlandıktan sonra VMware Araçları ve VM Donanım Uyumluluğu panellerinde durum bilgileri görünür.

VM'min boşta olup olmadığını nasıl anlarım?

Google Cloud'da bir sanal makineyi boşta olarak sınıflandırmak için aşağıdaki koşulların tamamının karşılanması gerekir:

  • VM çalışma zamanının %97'si için CPU kullanımı 0,03 vCPU'dan azdır.

  • Alınan ağ trafiği, VM çalışma zamanının %95'i için saniyede 2600 bayttan (B/s) azdır.

  • Gönderilen ağ trafiği, VM çalışma zamanının %95'i için 1000 B/s'den azdır.

İlgili makaleler