如何更改 VMWare Workstation 网络适配器的 vnet?(最好使用 vmrun)

如何更改 VMWare Workstation 网络适配器的 vnet?(最好使用 vmrun)

在过去的几个小时里,我一直在使用 vmrun,试图让 Workstation 7.x 更改不同自定义网络之间的 VM 网络连接 (vnet)。如果 VM A 配置为 vnet2,那么我可以使用 vmrun 将其更改为 vnet3。

这样做有很好的自动化理由,但项目不够长,不值得深入研究 VIX。

到目前为止,我可以读取以太网设备的 VM 的运行时配置:

vmrun.exe readVariable C:\Working\Virtual\XYZ\XYZ-WWW\XYZ-WWW.vmx runtimeConfig ethernet0.vnet
VMnet2

我可以对它进行修改:

vmrun.exe writeVariable C:\Working\Virtual\XYZ\XYZ-WWW\XYZ-WWW.vmx runtimeConfig ethernet0.vnet VMnet3

在 Workstation 中,您看不到任何变化。虚拟机的现有/加载配置仍然是旧配置。(VMnet2,这很糟糕,因为我希望它是新的 VMnet3 设置)如果我调用 vmrun 来获取 ethernet0.vnet 设置,它将是 VMnet3。(这是我设置的,这很好)

如果我手动断开网络接口,Workstation 将加载配置 ethernet0.vnet 设置并显示它是 VMnet3。如果我随后连接接口(右键单击右下角的 VM 网络图标并选择“连接”),它将位于正确的网络上。

如果我也暂停虚拟机,然后恢复它,它将获取新的运行时配置更改。(基本上,运行时配置设置将被写入 .vmx 文件,然后再次读取)

有没有办法让它按预期工作?例如,您对虚拟机的运行时配置进行了更改以用于网络,并且根据需要使用或重新加载它?没有 vmrun 命令可以重新加载运行时配置,当我使用 vmrun 暂停/启动时,启动命令会尝试在全新工作站 GUI 窗口中启动虚拟机。(并且它要求所有权!?)

提前致谢!

答案1

在一些 vmrun 测试期间,我注意到暂停 VM 不会将运行时配置写入磁盘,并且当 VM 未运行时,您无法使用 vmrun 为 ethernet0.vnet 写入变量。过去,我曾通过编辑 .vmx 文件手动更改 VM 的 MAC,因此我决定尝试在暂停时自行编辑它,然后重新启动它。VMWare Workstation 将在暂停/停止 VM 时获取 .vmx 更改。(但不暂停)这足以让我编写批处理脚本来处理 .vmx 文件的编辑。至少 vmrun 可以暂停和启动 VM。

VMWare 会将 vmrun 包含在 Workstation 中,这对我来说似乎非常违反直觉,您可以在其中编辑运行时配置的变量,但实际上并不使用它们!尝试更改 displayName。您必须手动或通过 vmrun,暂停然后启动 VM 才能看到更改。应该有一个选项可以从 .vmx 重新加载运行时配置。

相关内容