Datasources mittels PowerShell zur DPM Schutzgruppe hinzufügen

PowerShell

Heute mal wieder ein PowerShell Script zu System Center Data Protection Manager.

In diesem zeige ich euch ein einfaches Beispiel um eine SQL Datenbank einer Schutzgruppe im SCDPM hinzuzufügen.

Das Script ist so aufgebaut das genau eine Source hinzugefügt wird, kann aber sehr schnell umgeschrieben werden um mit mehreren Datasources zu arbeiten.

Zuerst einmal gehen wir die einzelnen Bereiche, Schritt für Schritt durch, am Ende mal wieder de Download zum gesamten Script.

Der Anfang

Zu Beginn importieren wir die SCDPM CMDlets

#Import Modules
Import-Module DataProtectionManager

Danach setzen wir unsere benötigten Variablen

$Protectiongroup = Die Schutzgruppe der wir die Datasource hinzufügen wollen
$Server = Der Server auf dem sich die Datasource befindet
$Database = Der Name unsere SQL Datenbank
$DPMServer = Der DPM Server auf dem die Schutzgruppe existiert


#Variables
$Protectiongroup=”SQLBronceProtectionGroup”
$Database=”ServiceManager”
$Server=”SVATANSQ01″
$DPMServer=”dsvatandpr2″


Danach folgen ein paar Variablen die wir als Array definieren.

#Settings
$RGList = @()
$joblist = @()
$global:DSlist = @()

Das Script

Jetzt wird spannend, zuerst holen wir unsere Schutzgruppe, in der wir die Datasource hinzufügen wollen und packen diese in die Variable $PG

$PG=Get-DPMProtectionGroup -DPMServerName $DPMServer | where {$_.Name -eq $Protectiongroup}


Als nächstes müssen wir den Server definieren auf dem die Datasource liegt welche wir sichern möchten, auch dies packen wir in eine Variable

$PS=Get-ProductionServer $DPMServer | where {$_.ServerName -eq $Server}


Mit unsere Variable $PS starten wir ein Discovery welches uns alle Datasources am Server ausliest, das ist ähnlich wie der klick auf das “+” in der Serverliste bei der Konfiguration einer Schutzgruppe.

Get-Datasource -ProductionServer $PS -Inquire –Async


Wer den DPM kennt, weiss das die Auswahl der Sorucen manchmal etwas dauern kann, das müssen wir natürlich auch im Scirpt abbilden, dazu folgender Code. Dieser schnappt sich den Job und wartet so lange bis dieser abgeschlossen ist.

Die Variable $global:DSlist wird dabei mit allen Datasouces auf dem Server befüllt, darin sollte auch unsere ServiceManager DB sein

$joblist += register-objectevent -inputobject $PS -Eventname DatasourceDetectionEvent -Action {$global:DSlist += $($Event.SourceEventArgs.ProtectableObjects)}

foreach ($job in $joblist)
{
# 8.1 Waiting for the job to run
while ($job.State -eq “NotStarted”)
{
write-host “Waiting for inquiry to complete” $global:DSlist.count “item(s) obtained…”
sleep 1
}
}


Die Variable $DS wird jetzt mit unsere ServiceManager DB befüllt

$DS = $global:DSlist | where {$_.Name -eq $Database -and $_.Type.IsDatasource}


Die Schutzgruppe müssen wir nun in den Editier-Modus versetzen

$MPG = Get-ModifiableProtectionGroup $PG


Jetzt geben wir unsere Datasource in diese Schutzgruppe und starten sofort die Replikation

Add-DPMChildDatasource -ProtectionGroup $MPG -ChildDatasource $DS

Set-ReplicaCreationMethod -ProtectionGroup $MPG –Now


Zum Abschluss noch die Schutzgruppe wieder schließen und abspeichern

Set-protectiongroup $MPG

Somit haben wir nun eine Datasource mittels PowerShell einer SCDPM Schutzgruppe hinzugefügt.

 

TechNet Gallery Download

You can download this Script at the TechNet Gallery: https://gallery.technet.microsoft.com/Add-Datasource-to-SCDPM-e6596f7d

 

Let me know if you have some Questions.

All my other TechNet Gallery Downloads are here: http://bit.ly/1jrYQoA

PLEASE RATE MY DOWNLOADS AND LET ME KNOW ABOUT YOUR IDEAS FOR THE NEXT VERSION.

Michael Seidl aka Techguy

1 thought on “Datasources mittels PowerShell zur DPM Schutzgruppe hinzufügen”

  1. Pingback: Datasources mittels PowerShell aus DPM Schutzgruppe entfernen » TechGuy

Leave a Comment

Your email address will not be published. Required fields are marked *

*