Создание и загрузка PowerShell Hyper-V VM - PullRequest
2 голосов
/ 10 апреля 2020

Я пытаюсь использовать PowerShell для создания и запуска виртуальной машины:

$vmName = "vm" + (Get-Date -Format "yyyy-MM-dd-HH-mm")
New-VM -Name $vmName -NewVHDPath "$vmName.vhdx" -NewVHDSizeBytes 64GB -MemoryStartupBytes 8GB -Path $vmName -Generation 2

# Attach the Windows 10 ISO as a DVD drive to the VM
Add-VMDvdDrive -VMName $vmName -Path win.iso

# Set correct boot order (DVD drive first)
$dvd = Get-VMDVDDrive -VMName $vmName
Set-VMFirmware -VMName $vmName -FirstBootDevice $dvd

# Start the VM and connect to it
Start-VM -Name $vmName
vmconnect $env:COMPUTERNAME $vmName

Это хорошо работает, создает виртуальную машину, устанавливает Windows 10 ISO, устанавливает правильный порядок загрузки, запускает виртуальную машину и подключается к нему.

Однако сразу после запуска ВМ не загружается. Во-первых, всплывает черный экран, предлагающий мне нажать любую клавишу для загрузки с DVD, однако это только на короткую секунду, и, прежде чем мне удается это сделать, я получаю этот экран:

enter image description here

Порядок загрузки в настройках виртуальной машины правильный: сначала DVD, затем сеть, затем VHD. Я хочу загрузиться с DVD, но у меня нет возможности нажать клавишу, чтобы сделать это до появления белого экрана.

Более того, я хочу сделать сценарий так, чтобы он автоматически входил в DVD / ISO boot без необходимости нажимать клавишу для ввода этой опции загрузки . Как я могу это сделать? Моя конечная цель - полностью автоматическая установка, которая начинается с вызова сценариев и заканчивается установленным гостем Windows 10, выполняющим сценарий PowerShell, совместно используемый с хоста. Это означает, что я не могу попросить пользователя нажать клавишу в определенное время, чтобы ускорить последовательность загрузки.

Редактировать: 50 баллов за того, кто может продемонстрировать сценарий PowerShell, который создает, запускает, подключает и загружает виртуальную машину Hyper-V с Windows 10 ISO, чтобы в конце на первом экране установщика Windows 10 была запущенная виртуальная машина.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Я думаю, что ваша проблема не является проблемой PowerShell. Ваша проблема в том, что вы используете обычную загрузочную ISO, но в вашем случае вам нужно создать пользовательский WIM (Windows Imaging File). Если вы создадите его, вы сможете начать процесс установки без участия человека.

Я не хочу дублировать текст, написанный уже на superuser.com; это долго и много шагов. Я рекомендую использовать второй подход - Создание собственного ISO из Windows 10 , так как это имеет смысл и шаг за шагом проведет вас по созданию собственного WIM.

1 голос
/ 17 апреля 2020

Попробуйте это:

# Start the VM and connect to it
vmconnect $env:COMPUTERNAME $vmName
Start-VM -Name $vmName
Start-Sleep -Seconds 1
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")

Возможно, вам придется настроить время сна, поэтому, вероятно, лучше выбрать пользовательский wim.

...