![通过 powershell 脚本从 DPM2010 恢复虚拟机](https://linux22.com/image/525334/%E9%80%9A%E8%BF%87%20powershell%20%E8%84%9A%E6%9C%AC%E4%BB%8E%20DPM2010%20%E6%81%A2%E5%A4%8D%E8%99%9A%E6%8B%9F%E6%9C%BA.png)
我需要通过 powershell 恢复 DPM 2010 覆盖的虚拟机。我用谷歌搜索,但找不到关于 DPM 和 Powershell 的有用文档,这有点令人痛苦。
参数: - VM 在 Server 2003 64 位节点上的群集共享卷上运行,其中安装了 Server 2005 R2 - 两个节点上都安装了 DPM 2010 服务器代理 - 可以使用 DPM GUI 顺利恢复 VM
我想要什么? - 每天将最新的虚拟机恢复到网络位置
我的脚本的当前状态:
$pg = get-protectiongroup -dpmservername DPM2010
$ds = get-datasource -protectiongroup $pg
$rp = get-recoverypoint -datasource $ds[0]
它能做什么:
$pg shows me the Protection Groups, ok.
$ds shows me all virtual machines from the Recovery Group, nice.
$rp shows me all recovery points of the Virtual Machine from line 0, awesome!
现在我不知道该怎么做。我想获取最新的恢复项目并将其还原到网络上任何位置的网络共享。
我该如何做呢?
谢谢!!
托比
答案1
当前工作脚本:
#set target location
$targetserver = "FQDN of Server"
$targetlocation = "drive letter with :\"
#get protectiongroup name
$pg = get-protectiongroup -dpmservername DPMServerName
#get all Virtual Machines from recovery group
$ds = get-datasource -protectiongroup $pg
#how many VMs do we have?
$an = $ds.count
#as long as: a is null, run as long as a is < 9 and a+1
For ($a = 0; $a -lt $an; $a++)
{
$rp = get-recoverypoint -datasource $ds[$a] | sort -Property RepresentedPointInTime -Descending | select -First 1
$Rop = New-RecoveryOption -GenericDatasource -TargetServer $targetserver -RecoveryLocation CopyToFolder -RecoveryType Restore -TargetLocation $targetlocation
Recover-RecoverableItem -RecoverableItem $Rp -RecoveryOption $rop
}