2016-07-03 5 views
0

Моя цель - создать новую виртуальную машину, скопировать .vhdx в местоположение, добавить .vhdx в новую виртуальную машину и затем загрузить ее.Powershell: copy-item attach .vhdx to VM

Моя проблема заключается в том, что .vhdx не прикреплен к ВМ. Я не знаю, почему.

Я хочу сказать, что Copy-Item ошибочен, так как он зависает, когда я запускаю эту строку, по крайней мере, кажется, так, как никогда не завершается, и я пытаюсь это сделать на диске SSD.

$VM_NAME = "PS_TEST_VM" 
$VM_RAM = 1GB 
$VM_RAM_MAX = 2GB 
$VM_CPUS = "4" 
$VM_DEST_PATH = "C:\Users\Public\Documents\Hyper-V\Virtual hard disks" 
$VM_TO_COPY = "WIN81.1.vhdx" 
$VM_HOST = "MAINKITTEN" 
$NETWORK_SWITCH = "DEFAULTSWITCH" 
$ROOT_VHD_TPL = "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\WIN81.1.vhdx" 

# CREATE 
New-VM -Name $VM_NAME -Path $VM_DEST_PATH -NoVHD -Generation 2 -MemoryStartupBytes $VM_RAM -SwitchName $NETWORK_SWITCH 
Set-VM -Name $VM_NAME -ProcessorCount $VM_CPUS -DynamicMemory -MemoryMinimumBytes $VM_RAM -MemoryStartupBytes $VM_RAM -MemoryMaximumBytes $VM_RAM_MAX 
# COPY AND ATTACH 
Copy-Item -Path "${VM_DEST_PATH}\${VM_TO_COPY}" -Destination "${VM_DEST_PATH}\${VM_NAME}.vhdx" 
Add-VMHardDiskDrive -VMName $VM_NAME -path "${VM_DEST_PATH}\${VM_NAME}.vhdx" 

Start-VM $VM_NAME 
echo "done" 

ответ

1

Вы пробовали копирование .vhdx первого использования параметра -Force, затем создать новую виртуальную машину с existing VHD parameter set syntax?

Синтаксис

Parameter Set: Existing VHD 
New-VM [[-Name] <String> ] [[-MemoryStartupBytes] <Int64> ] -VHDPath <String> [-AsJob] 
      [-BootDevice <BootDevice> ] [-ComputerName <String[]> ] [-Path <String> ] 
        [-SwitchName <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>] 

Код

# COPY 
Copy-Item -Path "${VM_DEST_PATH}\${VM_TO_COPY}" -Destination "${VM_DEST_PATH}\${VM_NAME}.vhdx" -Force 
# CREATE and Attach vhdx 
New-VM -Name $VM_NAME -MemoryStartupBytes $VM_RAM -VHDPath "${VM_DEST_PATH}\${VM_NAME}.vhdx" -Path $VM_DEST_PATH -SwitchName $NETWORK_SWITCH -Generation 2 
Set-VM -Name $VM_NAME -ProcessorCount $VM_CPUS -DynamicMemory -MemoryMinimumBytes $VM_RAM -MemoryStartupBytes $VM_RAM -MemoryMaximumBytes $VM_RAM_MAX 

Start-VM $VM_NAME