Heute mal wieder ein PowerShell Script für den SCDPM.
Diesmal handelt es sich um ein Script, welches alle abgelaufenen Tapes als “Frei” markiert und somit wieder beschreibbar macht.
Sehr nützlich dies einmal täglich am DPM Server laufen zu lassen, somit müsst ihr euch nicht selbst darum kümmern.
Kommen wir zum Script und zum Ablauf.
Das Script
Unser DPM Server hat momentan 2 abgelaufene Tapes.
Nun kommen wir zu unserem Script, diese besteht wieder mal aus der Definition des DPM Servers und dem Import des DPM Modules.
#Kann so belassen werden wenn das Script am DPM Server ausgeführt wird, ansonsten den Hostnamen eintragen
$DPMServerName=”$env:COMPUTERNAME”#Holt sich aus der Registry den Pfad der SCDPM installation und importiert das PS-Modul, funktioniert nur ab SCDPM 2012
$installPath = (Get-ItemProperty “HKLM:\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Setup” “UIInstallPath”).UIInstallPath
$dpmModuleFullPath = $installPath + “Modules\DataProtectionManager\DataProtectionManager.psd1”
Import-Module $dpmModuleFullPath
Danach testen wir ob der DPM Server auch verfügbar ist, sollte dies nicht der Fall sein wird das Script beendet.
#Test ob der DPM Server verfügbar ist
if (!(Connect-DPMServer $DPMServerName))
{
Write-Error “Failed to connect To DPM server $DPMServerName”
exit 1
}
Danach holen wir uns eine Liste aller Libraries die der DPM kennt, und prüfen jedes Tape ob dies abgelaufen ist, ist dies der Fall wird es als Frei markiert, zusätzlich gibt’s noch einen nette Ausgabe
$LibraryList = Get-DPMLibrary -DPMServerName $DPMServerName
foreach ($library in $LibraryList)
{
$expiredTapeList = @(Get-Tape -DPMLibrary $library |
? {$_ -is [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.LibraryManagement.ArchiveMedia] -and$_.DatasetState -eq “Recyclable”})
if ($expiredTapeList.Length -gt 0)
{
Write-Host “Marking $($expiredTapeList.Length) tape(s) as free in $($library.UserFriendlyName).”
Set-Tape -Tape $expiredTapeList -Free
$expiredTapeList | select Location
}}
Ich habe das Script jetzt mal auf dem betroffenen DPM Sever ausgeführt und bekomme folgende Ausgabe.
Das sind genau die 2 Tapes die auf dem ersten Bild als abgelaufen markiert waren.
Jetzt folgt die Kontrolle im DPM ob diese 2 Tapes nun auch wirklich als Frei markiert sind.
Hat funktioniert, das ganze Script könnt ihr nun als Task am DPM Server laufen lassen.
[wpdm_file id=9]
Michael Seidl aka Techguy
Hey Michael,
Das fetzt. Leider steh ich noch voll am Anfang mich ernsthafter mit PS zu beschäftigen und benutze nur Vorlagen wie deine.
Ich suche eines, bei dem ich einen spezifischen Slot der noch nicht abgelaufen ist, “forced” löschen/as free markieren kann.
Ich habe zum testen oder im Fehlerfalle ab und an Tapes die nur zu ein paar MB gefüllt sind und ich nicht unverzüglich in den Pool zurück schieben kann.
Aktuell zum Beispiel auch ein Tape, das versehentlich erst zum Ende nächsten Jahres abläuft.
Hast du so etwas auf Lager oder kannst mir den Weg zeigen? 😉
Natürlich findet man das gewünschte Script wenn man richtig sucht…. 😉
Findet man hier:
http://blogs.technet.com/b/dpm/archive/2007/09/04/cli-script-force-mark-tape-as-free.aspx
Gerade probiert du funktioniert wie gewünscht.
Danke für den Link
Hallo Michael,
In Zeile 23 steht ein überflüssiger Eintrag:
$DPMServerName = “svphwedp02”
Danke, wurde entfernt und kommt bei der nächsten Version
Hey Michael,
Kannst du mir nen Tipp geben wie ich das ganze via Task Scheduler automatisiere?
Ich habe mich an folgende Anleitung gehalten http://www.sharepointdiary.com/2013/03/create-scheduled-task-for-powershell-script.html
Leider bekomme ich diverse Fehlermeldungen aber nie 0x0.
Ich habe verschiedenen Benutzer inklusive meines eigenen benutzt mit dem ich es “manuell” laufen lassen kann.
Da ich auch nicht weiß wie es debuggen kann und im Ereignislos nichts zu sehen ist, steh ich ziemlich doof da. 😉
Hi,
ich hab grade einen Artikel geschrieben, dieser wird um 09:00 veröffentlich, hoffe dann funktionierst 🙂
Das ist kuuhl. Ich schaue mir das nächste Woche an und probiere es aus. Vielen Dank. 😉
Hallo Michael, leider läuft dein Link (https://www.techguy.at/?wpdmact=process&did=OS5ob3RsaW5r) ins leere…
Gruss Simon