PowerShell Techguy.at

GetDPMTapeList in der Version 1.2 verfügbar

Es gibt mal wieder eine neue Version des GetDPMTapeList Powershell Scriptes.

Diesmal mit 2 Änderungen, die mir so im täglichen Betrieb aufgefallen sind und mir die Arbeit etwas erleichtern.

Meistens nutze ich dieses Script um einem Kunden die Liste der Tapes zu übermitteln, welche er aus der Library nehmen kann.

Zusätzlich dient dieses Script der Dokumentation, zu welchem Zeitpunkt er dann diese Tapes wieder in die Library geben kann.

Da bietet sich natürlich an, die Ausgabe nach Datum zu sortieren, und genau das ist die Änderung.

Details

Um die Ausgabe zuvor zu sortieren,musste ich die Zeilen in ein Array packen und dieses dann sortieren. Danach konnte ich den Inhalt des Arrays in eine CSV Datei exportieren.

Zuerst musste ich eine neue Variable erstellen mit dem Namen Array und diese als Array definieren.

$Array=@()

Danach wird im Magic Teil dieses Array mit dem Ergebnis befüllt.

    $obj = New-Object -TypeName PSObject
    $obj | Add-Member Noteproperty  -Name Expire -value $ExpDate.Date
    $obj | Add-Member Noteproperty -Name Tape -value $Tape.DisplayString
    $obj | Add-Member Noteproperty -Name Slot -value $Tape.Location.Id
    $obj | Add-Member Noteproperty -Name Barcode -value $Tape.Barcode.Value
    $Array+=$obj

Zum Schluss noch das Array nach Datum sortieren und in die CSV exportieren

$Array | Sort expire -Verbose | Export-Csv -Path $File -Encoding ascii -NoTypeInformation

Das Script

Hier noch das gesamte Script in der Version 1.2 inkl. ChangeLog

########################################################
# Name: GetDPMTapeList.ps1                              
# Creator: Michael Seidl aka Techguy                    
# CreationDate: 17.01.2014                              
# LastModified:23.01.2014                               
# Version: 1.1                                         
# Doc: https://www.techguy.at/tag/getdpmtapelist/
#
# Description: Read all Tapes in Library which are ready
# to take Offiste, get the Expiration Date an Epxort this
# Information in a CSV file  
#   
# Set the File Name
#
# Version 1.2 - CHANGE: Input of Tapes to an Array
#               CHANGE: Sort Ouput by Expire Date
# 
# Version 1.1 - FIX: Format the Output ExpireDate
#             - CHANGE: DPMServer takes local Computername
#             - CHANGE: File will be saved at Script Location
# Version 1.0 - RTM
########################################################
#
# www.techguy.at                                        
# www.facebook.com/TechguyAT                            
# www.twitter.com/TechguyAT                             
# michael@techguy.at 
########################################################

#Import Modules
Import-Module dataprotectionmanager

#Variables
$DPMServer="$env:COMPUTERNAME"
$FileName="DPMTapeList.csv"
$Array=@()

#Settings
$Library=Get-DPMLibrary -DPMServerName $DPMServer
$Tapes=Get-Tape -DPMLibrary $Library | where {$_.IsOffsiteReady -eq $True}
$Path = $MyInvocation.MyCommand | Split-Path
$File=$Path+"\"+$FileName

#Delete File and create new one
if (Test-Path $File) {Remove-Item $File}
"Expire;Name;Slot;Barcode"| Out-File -FilePath $File -Append

#Magic
foreach ($Tape in $Tapes) {
    $RPs=Get-RecoveryPoint -Tape $Tape
    foreach ($RP in $RPs) {
        $ExpDate = Get-Date
        if ($ExpDate -lt $RP.recoverysourcelocations[0].expirydate) {
            $ExpDate = $RP.recoverysourcelocations[0].expirydate
        } 
    }
    $obj = New-Object -TypeName PSObject
    $obj | Add-Member Noteproperty  -Name Expire -value $ExpDate.Date
    $obj | Add-Member Noteproperty -Name Tape -value $Tape.DisplayString
    $obj | Add-Member Noteproperty -Name Slot -value $Tape.Location.Id
    $obj | Add-Member Noteproperty -Name Barcode -value $Tape.Barcode.Value
    $Array+=$obj
}
$Array | Sort expire -Verbose | Export-Csv -Path $File -Encoding ascii -NoTypeInformation

Alle Informationen und Updates zu diesem Script erhaltet ihr unter diesem Link:

https://www.techguy.at/tag/getdpmtapelist/

 

Den Download zum aktuellen Script findet ihr in der TechNet Gallery: http://gallery.technet.microsoft.com/DPM-Tape-List-with-1f9fc697

Bitte nehmt euch die Zeit und bewertet meine Downloads in der TechNet Gallery, würde mich sehr freuen.

Hier findet ihr alle meine Download in der TechNet Gallery: http://gallery.technet.microsoft.com/site/search?f%5B0%5D.Type=Tag&f%5B0%5D.Value=TechguyAT&f%5B0%5D.Text=TechguyAT

Michael Seidl aka Techguy

2 thoughts on “GetDPMTapeList in der Version 1.2 verfügbar”

  1. Hi, tolles Skript. Ich habe es ein wenig optimiert, da die Suche zu teuer ist 😉

    $RPs=Get-RecoveryPoint -Tape $Tape
    foreach ($RP in $RPs) {
    $ExpDate = Get-Date
    if ($ExpDate -lt $RP.recoverysourcelocations[0].expirydate) {
    $ExpDate = $RP.recoverysourcelocations[0].expirydate
    }
    }

    Kann durch…

    $ExpDate = (Get-RecoveryPoint -Tape $Tape).recoverysourcelocations.expirydate | Sort-Object -Descending | Select-Object -First 1

    …ersetzt werden

    LG Marc

Leave a Comment

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

*