VMware Workstation:使用 vmrun 暂停所有虚拟机

VMware Workstation:使用 vmrun 暂停所有虚拟机

我知道我可以使用以下命令在命令行上暂停给定的 VMware 虚拟机:

vmrun suspend /path/to/virtual_machine_file.vmx

有什么办法可以暂停全部一次使用多个虚拟机vmrun?类似vmrun suspend all

答案1

好吧,我本来希望得到一个简单的答案,但是由于没有答案,所以我编写了自己的脚本。希望这对某些人有帮助!它是用 ruby​​ 编写的 - 运行时,它将调用vmrun list以获取所有正在运行的虚拟机的列表,删除第一行(“Total running VMs: x”),然后调用vmrun suspend所有剩余的行。

#!/usr/bin/ruby

VMRUN='/usr/bin/vmrun'

vms = []
open("|#{VMRUN} list") do |p| vms = p.readlines.map {|l| l.chomp } end
vms.shift
vms.each do |vmxfile|
  print "Suspending #{vmxfile}"
  system("#{VMRUN} suspend #{vmxfile}")
end

答案2

Windows 批处理文件版本的答案在这里(第 3 篇文章): http://communities.vmware.com/thread/92951?tstart=0

我没有直接复现该解决方案,因为它借用了上述链接中原作者的代码,他们值得称赞。我只是采用了他们的做法,并对其进行了调整,使其暂停所有正在运行的虚拟机(原始脚本暂停、备份和恢复)。

答案3

我只是需要一种方法来做到这一点,这里给我的提示是 vmrun。我的简单命令行解决方案(来自 VMware 目录):

for /f "tokens=* skip=1" %a in ('vmrun list') do vmrun suspend "%a"

如果在 bat 文件中:

for /f "tokens=* skip=1" %%a in ('vmrun list') do vmrun suspend "%%a"

相关内容