David 10 Geschrieben 26. April 2013 Melden Teilen Geschrieben 26. April 2013 (bearbeitet) Hallo ich würde gerne eine IF Anweisung in meinem Script einbinde. Ich habe schon ein Script was mit die Infos aus einer CSV Datei ausliest und dazu die Postfächer anlegen! So jetzt würde ich gerne die Anweisung einbauen, wenn Fehler dann schreib in LOG -> " Fehler blblbl" Ich habe mir schon ein paar Infos aus dem Netz gezogen, leider komme ich damit nicht zurecht! Import-Csv 'c:\_scripts\import.csv' | foreach{ %{ Enable-Mailbox -Identity $_User -Alias $_Alias} } Hat mir jemand eine kleine Hilfestellung? bearbeitet 26. April 2013 von David Zitieren Link zu diesem Kommentar
Timsk 11 Geschrieben 26. April 2013 Melden Teilen Geschrieben 26. April 2013 Hi, in deinen Fall wäre vielleicht try/catch/(finally) sinvoller ? http://blogs.technet.com/b/heyscriptingguy/archive/2010/03/11/hey-scripting-guy-march-11-2010.aspx Viele Grüße! Zitieren Link zu diesem Kommentar
PowerShellAdmin 169 Geschrieben 29. April 2013 Melden Teilen Geschrieben 29. April 2013 (bearbeitet) und was spricht gegen eine globale Trap ?Try Catch macht ja eher sinn, wenn man an diversen Stellen Fehler abfangen möchte und womöglich Customerrors aufbauen will.Will man hingegen nur schauen ob der Skript lief und welcher Fehler auftrat, dann würde ich eine Trap nutzen. Der Trap fängt sämtliche Fehler im gesamten Skript - nicht nur in einem Bereich ab. Hier ein schönes Beispiel aus dem Buch "Windows Power Shell 3.0" von Tobiass Weltner (leicht angepasst) Zur Erklärung - der untere Skript ließt den Ursprung der letzten Fehler und ruft dann ein Template auf und gibt so eine detaillierte und gut formatierte Meldung aus - auch ins Logfile.Den Code solltest du dir in den Skriptheader einfügen. #Variable mit Pfad zu Logdatei $log_file="c:\powershell.log" #Hier die eigentliche Fehlerbearbeitung trap { $line=$_.InvocationInfo.Line $sriptname=$_.InvocationInfo.ScriptName $linenumber=$_.InvocationInfo.ScriptLineNumber $lineoffset=$_.InvocationInfo.OffsetInLine $message=$_.Exception.Message $time=get-date() $user=$env:USERDOMAIN+'\'+$env:USERNAME $template=@' ##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.# Scripterror in "{0}" at {1} in line {2} column {3}: Exception: "{4}" Commandline: {5} Run as: {6} ##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.##.# '@ $message=$template -f $scriptname,$time,$linenumber,$lineoffset,$message,$line,$user $message>>$log_file #beendet den Skript mit einer Fehlerrückgabe exit 1 } bearbeitet 29. April 2013 von PowerShellAdmin Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.