使用PowerShell导出VirtualBox VM并显示进度

时间:2018-08-06 10:05:23

标签: powershell windows-10 virtualbox console-output

我想使用自动化脚本导出所有VirtualBox VM进行备份。以下命令应在我的PS脚本中进行导出:

cmd.exe -c "vboxmanage export Antergos -o D:\Temp\test.ova"

通过在PowerShell中运行vboxmanage命令,它以10%的步骤向我显示进度,如下所示:

PS C:\Users\XYZ> vboxmanage export Antergos -o D:\Temp\test.ova
0%...10%...

但是使用上述的cmd调用我没有得到任何输出。取得一些进展非常棒,因为某些VM很大(〜70GB)。我尝试了其他变体:

iex 'vboxmanage export "$($name)" -o "$targetFile"'
& "vboxmanage export ""$($name)"" -o ""$targetFile"""
Invoke-Command -ScriptBlock { cmd.exe /c "vboxmanage export ""$name"" -o ""$fullTargetFile""" 4>&1 } 4>&1
Invoke-Expression "vboxmanage export ""${name}"" -o ""${fullTargetFile}"" 2>&1"

他们都没有向我展示进度,自从Invoke-Expression "vboxmanage --help"打印帮助,但上面显示的使用vboxmanage export时没有任何进展。

1 个答案:

答案 0 :(得分:0)

我按照以下方式进行操作,并且显示了所有操作的vboxmanager输出。

$vmanagerBackup = "VBoxManage.exe"
$vmanagerBackup += @(" export ")
$vmanagerBackup += @($vmName)
$vmanagerBackup += @(" --ovf10")
$vmanagerBackup += @($backupFilename)
Write-host "$vmanagerBackup"
Invoke-Expression "$vmanagerBackup"