tisdag 29 maj 2012

Felhantering i powershell

Felhantering i Powershell med Try and Catch är relativt enkelt. Jag hade däremot lite mer besvär att hitta namnet på de undantagsfel som som kastats.

Här är ett exempel hur du hittar namnen.

import-module activedirectory
try
    {new-aduser jimmy}
Catch
    {write-host "Okänt fel"
    write-host "Fel text: " $_
    write-host "Undantagsfel: " $_.Exception.GetType()}
Detta svar får jag:
Okänt fel
Fel text:  The specified account already exists
Undantagsfel:  Microsoft.ActiveDirectory.Management.ADIdentityAlreadyExistsException

Med hjälp av denna strängen kan jag hantera detta i koden. Notera den nya sektionen i blått som hanterar ett känt fel.


try
    { new-aduser jimmy }
Catch [Microsoft.ActiveDirectory.Management.ADIdentityAlreadyExistsException]
  { write-host "Användaren finns redan."  }
Catch
    { write-host "Okänt fel"
    write-host "Fel text: " $_
    write-host "Undantagsfel: " $_.Exception.GetType()}

Smidigt och enkelt!

Inga kommentarer:

Skicka en kommentar