Jump to content

Enable-Mailbox mit IF true / False


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

Recommended Posts

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?

Edited by David
Link to comment

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
}
Edited by PowerShellAdmin
Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...