Jump to content

TSM-Server mit PowerShell abfragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich habe gestern das erste Mal PowerShell benutzt und muss jetzt ein Skript schreiben, mit dem ich einen TSM-Server über den TSM-Client abfragen kann.

 

Es gibt auf jedem Client-System eine dsmc.exe, die ich mit PS aufrufen kann, um dort Befehle abzusetzen.

Habe die IP des Servers verändert um zu testen, ob er merkt, dass keine Verbindung zum Server besteht.

 

Mit dem Befehl -query access bekomme ich dann folgende Ausgabe:

tsm>query access

ANS1302E No objects on server match query

Unabhängig, ob das jetzt der richtige Befehl ist, um die Verfügbarkeit des TSM-Servers abzufragen, möchte ich gerne wissen, wie ich den Errorcode abfragen kann, um entsprechend darauf reagieren zu können.

 

Ich muss den Exitcode bzw. Fehlermeldung in eine Variable oder sowas schreiben können, um in einem Skript damit arbeiten zu können.

 

Danke schon mal im Vorraus :)

Link zu diesem Kommentar

...mit dem $lastexitcode konnte ich die Ausgabe des Befehls in die Variable speichern und könnte sie weiterverwenden.

 

Jetzt habe ich aber noch das Problem, dass der Text relativ lang ist:

IBM Tivoli Storage Manager
Command Line Backup-Archive Client Interface
 Client Version 6, Release 2, Level 1.0  
 Client date/time: 09.05.2012 14:11:12
(c) Copyright by IBM Corporation and other(s) 1990, 2010. All Rights Reserved.

Node Name: HDEBEKS1073
ANS1017E Session rejected: TCP/IP connection failure

 

Muss prüfen, ob die Ausgabe der letzten Zeile diesen ANS1017E code hat.

Kann ich also $lastexitcode auf einem Inhalt untersuchen?

 

Note:

$? funktioniert nicht, weil ich immer ein true zurück bekomme

Mit $ERROR[7] bekomme ich immerhin die letzte Zeile noch raus

bearbeitet von raven16
Link zu diesem Kommentar
Dann speicher das in eine neue Variable.

 

So bekomme ich auch kein Output

###TSM-Test-Script
#TSM-Console aufrufen
cd -path "C:\Program Files\Tivoli\TSM\baclient"
$Error = .\dsmc.exe query session
#Befehle zum Testen der Verfügbarkeit
echo ""
echo "Dein letzter Versuch ergab:"
$output = $Error[-1]
echo $output

Der gibt echo $output gar nicht aus sondern beendet das skript einfach.

Link zu diesem Kommentar

Weil ich einen bestimmten Wert aus der Fehlermeldung brauchte und mir vorgeschlagen wurde, das zu benutzen? :D Jetzt bin ich ganz verwirrt.

 

Um aus der Ausgabe den Wert ANS1017E herauszufiltern, habe ich gestern schon folgendes gemacht:

$Error = .\dsmc.exe query session
$Error = -split $Error[7]
if($Error[0] -eq "ANS1017E")
{
echo "TSM-Connection Error"
$CT_ERROR = 1
}
else
{
echo "No TSM-Connection Error"
$CT_ERROR = 0
}

 

Das funktioniert auch so jetzt, auch wenn es jetzt nicht vielleicht die eleganteste Lösung ist.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...