Obsługa błędów w poleceniach Exchange’a

9 lutego 2016 at 11:00

Każdy posługujący się w miarę swobodnie powershell’em administrator zna sposoby wychwytywania i obsługi błędów pojawiających się podczas wykonywania skryptów. Wśród nich „króluje” często metoda „try/catch”, która w skrócie wygląda mniej więcej tak:

ww. narzędzie jest bardzo przydatne, elastyczne i pozwalające na bardzo zaawansowane rozróżnianie i obsługę poszczególnych błędów, zwłaszcza, gdy do sekcji „catch” dodamy typ błędu, który chcemy obsłużyć np:

Z czym natomiast spotyka się niemal każdy początkujący administrator próbujący budować swoje skrypty używając metody „try/catch”? Z faktem, że cześć błędów nie jest wychwytywana… Dlaczego tak się dzieje? Najczęstszymi powodami są: Niepoprawna akcja przy napotkaniu błędu (polecenia obsługujące przełącznik „-ErrorAction”, powinny mieć ustawioną akcję na „stop”) Niepoprawne preferencje obsługi błędów dla danego zakresu ($ErrorActionPreference powinno być ustawione na „stop”) A, że administrator nie lubi jak mu wyskakują błędy, to ustawia sobie ww. wartości na „SilentlyContinue” / „Continue” i w momencie, gdy dorośnie do obsługi błędów zaczyna ostre debugowanie.. Sprawa natomiast wygląda ciekawiej w przypadku poleceń Exchange’a, które są wykonywane zdalnie w ramach sesji z serwerami Exchange’a. W takim wypadku praca z powershell’em + modułami Exchange’a i nawiązanie sesji wygląda mniej więcej tak:

Dodaliśmy sobie przystawkę, nawiązaliśmy sesję, ustawiliśmy preferencje obsługi błędów i testujemy interaktywnie na konsoli obsługę […]

Hurtowe przywracanie maili z Dumpster’a – Exchange

12 października 2015 at 19:16

W pracy każdego Sys-admin’a zdarzają się użytkownicy, którzy przez nieuwagę/pośpiech wykonują rzeczy niesamowite Niektórzy jednak mają do tego wrodzone uzdolnienia… Tym razem sytuacja związana z Outlookiem, pocztą, Exchange’m i właśnie „uzdolnioną inaczej” osobą. W wyniku bliżej nieokreślonych czynności wykonanych przez naszego zdolniachę – wszystkie wiadomości ze skrzynki ‚X’ został usunięte (również z kosza). Ot niby nic nadzwyczajnego. Zawsze można przywrócić manualnie maile z poziomu Outlooka, czy OWA. Przyjmujemy przy tym że Single-Item-Recovery jest wyłączone. Problem stanowi jednak ilość maili do przywrócenia. Jeśli przywraca się kilka-kilkanaście maili na raz to nie ma problemu. Przy większej ilości interfejs ma tendencję do zawieszania. Co jednak zrobić, gdy nasz zdolniacha usunął kilka(naście) tysięcy wiadomości? Zostawić go z GUI na dwie noce – niech sobie zapamięta żeby tego więcej nie robić? Zasadniczo to byłoby pouczające i zapamiętałby lekcję do końca życia… ale nie można być aż tak okrutnym. OK pomóżmy naszemu uzdolnionemu użytkownikowi: 1. Nadajemy sobie pełne uprawnienia do skrzynki „Discovery Search Mailbox” 2. Nadajemy sobie rolę/grupę „Discovery Management” 3. Nadajemy sobie uprawnienia do skrzynki, którą uzdolniony użytkownik wykastrował z maili. 4. Wykonujemy przeszukiwanie usuniętych maili ze skrzynki np uzdolniony.uzytkownik@mkrzanowicz.pl

5. Podpinamy skrzynkę użytkownika oraz skrzynkę „Discovery Search Mailbox” do Swojego Outlooka 6. Kopiujemy […]

PSLanguageMode w Exchange’u i Powershell 4.0

29 stycznia 2015 at 07:00

Skrypty Exchange’owe wywoływane zdalnie, które działały poprawnie pod Powershell’em 2.0 w Windows 7 – nagle po instalacji Windows 8.1 i Powershell’a 4.0 nagle przestały działać… Podczas ich wykonywania zwracane są dosyć „dziwne” błędy jak poniżej: Inne wariacje tych błędów to: Function declarations are not allowed in restricted language mode or a Data section. Property references are not allowed in restricted language mode or a Data section. Assignment statements are not allowed in restricted language mode or a Data section. A variable that cannot be referenced in restricted language mode or a Data section is being referenced. Variables that can be referenced include the following: $PSCulture, $PSUICulture, $true, $false, and  $null.   Hmm… Ale o co tak naprawdę chodzi? Która linijka skryptu powoduje takie błędy? Idąc po nitce do kłębka: 1. Czy to wina $PSCulture i polskich znaków? Nieee… Przecież wcześniej wszystko działało prawidłowo – $PSCulture ustawiony nadal na „pl-PL” – nic się nie zmieniło. 2. Idźmy linijka po linijce w konsoli: Tworzenie skrzynki – OK Ustawienia quot – OK Ustawienia OWA – OK Ustawienia ActiveSync – OK itd… – wszystko niby działa Hmmm… Wszystko niby działa, ale coś tu jest nie tak – no właśnie – przy uruchomieniu krokowym wskazałem […]

© Marcin Krzanowicz