Restore di Virtual Machine Hyper-V con Powershell e DPM 2007
Ci sono poche cose che mi fanno arrabbiare quanto la documentazione (?) di Powershell in Data Protection Manager (DPM) 2007 ... inesistente è dire davvero poco
.
Tra l'altro il modello e l'implementazione delel CmdLets scelto dal team di DPM è quantomeno originale ... e poco omogeneo con Powershell stesso e le sue filosofie.
Siccome ci ho sbattuto sopra la testa non poco (e sono molto BUONO
), condivido su questo blog un pò di codice per produrre un restore automatizzato di una Virtual Machine Hyper-V, protetta da DPM.
# Un pò di dichiarazioni
$dpmname = $env:computername
$pgName = "PG03-HyperV"
$dsname = 'Backup Using Child Partition Snapshot\Earth'
$targetserver = "cerere.domain.local"
$targetlocation = "D:\"
Ora dobbiamo recuperare Il Protection Group che contiene il DataSource di cui intendiamo fare restore e poi selezioniamo l'ultimo Recovery Point, tra quelli disponibili:
$pg = get-protectionGroup -DPMServerName $dpmName | where {$_.friendlyname -eq $PgName}
$ds = get-datasource -protectiongroup $pg | where {$_.name -eq $DsName}
$ro = Get-RecoveryPoint -Datasource $ds | sort | select -last 1
A questo punto la parte più "complessa" (la New-RecoveryOption è tra le CmdLets più astruse e peggio documentate ...)
$Rop = New-RecoveryOption -GenericDatasource -TargetServer $targetserver -RecoveryLocation CopyToFolder -RecoveryType Restore -TargetLocation $targetlocation
E ora l'ultimo passaggio 
Recover-RecoverableItem -RecoverableItem $Ro -RecoveryOption $rop
Ora non ci resta che attendere e in un subfolder (generato automaticamente da DPM) troveremo i files (VHD ed XML) che costituiscono la VM, comprensivo di VM State.
Nella sessione Virtual machines backup strategies with Data Protection Manager (DPM) | VC18 che presenterò alla Microsoft Virtualization Conference '09 vedremo qualche altro esempio di scripting per Hyper-V con Powershell e DPM, magari producendo una versione più completa di questo frammento di codice.
Ciao, Claudio
MCSA, MCSE, MCT su NT/2000/2003
MCTS: Windows Server 2008 Active Directory/Application Platform/Network Infrastructure