27 marca 2017

Odchudzanie kolejki transportowej na Exchange

Od czasu do czasu dostaję pytanie na temat możliwości zmniejszenia pliku kolejki transportowej Exchange, lub po prostu pytanie, dlaczego ten plik jest taki duży? Faktycznie, może się on rozrosnąć do kilkudziesięciu, a nawet ponad 100 GB, jednak bywa to przeważnie łatwe do wytłumaczenia. Plik mail.que, czyli właśnie kolejka transportowa serwera Exchange to baza w formacie Extensible Storage Engine (ESE), podobna do baz skrzynkowych, usługi katalogowej AD, czy też innych usług systemu Windows. Bazy te niestety w odróżnieniu od SQL nie mają mechanizmu "odchudzania" w przypadku zwolnienia wolnej przestrzeni wewnątrz bazy. W bazie tworzone są kolejki dla maili generowanych na bieżąco (jeżeli w organizacji ktoś wysyła duże ilości maili wewnętrznych, to może przekładać się na dużą wielkość pliku), przechowywane są również maile na wypadek awarii i konieczności ich odtworzenia - tzw. Safety Net. Safety Net przechowuje maile już dostarczone do baz danych i po okresie ich przechowywania (domyślnie dwa dni) je kasuje. Jeżeli zwiększymy ten okres, to oczywiście wielkość bazy danych wzrośnie, w zależności od zwiększenia okresu przechowywania i ilości przetwarzanych maili. Można to bardzo prosto zweryfikować komendą:
Get-TransportConfig | select SafetyNetHoldTime
Domyślnie system zwróci wartość "2.00:00:00", czyli dwa dni. Żeby zmniejszyć okres przechowywania maili w kolejce wystarczy wykonać komendę:
Set-TransportConfig -SafetyNetHoldTime 2.00:00:00
Oczywiście możemy użyć innej, wygodnej dla nas wartości.
Jeżeli serwer należy do DAG, to dodatkowo domyślnie włączona jest funkcja Shadow Redundancy, dla której również są zdefiniowane okresy przechowywania maili w replikach kolejek. Parametry związane z Shadow Redundancy również możemy zmienić, korzystając z tego samego polecenia Set-TransportConfig.
Co można zatem zrobić, jeżeli boimy się, że kolejka przepełni nam dysk? Zasadniczo opcje są dwie - przeniesienie kolejki transportowej na dysk z większą ilością wolnego miejsca, albo wymuszenie odtworzenia pustej bazy. W tym drugim wypadku procedura jest bardzo prosta:
  1. Sprawdzamy, czy kolejki na serwerze są puste - w tym celu najprościej zawiesić usługę transprtową komendą suspend-service msExchangeTransport, a następnie sprawdzić ilość maili w kolejkach komendą get-queue.
  2. Jeżeli są puste, to zatrzymujemy usługę transportową - stop-service msExchangeTransport.
  3. Przenosimy całą zawartość katalogu Queue (domyślna ścieżka C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue) do lokalizacji tymczasowej.
  4. Uruchamiamy usługę transportową - start-service msExchangeTransport.
  5. Po uruchomieniu usługi i utworzeniu pustych plików możemy stare pliki skasować z tymczasowej lokalizacji.
Oczywiście opcja druga usunie Safety Net i Shadow Queues również.

21 marca 2017

Marcowe poprawki dla Exchange

Kończy się kwartał, więc najwyższa pora na publikację pakietów aktualizacji dla Exchange. W tym miesiącu Microsoft udostępnia ostatni pakiet poprawek dla Exchange 2007 (wsparcie ostatecznie kończy się za kilkanaście dni). Pakiety dla nowszych wersji w większości poprawiają błędy znalezione przez ostatnie miesiące. Warto pamiętać, że CU5 dla Exchange 2016 i CU16 dla Exchange 2013 wymagają do instalacji .NetFrameworka 4.6.2, co wymusza w firmach, które nie zaktualizowały Exchange do grudniowych poprawek konieczność instalacji dwuetapowej - najpierw Exchange 2016 CU4, potem aktualizacja Fraweworka, potem dopiero CU5. Analogicznie w wersji Exchange 2013 - najpierw CU15, Framework, potem CU16.
Poniżej przedstawiam listę pakietów aktualizacji, artykuły KB opisujące zmiany oraz linki do stron z paczkami instalacyjnymi:

