web-dev-qa-db-ja.com

VMware Workstation:vmrunを使用してすべての仮想マシンを一時停止します

次のコマンドラインで特定のVMware仮想マシンを一時停止できることはわかっています。

vmrun suspend /path/to/virtual_machine_file.vmx

vmrunを使用してall仮想マシンを一度に一時停止する方法はありますか?何かのようなもの vmrun suspend all

3
Josh

簡単な答えを期待していましたが、答えがなかったので、自分でスクリプトを書きました。これが誰かに役立つことを願っています! Ruby-実行すると、vmrun listを呼び出して、実行中のすべてのVMのリストを取得し、最初の行を削除し( "実行中のVMの総数: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
Josh

ここでの回答のWindowsバッチファイルバージョン(3番目の投稿): http://communities.vmware.com/thread/92951?tstart=

上記のリンクの元の作成者からコードを借用しており、彼らの功績に値するという事実のため、私はソリューションを直接再現しませんでした。私は彼らが行ったことを実行し、実行中のすべてのVMを一時停止するように調整しました(元のスクリプトは一時停止、バックアップ、再開します)。

2
Wayne Hartell

これを行う方法が必要だったので、ここでのヒントは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"

1
Scott C