0

我想使用自动脚本导出我所有的 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上面的调用我没有得到任何输出。有一些进展会很棒,因为有些虚拟机非常大(~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 exportlive 时没有进展。

4

1 回答 1

0

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

$vmanagerBackup = @("VBoxManage.exe")
$vmanagerBackup += "export"
$vmanagerBackup += $vmName
$vmanagerBackup += "--ovf10"
$vmanagerBackup += $backupFilename
$vmanagerBackup = $vmanagerBackup -join ' '
Invoke-Expression "$vmanagerBackup"
于 2018-11-16T00:40:06.310 回答