15 marca 2017

Microsoft Teams dla wszystkich

Jedną z funkcjonalności Skype for Business, których Microsoft nie zaimplementował w wersji Online usługi komunikacyjnej jest Persistent Chat, czyli funkcjonalność tablic ogłoszeniowych/grup dyskusyjnych działających od dłuższego czasu (wcześniej pod nazwą Group Chat). Pisałem o tej usłudze całkiem niedawno. Teraz w końcu Microsoft uzupełnia ten brak.
Na początku listopada Microsoft udostępnił wszystkim klientom Office 365 usługę o nazwie Microsoft Teams, w marcu osiągnęła ona status GA, a wczoraj odbyła się oficjalna premiera produktu. W ostatnich miesiącach trwały intensywne testy Teamsów i dyskusje, porównujące funkcjonalności nowej aplikacji z innymi dostępnymi na rynku produktami tego typu, jak np. Slack czy HipChat, a nawet Microsoftowy Yammer. Ponieważ Slacka używam sporadycznie w wersji bezpłatnej (bez obsługi rozmów), a innych produktów nie powiązanych z Microsoft wcale, więc nie chciałem się do tej dyskusji przyłączać. Jak na razie widzę duże plusy Teamsów, takie jak integracja z komponentami Office 365  - współdzielenie dokumentów poprzez Sharepoint Online i OneDrive for Business, rozmowy poprzez Skype for Business czy kalendarz synchronizowany z Exchange Online. Teamsy wykorzystują tworzone w ramach naszego Tenanta O365 zespoły, które tak naprawdę są Grupami Office, co daje nam możliwość używania np. konektorów, integrujących różne aplikacje zewnętrzne, możemy również wysyłać maile na adres kanału dyskusji naszego zespołu. Na stronie pomocy można znaleźć mnóstwo przydatnych informacji, jak korzystać z Microsoft Teams. Na YouTube pojawiło się również sporo filmów, pokazujących możliwości i funkcjonowanie Teamsów:

Minusami jak na razie są przede wszystkim pewne zamieszanie funkcjonalne - jaką aplikację do poszczególnych zadań będziemy używać (czy korzystać z Yammera, Grup czy Teams), oraz brak możliwości dodawania do zespołów Teamsowych osób spoza konkretnego tenanta Office 365. W modelach hybrydowych  również część funkcjonalności jest niedostępna dla osób ze skrzynkami on-premises. Ale to dopiero premiera i na pewno w kolejnych miesiącach kolejne funkcje, których potrzebę zgłaszają użytkownicy zostaną dodane. Na pewno w tym roku będzie trwała bardzo ostra walka komunikatorów i systemów do pracy grupowej.

Dziura w zabezpieczeniach Exchange

Wczoraj zespół produktowy Microsoft wydał biuletyn bezpieczeństwa,  https://technet.microsoft.com/library/security/MS17-015, dostępny również  na stronie pomocy technicznej, w nieco bardziejj rozwiniętej formie - https://support.microsoft.com/en-us/help/4013242/ms17-015-security-update-for-microsoft-exchange-server-march-14-2017, opisujący dziurę w systemach zabezpieczeń interface'u OWA, która pozwala na eskalację uprawnień.
Microsoft Server Software
Updates Replaced*
Important
Elevation of Privilege
3184736 in MS16-108
Important
Elevation of Privilege
3184736 in MS16-108
Important
Elevation of Privilege
3184736 in MS16-108
Podobne problemy dotyczą nie tylko Exchange, ale również innych aplikacji (przeglądarek, Hyper-V). W stosunku jednak do Exchange zagrożenie nie jest aż tak poważne jak można by podejrzewać. Najnowsze paczki zabezpieczeń CU15 dla Exchange 2013 i CU4 dla Exchange 2016 są bezpieczne, a lada moment możemy spodziewać się kolejnych aktualizacji (minął już kwartał od poprzedniej partii), które również zawierać będą poprawki łatające powyższą dziurę. Dlatego też warto aktualizować serwery Exchange na bieżąco, chociaż czasem wymaga to nieco czasu i cierpliwości.

