通过PowerShell向Hyper-V添加VM时的路径配置问题
问题解答
1. 正确获取VirtualMachinePath的方法
你之前用Select-Object VirtualMachinePath得到的是包含属性的对象,而非纯字符串路径,这会导致后续命令格式错误。两种正确提取路径的方式:
- 方式一:使用
-ExpandProperty直接提取属性值$config = Get-VMHost | Select-Object -ExpandProperty VirtualMachinePath - 方式二:直接访问主机对象的属性(更简洁)
$config = (Get-VMHost).VirtualMachinePath
执行后$config会得到纯字符串F:\vmconfigs,可直接用于后续参数。
2. PowerShell创建VM不使用默认路径的原因
因为你在New-VM命令中指定了-Path $driv\vm参数——这个参数的作用就是强制指定虚拟机配置文件的存储路径,会直接覆盖Hyper-V主机的默认VirtualMachinePath设置。
- 若想让配置文件使用默认的
F:\vmconfigs,只需删除命令中的-Path参数即可,此时New-VM会自动采用主机默认路径,VHDX文件默认会放在配置路径下的Virtual Hard Disks文件夹中。 - 如果需要分开存放配置文件和VHDX,正确的命令示例如下(需指定VHDX的完整文件路径):
$vmName = "你的虚拟机名称" $vhdPath = "$driv\vm\$vmName.vhdx" # 这里要包含具体的VHDX文件名 $configPath = (Get-VMHost).VirtualMachinePath New-VM -Name $vmName -MemoryStartupBytes 8192MB -VirtualHardDiskPath $vhdPath -Path $configPath -Generation 2 -SwitchName (Get-VMSwitch).Name
内容的提问来源于stack exchange,提问作者ErocM
相关产品推荐
相关产品推荐

