Pokud váš virtuální počítač běžící na hostiteli Hyper-V z nějakého důvodu zavěsí, přestane reagovat a nereaguje na tlačítka napájení, vypnutí a resetování v konzole Hyper-V, jediným rychlým způsobem, jak násilně zastavit takový stroj, je ukončit proces tohoto virtuálního počítače v hostitelský OS. Ukážeme, jak vynutit restartování virtuálních počítačů v Hyper-V na Windows Server 2016/2019 bez restartování celého serveru a spuštěných virtuálních počítačů (pokud nemáte klastr HA Hyper-V a Live-Migration).
Obsah:
- Virtuální stroj Hyper-V zamrzne ve stavu Stopping, Starting
- Chyba Hyper-V: Připojení ke službě správy virtuálních strojů
- Dokončení zavěšeného procesu VM pomocí Správce úloh
- Resetujte zavěšený VM na Hyper-V VM pomocí PowerShell
- Hyper-V: Nepodařilo se změnit stav virtuálního počítače
Virtuální stroj Hyper-V zamrzne ve stavu Stopping, Starting
Předpokládejme tedy, že jeden z virtuálních počítačů na Hyper-V je ve stavu zmrazený Zastavení (Kritické zastavení) / Začínáme (Počínaje 10%).
Hostující operační systém přestal reagovat a tlačítka „Vypnout“, „Vypnout“ a „Reset“ v konzole Hyper-V Manager se stala nedostupnou nebo při stisknutí vrátila chybu:
Předpokládejme tedy, že jeden z virtuálních počítačů na Hyper-V zablokuje, hostující OS přestane reagovat a tlačítka „Vypnout“, „Vypnout“ a „Obnovit“ v konzole Hyper-V Manager se stanou nedostupnými nebo po stisknutí vrátí chybu:
Stav se nepodařilo změnit Operaci nelze provést, pokud je objekt v aktuálním stavu
Chyba Hyper-V: Připojení ke službě správy virtuálních strojů
Pokud váš Hyper-V nezobrazuje virtuální počítače v konzole Správce Hyper-V, vrátí se „Připojení ke službě Správa virtuálních strojů", Musíte restartovat proces vmms.exe (služba správy virtuálních strojů Hyper-V). Jedná se o bezpečnou operaci a nepřeruší spuštěné virtuální počítače. Nejjednodušší způsob, jak restartovat proces vmms.exe, je prostřednictvím služby vmms a prostřednictvím konzoly services.msc
nebo příkaz:
Get-Service vmms | Restartujte službu
Dokončení zavěšeného procesu VM pomocí Správce úloh
Jediným způsobem, jak vynutit vypnutí / restartování takového zmrazeného virtuálního počítače bez restartování celého hostitelského serveru Hyper-V, je ukončení jeho pracovního postupu v hostujícím OS. Všechny VM na hostiteli Hyper-V jsou tímto procesem spuštěny. vmwp.exe (Virtuální Stroj Dělník Proces). Chcete-li vyhledat proces, musíte zjistit GUID virtuálního počítače.
Identifikátor VM GUID můžete určit pomocí konzoly pro správu Hyper v Manažer. Otevřít nastavení serveru (Hyper v Nastavení) Sekce Server označuje adresář, ve kterém jsou uloženy konfigurační soubory VM (v našem příkladu D: \ VMStore).
Otevřete tento adresář v Průzkumníkovi souborů a najděte adresář s názvem zmrazeného virtuálního počítače. Zkopírujte GUID zadané v názvu konfiguračního souboru VM s příponou * .vmcx.
Nyní musíte spustit správce úloh (Úkol Manažer) a přejděte na kartu Podrobnosti. Všechny virtuální stroje běží jako součást vlastní instance procesu. vmwp.exe. K určení, který proces je zodpovědný za které VM, potřebujeme dříve získané GUID visícího VM. Vyhledejte proces vmwp.exe, který má sloupec Uživatel jméno Je zadáno GUID vašeho VM. Dokončete tento proces (Ukončení úlohy).
Virtuální stroj bude nucen zastavit. Nyní s ní můžete dělat cokoli.
Resetujte zavěšený VM na Hyper-V VM pomocí PowerShell
Pomocí PowerShell je mnohem snazší najít a dokončit proces zavěšeného virtuálního stroje. Spusťte konzolu PowerShell s oprávněními správce (účet musí být v místní skupině administrátorů Hyper-V).
V tomto případě vám vestavěný cmdlet Stop-VM nedovolí vypnout VM. Pokud se pokusíte spustit příkazStop-VM -Force
, ona také zamrzne. Očividně čeká na odpověď od VM.V tomto případě musíte také dokončit proces VM podle jeho ID. Můžete získat VM GUID s jeho názvem. Například pro VM s názvem SVM-GUARDEDHOST1 spusťte příkaz:
$ VMGUID = (Get-VM "SVM-GUARDEDHOST1"). ID
Pokud nechcete zadávat celé jméno virtuálního počítače, můžete uvést seznam všech virtuálních počítačů registrovaných na tomto hostiteli Hyper-V:
Get-VM | Vyberte Název, Id
Zkopírujte GUID požadovaného VM ze seznamu.
Nyní musíte najít identifikátor procesu (PID) 'vmwp.exe' pro váš VMGUID:
$ VMWMProc = (Get-WmiObject Win32_Process |? $ _. Name -match 'VMWP' - a $ _. CommandLine -match $ VMGUID)
Poté pomocí příkazu Stop-Process musíte tento proces vynutit:
Zastavení procesu ($ VMWMProc.ProcessId) -Force
Je to tak jednoduché, jak násilně ukončit pracovní postup pozastaveného virtuálního počítače Hyper-V.
Tip. Popisujeme také podobný postup pro dokončení procesu zavěšení VM na hostitele VMWare ESXi..Hyper-V: Nepodařilo se změnit stav virtuálního počítače
Někdy se stane, že i po ukončení procesu zavěšení nelze VM zapnout a ve stavu Start se zmrazí s chybou:
Připojení virtuálního stroje se nepodařilo změnit stav. Stav se nepodařilo změnit.
V takovém případě zkontrolujte následující možnosti:
- Zkontrolujte, zda je na disku dostatek volného místa, na kterém jsou uloženy soubory VM;
- Pokud je obraz ISO připojen v nastavení VM, zkontrolujte jeho dostupnost;
- Zkontrolujte nastavení sítě virtuálního počítače. Adaptéry virtuální sítě musí být připojeny k existujícímu virtuálnímu přepínači Hyper-V (stav síťové sítě nesmí být) - Chyba konfigurace);
- Ověřte, zda je spuštěna služba Hyper-V Virtual Management Service (VMMS) a není zamrzlá ve stavu Zastavení;
- Ujistěte se, že antivirus neblokuje přístup k souborům VM. Přidejte cestu k adresáři VM k výjimkám antiviru (viz postup přidání výjimek k integrovanému antiviru systému Windows Server 2016 - Windows Defender);
- Zkontrolujte chyby v protokolu událostí Prohlížeč událostí -> Protokoly aplikací a služeb -> Microsoft -> Windows -> Hyper-V-Worker.