08 marca 2017

Aktualizacje Skype for Business - małe podsumowanie

UPDATE:
Lista poprawek została zaktualizowana zgodnie ze stanem z maja 2020.

Polityka aktualizacji systemu Exchange Server, zarówno 2013 jak i 2016, jest stosunkowo prosta - raz na kwartał wydawany jest pakiet Cummulative Update, co zostało dokładnie opisane na blogu zespołu produktowego i w dokumentacji. Od czasu do czasu, jeżeli zajdzie taka potrzeba wydawana jest poprawka bezpieczeństwa i to wszystko. Jasno, prosto i czytelnie.
W przypadku Skype for Business wydawało się że wszystko jest podobnie, jednak zespół produktowy od dawna określa pakiety poprawek miesiącem wydania, nie są one również wydawane regularnie, więc sam się trochę zgubiłem. Kiedy w lutym pojawiła się kolejna paczka aktualizacji, zastanawiałem się, czy zawiera ona wsparcie dla Windows Server 2016, zgodnie z zapowiedziami grupy produktowej:
Windows Server 2016 is not included in this list right now, but we're planning to add it as a supported option after Skype for Business Server Cumulative Update 5 is released
Jednak po dokładniejszej weryfikacji okazało się, że poprawka February 2017 jeszcze nie jest zapowiedzianym Cummulative Update 5. Przy okazji zweryfikowałem nazewnictwo poprawek dla Skype for Business, które pokazuje poniższa lista:

Wersja Nazwa pakietu Cumulative Update Artykuł KB Numer CU/HotFix
6.0.9319.580 May 2020 http://support.microsoft.com/kb/3061064 CU11
6.0.9319.562 August 2019 http://support.microsoft.com/kb/3061064 CU10 HF1
6.0.9319.559 July 2019 http://support.microsoft.com/kb/3061064 CU10
6.0.9319.548 May 2019 http://support.microsoft.com/kb/3061064 CU9
6.0.9319.544 March 2019 http://support.microsoft.com/kb/3061064 CU8 HF1
6.0.9319.537 January 2019 http://support.microsoft.com/kb/3061064 CU8
6.0.9319.534 July 2018 http://support.microsoft.com/kb/3061064 CU7
6.0.9319.516 March 2018 http://support.microsoft.com/kb/4086059 CU6 HF2
6.0.9319.514 January 2018 http://support.microsoft.com/kb/4074701 CU6 HF1
6.0.9319.510 December 2017 http://support.microsoft.com/kb/4036312 CU6
6.0.9319.281 May 2017 http://support.microsoft.com/kb/4012621 CU5
6.0.9319.277 February 2017 http://support.microsoft.com/kb/3207506 CU4 HF1
6.0.9319.272 November 2016 http://support.microsoft.com/kb/3199093 CU4
6.0.9319.259 June 2016 http://support.microsoft.com/kb/3149227 CU3
6.0.9319.235 March 2016 http://support.microsoft.com/kb/3134260 CU2
6.0.9319.102 November 2015 http://support.microsoft.com/kb/3097645 CU1
6.0.9319.88 September 2015 http://support.microsoft.com/kb/3098601 HF2
6.0.9319.55 June 2015 http://support.microsoft.com/kb/3061059 HF1
6.0.9319.0 RTM NA RTM