Vytvoření boot entry bez Hyper-V pomocí PowerShell skriptu

Často potřebuji na jedom počítači spouštět virtuální stroje pomocí VirtualBoxu a emulátory Windows Mobile běžící pod Hyper-V. Bohužel současně může být povolen pouze jeden z nich. Nejjednodušší řešení je vytvoření dvou boot entries – jeden se zapnutým a jeden s vypnutým Hyper-V.

Příkazová řádka

Skvělý Scott Hanselman popsal rychlý způsob pro vytvoření sekundráního boot entry pomocí příkazové řádky na svém blogu.

Jako součást tvorby svého PowerShell Chocolatey instalačního skriptu pro usnadnění nastavení čisté instalace Windows jsem chtěl tuto úlohu zautomatizovat (a vyhnout se nutnosti copy-paste).

PowerShell skript

Skript je velmi jednoduchý:

$bcdResult = ( bcdedit /copy `{current`} /d "No Hyper-V" ) | Out-String
$bcdResult -match "\{.+\}"
bcdedit /set $matches[0] hypervisorlaunchtype off

První řádka skriptu spouští nástroj bcdedit  a vytváří kopii aktuálního boot entryVýsledkem je řetězec následujícího tvaru:

The entry was successfully copied to {XX-XX-XXX-XXXX-XXXXXXXX}.

Potřebujeme vyparsovat identifikátor mezi složenými závorkami. S tím nám vypomohou regulární výrazy na druhém řádku skriptu. Nalezené výsledky jsou uloženy v proměnné $matches .

Nakonec použijeme nalezený identifikátor pro modifikaci nového boot entry s příkazem pro zakázání Hyper-V.

A to je vše! Snadné, ale pohodlné. Skript můžete snadno spustit a nový boot entry bez Hyper-V se automaticky vytvoří. Nezapomeňte skript spouštět s administrátorskými právy.

Skript si můžete stáhnout zde.

Buy me a coffeeBuy me a coffee

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.