Virtual Study

14 grudnia 2016

Grudniowe aktualizacje Exchange

Zespół produktowy Exchange właśnie opublikował informację na swoim blogu o kolejnych aktualizacjach poprawek dla Exchange Server 2013 i 2016. Zostały również wydane aktualizacje poprawek dla 2010 i 2007, chociaż dla tych produktów Rollupy wnoszą dużo mniejsze zmiany - tylko łatanie krytycznych dziur bezpieczeństwa i aktualizacje stref czasowych.
Cummulative Update 4 dla Exchange Server 2016 oprócz kilku mniejszych problemów wprowadza kilka istotnych modyfikacji:
  • w połączeniu z poprawką dla systemu oeracyjnego Windows Server 2016, KB3206632 (musi być zainstalowana przed wdrożeniem CU4) przede wszystkim naprawia problem z krytyczną awarią IIS, która następowała po skonfigurowaniu DAG (sam padłem w labie ofiarą tego problemu). Jak wiele innych poprawek systemowych KB3206632 ma wielkość około 1 GB. Można ją pobrać z tej lokalizacji.
  • Kolejną zmianą jest dodanie wsparcia dla .Net 4.6.2, zarówno dla Exchange 2016 jak i 2013 (CU3 dla Exchange 2016 wprowadzało to wsparcie tylko dla platformy Windows Server 2016). Warto mieć to na uwadze, ponieważ Microsoft wspomina, że 4.6.2 będzie wymagany przy kolejnych aktualizacjach w następnym kwartale.
  • Jeszcze jedną istotną zmianą jest poprawienie (zarówno w wersji 2013 jak i 2016) mechanizmów indeksowania dla folderów publicznych. Żeby mieć pewność, że mechanizm będzie działał poprawnie należy przenieść skrzynkę z folderami publicznymi do nowej bazy.

Pełna lista zmian jak zwykle znajduje się w odpowiednich artykułach KB. Poniżej również znajdują się odnośniki z których można pobrać poprawki:
Exchange 2016 CU415.1.669.32KB3177106DownloadUMLP
Exchange 2013 CU1515.0.1263.5KB3197044DownloadUMLP
Exchange 2010 SP3 Rollup 1614.3.339.0KB3184730Download
Exchange 2007 SP3 Rollup 228.3.502.0KB3184712Download

10 grudnia 2016

Ciekawostki w aktualizacjach klienta Skype for Business

Od czasu do czasu umieszczam na blogu informacje na temat aktualizacji i nowych funkcjonalności serwerowych, zarówno w Exchange jak i Skype for Business, jednak zmiany pojawiają się również po stronie klientów. Ostatnio w Skype for Business 2016 pojawiły się istotne zmiany, jednak tylko część użytkowników mogła je zauważyć. Aktualizowana informacja o nowościach funkcjonalnych znajduje się na stronie producenta.
Pierwszą zmianą, o której chciałem wspomnieć jest zastosowanie Video-based Screen Sharing (VbSS) zamiast RDP do udostępniania pulpitu. Pisałem już o tym w kontekście czerwcowej poprawki do Serwera. Bez aktualizacji klienta do odpowiedniej wersji VbSS niestety nie zadziała i pulpit zostanie udostępniony po staremu. Mając czerwcową poprawkę na serwerach oraz analogiczne aktualizacje klientów możemy również skorzystać z dostarczania wiadomości offline, funkcjonalności, której mi osobiście nie raz brakowało.
Drugą zmianą, która jest dostępna tylko dla niektórych klientów CTR (Current Channel oraz First Release for Deferred Channel)  jest nowy interface, prezentujący się inaczej niż dotychczasowe wersje, zarówno w sposobie prezentacji menu głównego, jak i prezentacji informacji o kontakcie:

















Inaczej również wygląda okno konwersacji IM, ale można szybko przywyknąć do nowości.




















Dla pozostałych użytkowników wersji CTR Skype for Business 2016 nowy interface powinien zostać udostępniony prawdopodobnie w lutym 2017, dla użytkowników wersji MSI, na razie nie znam daty.
Czasami łatwo się pogubić, mówiąc o poszczególnych wersjach Skype for Business. Jednym strumieniem aktualizowane są wersje wdrażane w sposób tradycyjny z nośników dostępnych w ramach umów wolumenowych, zgodnie z listą aktualizowaną na stronie producenta:

WersjaData wydaniaOpisDownload
16.0.4456.1001November 1, 2016KB312793932 bit64 bit
16.0.4444.1000October 11, 2016KB311828832 bit64 bit
16.0.4432.1000September 6, 2016KB311828832 bit64 bit
16.0.4405.1000July 5, 2016KB311526832 bit64 bit
16.0.4393.1002June 7, 2016KB311508732 bit64 bit
16.0.4378.1000May 3, 2016NA32 bit64 bit
16.0.4363.1000April 12, 2016KB311496032 bit64 bit
16.0.4351.1000March 8, 2016KB311484632 bit64 bit
16.0.4339.1000February 9, 2016KB311469632 bit64 bit
16.0.4312.1001December 8, 2015KB311437232 bit64 bit
16.0.4266.1001RTMNANANA

Klienci używający wersji CTR mają bardziej urozmaicone możliwości. Poprawki dystrybuowane są w trzech kanałach - Current Channel, Deffered Channel oraz First Release for Deferred Channel. Częstotliwość aktualizacji jest różna w zależności od wybranego kanału, więc czasami można się pogubić, jakie nowe funkcjonalności mogą być dostępne na naszym komputerze.
Kanał aktualizacji
Aktualizacje funkcjonalności
Security updates
Non-security updates
Current Channel (CC) Miesięcznie Miesięcznie Miesięcznie
Deferred Channel (DC) Co cztery miesiące Miesięcznie Co cztery miesiące
First Release for Deferred Channel (FRDC) Co cztery miesiące Miesięcznie Miesięcznie

Żeby się upewnić, jaka wersja jest aktualnie pobierana na nasz komputer, należy spojrzeć w informacje o pakiecie Office w innym produkcie - np. Outlook (menu Plik, Konto pakietu Office).


















Tak jak w kliencie Skype for Business nie ma możliwości aktywacji pakietu Office, tak samo nie ma informacji o używanym kanale aktualizacji, można co najwyżej porównać nr buildu z tabelami aktualizacji.








Aktualne w chwili pisania artykułu wersje to:
  • Current Channel: Version 1611 (Build 7571.2072), wydany 6 grudnia 2016,
  • Deferred Channel: Version 1605 (Build 6965.2105), wydany 8 listopada 2016,
  • First Release for Deferred Channel: Version 1609 (Build 7369.2055), wydany 8 listopada 2016.
Jak widać na powyższych rysunkach, numer wersji samego SfB może nieco się różnić od numeru wersji całego pakietu. Jednak nawet w kanale opóźnionym (DC), numer wersji jest sporo wyższy niż w wersji MSI.

Skype Operations Framework - serwis wart odwiedzenia

W trakcie tegorocznej konferencji partnerskiej WPC Microsoft ogłosił uruchomienie nowego serwisu - Skype Operations Framework (SOF). Nazwa, całkiem słusznie, kojarzy się z nieco zapomnianymi czasami, kiedy Microsoft starał się pokazać klientom i partnerom, że planowanie, wdrażanie i utrzymywanie produktów giganta z Redmond jest klarowne i kieruje się dobrze określonymi zasadami, które może nie gwarantują 100% sukcesu, ale na pewno pomogą ominąć zdecydowaną większość problemów podczas wdrażania, a później podczas eksploatacji i utrzymania systemów sieciowych. Metodologie Microsoft Sulutions Framework oraz Microsoft Operations Framework kilkanaście lat temu można było poznać poprzez oficjalne szkolenia MOC, co udało mi się zrobić, a nawet wykorzystywać w praktyce, w czasie kiedy budowałem Active Directory i pocztę Exchange w PKO BP. Niestety jednak skupiając się na szybkim tempie dostarczania nowych wersji produktów, Microsoft nieco zapomniał o aktualizacji i rozbudowie dokumentacji, chociaż wdrażanie wielu produktów potrafi spowodować wiele problemów.
Skype for Business Online na pierwszy rzut oka wygląda na produkt łatwy do wdrożenia - zaznaczamy kilka checkboxów w panelu administracyjnym Office 365 i produkt teoretycznie jest uruchomiony. Jednak diabeł tkwi w szczegółach. Brak weryfikacji połączeń sieciowych, sposób dystrybucji aplikacji Skype for Business na komputerach pracowników, a zwłaszcza uruchomienie funkcjonalności telefonicznych - Cloud PBX i PSTN Conferencing potrafi wprowadzić niezłe zamieszanie, jeżeli odpowiednio nie zaplanujemy poszczególnych kroków wdrożenia.
SOF oprócz omówienia podstaw teoretycznych Operations Framework, pokazuje szczegółowo (łącznie z dokumentami) wszystkie kroki w obszarach migracji SfB do chmury oraz wdrożenia od podstaw SfB Online, łącznie z technologiami telefonicznymi. W ramach witryny dostępny jest również portal szkoleniowy, na którym można dowiedzieć się więcej o procesie wdrożeniowym, zarówno w kontekście migracji z włąsnej serwerowni, hybrydy jak i wdrożenia wyłącznie chmurowego.




















Można również poznać szczegółowe informacje o nowych produktach i technologiach, jak np.:
Jeżeli ktoś jest odważny i lubi eksperymentować, to z poziomu portalu jest dostępny również odnośnik do witryny Skype Preview, na której po zarejestrowaniu firmy można zgłaszać swoją organizację do testowania nowych funkcjonalności, zarówno klienckich jak i serwerowych Skype.

05 grudnia 2016

Czy warto używać funkcjonalności Persistent Chat?

Jedną z wielu ról, które można wdrożyć w systemie Skype for Business Server 2015 jest Persistent Chat Server. Niektóre firmy korzystają z tej funkcjonalności intensywnie, inne wcale jej nie wykorzystują, a część z organizacji używających SfB nawet nie wiedzą o jej istnieniu i nie zastanawiają się, czy jej wdrożenie może być dla firmy korzystne. W ostatnich tygodniach Microsoft udostępnił w ramach Office 365 nową usługę - Microsoft Teams, która jest odpowiednikiem Persistent Chat w usługach chmurowych, dlatego też warto przyjrzeć się bliżej każdej z nich.
Czym jest Persistent Chat? Nie będę teraz zagłębiać się w architekturę, wymagania sprzętowe i możliwe topologie wdrożenia, bo z tych tematów wyszedłby cały cykl artykułów, ale chciałbym spróbować napisać, po co w ogóle używać tej usługi i w jakich przypadkach może okazać się ona użyteczna.
O ile sama desktopowa aplikacja Skype for Business, podobnie jak Skype może być traktowana jako osobisty komunikator, umożliwiający szybki kontakt audio, wideo i tekstowy z wybranymi znajomymi lub współpracownikami, to dodając do architektury komponent Persistent Chat, wprowadzamy nową formę współpracy w ramach grupy pracowników, określaną kompleksowo jako CEC (Chat-enabled collaboration).
Klient Skype for Business standardowo pozwala nam nawiązać komunikację z jedną osobą lub większą ilością osób (konferencja), jednak po zakończeniu danej dyskusji jej przebieg jest archiwizowany i w zasadzie nie jest już kontynuowany. Piszę 'w zasadzie', ponieważ najnowsze wersje aplikacji pozwalają nam otwierać przerwane konwersacje, a nawet wysyłać wiadomości do osób chwilowo niedostępnych, tak żeby dostały wiadomość po uruchomieniu klienta (tzw. offline mode).
Persistent Chat Server dodaje do SfB pokoje rozmów (chat rooms), które pozwalają nam na przechowywanie konwersacji w ramach danego pokoju dowolnie długo, powiadamiając nas o nowych dyskusjach w pokojach rozmów, które są dla nas interesujące. Jak w praktyce może wyglądać korzystanie z Persistent Chat? Jednym z przykładów wykorzystania tej funkcjonalności może być zarządzanie projektami. Jeżeli w dużej firmie, wielu pracowników często podróżuje lub pracuje z domu, koordynacja projektów nie jest zadaniem banalnym. Wysyłanie wszystkich informacji mailem czy też wymiana informacji konwersacjami SfB nie jest w pełni efektywna i część informacji może nie docierać do wszystkich członków zespołu projektowego lub po prostu być przeoczona w natłoku innych wiadomości pocztowych. Rozwiązaniem problemów może być utworzenie pokojów spotkań dla poszczególnych projektów, a nawet dla poszczególnych faz konkretnych projektów. Tworząc pokój rozmów możemy wskazać osoby biorące udział w projekcie. W ten sposób każda z tych osób uzyskuje informację o nowych informacjach pojawiających się w związku z pracami w projekcie i jednocześnie ma wgląd w historię dyskusji związanych z danym tematem/zagadnieniem.
Inne scenariusze zastosowań mogą dotyczyć np. obsługi dokumentów księgowych, różnego rodzaju wniosków, a nawet powiadomień o błędach w aplikacjach czy pojawiających się w środowisku awariach.
Oprócz pokojów rozmów (kierując się analogią do powyższego przykładu o nazwach związanych z konkretnymi projektami), które z czasem mogą stać się całkiem obszerne, jeżeli umieścimy w nich wiele wypowiedzi, każdy użytkownik SfB może utworzyć sobie kanały tematyczne, które służą do śledzenia dyskusji zawierających konkretne słowa kluczowe, a nawet dodatkowo wskazać powiązania tych słów z konkretnymi nadawcami.
   
Definiując kanał tematyczny wskazujemy również powiadomienie, jakie ma zostać wygenerowane w przypadku pojawienia się wiadomości z konkretnego kanału, jak widać na poniższym rysunku.























Jak widać, dla każdego kanału możemy dostosowywać powiadomienia do naszych preferencji, łącznie ze specyficznym dźwiękiem (innym dla wiadomości normalnej i z wysokim priorytetem).
Warto również skonfigurować sobie domyślne powiadomienia dla . Będą one działały również dla wszystkich pokojów rozmów, których śledzenie włączyliśmy.




















Oczywiście ustawienia powiadomień dla Persistent Chat znajdziemy w opcjach klienta SfB, pod niezbyt fortunnie przetłumaczonym tytułem 'Rozmowa trwała'.























Dla firm, które mają wdrożony portal intranetowy, np. na serwerze Sharepoint, funkcjonalność Persistent Chat może okazać się niepotrzebna, ale jeżeli ktoś ma tylko Exchange, to może warto użyć tej funkcjonalności zamiast list dystrybucyjnych?
Dla większych organizacji, gdzie zachodzi potrzeba odseparowania dostępu do zasobów, administrator usługi może dodatkowo utworzyć kategorie, w ramach których przydzielane są grupy osób mogących korzystać z poszczególnych grup pokojów rozmów. Utworzenie kategorii pozwala również oddzielnie definiować wspólne ustawienia takie jak możliwość dodawania plików do pokojów, mozliwość przeglądania historii rozmów w ramach pokojów oraz użycie zaproszeń do korzystania z pokojów.

24 listopada 2016

Integracja Skype for Business i Exchange - kwestia autodiscovera

Prezentacja statusu dostępności to bardzo wygodna funkcjonalność Skype for Business. Niektórzy twierdzą, że umożliwia szpiegowanie (bo pokazuje kiedy przez jakiś czas nie dotykamy klawiatury), ale dla mnie umożliwia przede wszystkim szybki kontakt ze współpracownikami i kontrahentami, pokazując kiedy są dostępni. W środowisku, gdzie jest wdrożony również Exchange, można używać również mechanizmów integracyjnych do pobierania danych z kalendarza użytkownika w Exchange, w celu automatycznej zmiany statusy z 'dostępny' na 'zajęty'. Dodatkowo klient SfB może wyświetlać informacje publikowane przez asystenta OOF. Funkcjonalność tą możemy wyłączyć (domyślnie jest włączona) w opcjach klienta SfB.

Jak działa ten mechanizm? Wbrew pozorom nie jet to takie oczywiste i w wielu środowiskach może działać on niepoprawnie. Klient SfB, podobnie jak Outlook wykorzystuje usługę EWS (Exchange Web Services), do odpytania serwerów Exchange o dane z kalendarza (Availability Service). Podobnie jak Outlook, klient SfB również używa usługi Autodiscover do odpytania Exchange o konfigurację EWS. Jednak jak to mówią, diabeł tkwi w szczegółach. Na komputerach należących do domeny, Outlook sprawdza w pierwszej kolejności informację znajdującą się w rekordzie SCP (Service Connection Point). Jego wartość możemy sprawdzić wykonując komendę:
Get-ClientAccessServer | select name,AutoDiscoverServiceInternalUri
Na komputerze poza domeną Outlook szuka url - najpierw https://domenapocztowa/autodiscover/autodiscover.xml, następnie, w  drugim kroku sprawdza url https://autodiscover.domenapocztowa/autodiscover/autodiscover.xml, a w trzeciej kolejności sprawdzany jest rekord SRV dla usługi autodiscover (_autodiscover._tcp.domenapocztowa). W przypadku klienta SfB ścieżka jest dużo prostsza, co w wielu środowiskach może spowodować nieco problemów - sprawdzany jest tylko i wyłącznie rekord https://autodiscover.domenapocztowa/autodiscover/autodiscover.xml. Jeżeli nie jest on dostępny, to mogą pojawić nam się komunikaty, mówiące o problemach z integracją, a nawet okna logowania (które oznacza próbę uwierzytelnienia w Exchange). 
Jak zweryfikować, czy SfB poprawnie integruje się z Exchange? Najprościej sprawdzić, zerkając na konfigurację (prawoklik+Ctrl na ikonie skype w pasku zadań)

Następnie sprawdzamy. Jeżeli są wyświetlone ścieżki EWS i widać informację 'Status EWS jest OK', to wszystko powinno działać poprawnie.

Jeżeli ścieżki EWS nie są wyświetlane, to przeważnie również wyświetlana jest informacja o nieprawidłowej konfiguracji EWS lub braku takiej konfiguracji. W większości przypadków świadczy to o tym, że SfB nie był w stanie pobrać informacji o konfiguracji EWS poprzez autodiscover. Oprócz braku rekordu A dla nazwy autoodiscover może to być spowodowane również np. niepoprawną konfiguracją usługi proxy.

18 października 2016

APN Promise Technology Summit 2016

Już pojutrze odbędzie się w Warszawie doroczna konferencja techniczna, przygotowana przez moją firmę - APN Promise Technology Summit 2016
APN Promise Technology Summit
Jak zwykle jestem odpowiedzialny za ścieżkę Communication, na którą serdecznie zapraszam - będzie się działo!

ITDEV CONNECTIONS 2016

W niedzielę wróciłem z konferencji IT/Dev Connections 2016, która odbywała się w Las Vegas. Nie jest to event tak duży jak Ignite, zaledwie 1000-1200 uczestników, ale w tym przypadku to zaleta. Przez 4 dni odbywało się równolegle około 15-20 sesji prowadzonych przez MVP i niezależnych ekspertów, skupiając się na technologicznych szczegółach i praktycznych doświadczeniach wdrożeniowych, zamiast marketingowym pustosłowiu.


W ramach IT/Dev Connections można było obejrzeć sesje w następujących  ścieżkach:
  • Cloud and Datacenter (42 sesje)
  • Community (17 sesji)
  • Data Platform & Business Intelligence (49 sesji)
  • Development Platform, Tools and DevOps (49 sesji)
  • Enterprise Collaboration (58 sesji)
  • Enterprise Management, Mobility and Security (59 sesji)
  • Solutions (7 sesji)
Już kilkukrotnie słyszałem dużo dobrego na temat tej konferencji i muszę przyznać, że nie zawiodłem się. Mniejsza powierzchnia centrum kongresowego hotelu Aria (w porównaniu z ośrodkami gdzie odbywały się konferencje TechEd czy Ignite) dała wiele okazji do spotkań z prelegentami i innymi uczestnikami konferencji. Często niestety wybór sesji był trudny, bo w tym samym czasie prowadzone były sesje zarówno z nowych funkcjonalności Windows Server 2016 (Nano, wirtualizacja, kontenery), zarządzaniu tożsamością jak rozwiązywaniu problemów w Exchange.
Grupa produktowa Exchange była reprezentowana przez kilku najbardziej znaczących specjalistów z Redmond, pod przywództwem Grega Taylora. Oczywiście grupa MVP w kategorii Exchange Server (a właściwie już od roku Office Servers & Services, ale związanych przede wszystkim z systemem Exchange) była liczna, jak widać na poniższym zdjęciu.

Na zdjęciu znaleźli się wszyscy MVP, uczestniczący w konferencji, stoją od lewej:
Kucają od lewej:
Konferencja była zdecydowanie techniczna - poziom sesji 300 i 400, z minimalną ilością firm partnerskich, które prezentowały swoje produkty, jednak znalazła się tam polska firma CodeTwo, oferująca znane od dawna oprogramowanie do stopek w Exchange, teraz również w wersji dla Exchange Online oraz oraz narzędzia ułatwiające migrację i wykonywanie kopii zapasowych skrzynek Office 365.

16 października 2016

LS File Transfer Agent Service zgłasza błąd 1034 po usunięciu serwera z topologii

Niedawno zauważyłem uciążliwy problem po usunięciu z topologii serwera, który poprzednio pełnił rolę CMS. Usługa LS File transfer Agent Service cyklicznie zgłaszała błąd 1034 (jak widać na poniższym rysunku), co oczywiście śmieciło w konsoli SCOM-a, a dodatkowo wprowadzało zamieszanie w logach serwera: 

Zasadniczo powinno pomóc wymuszenie odświeżenia konfiguracji poprzez wykonanie komendy
Invoke-CsManagementStoreReplication, jednak po jej wykonaniu i po sprawdzeniu konfiguracji poprzez Get-CsManagementStoreReplicationStatus -CentralManagementStoreStatus, serwer usunięty z topologii i odinstalowany, był widoczny w tablicy DeletedReplicas.
Podobny problem opisał na swoim blogu Thomas Poett, pokazując niewspieraną ale skuteczną metodę polegającą na ręcznym usunięciu z SQL-a odpowiedniego wiersza z tabeli [Replica]. W przypadku, który rozwiązywałem, jednak sposób opisany przez Thomasa nie do końca pomógł - SQL nie pozwalał usunąć wiersza ze względu na referecje w innych tabelach. Faktycznie okazało się, że w tabeli ReplicaStatus są odwołania do tabeli identy
Nie jestem ekspertem od SQL-a, więc zamiast tworzyć kolejne linie T-SQLa, zrobiłem to z wykorzystaniem SQL Management Studio. Po połączeniu do serwera, na którym jest Central Management Store, przeszedłem do widoku tabel tej bazy (rysunek poniżej).  
Następnie wyświetliłem pierwszych 200 rekordów tabeli [Replica].
Korzystając z kolumny ReplicaId, zweryfikowałem wartość z wiersza, odpowiadającego serwerowi, który powinien być skasowany, a następnie przeszedłem do edycji wierszy tabeli [ReplicaStatus] i usunąłem wszystkie wiersze z tym samym numerem.
Teraz już wiersz z tabeli [Replica] pozwala się skasować. I błędy 1034 w logu aplikacyjnym przestaje się pojawiać.


11 października 2016

Naprawa statusu usług Exchange

Pół roku temu opublikowałem na blogu skrypt, który przywracał poprawny status wszystkich usług Exchange, wyłączonych przez niepoprawnie zakończoną aktualizację. Jednak nie byłem zadowolony z takiej postaci skryptu i nieco go poprawiłem. Zamiast wypisywać kolejne komendy zmiany statusu usług Exchange, nowa wersja skryptu pobiera listę usług oraz poprawny status usługi z pliku csv (dwie kolumny - SrvName i Mode) i następnie w pętli dla każdej z usług sprawdza, czy nie ma ona statusu "Disabled".

Ponieważ parametr filtrowania wyników oczekuje czystego stringu a nie zmiennej, więc dodatkowo tworzę zmienną, zawierającą definicję filtru dla konkretnego serwisu.
Jeżeli usługa ma tryb uruchomienia ustawiony na "Disabled", to skrypt zmienia ustawienia serwisu zgodnie z informacjami w drugiej kolumnie pliku csv. Taką wersję skryptu opublikowałem w galerii Technet. Skrypt należy uruchamiać w kontekście administratora (zmienia ustawienia usług systemowych), ale nie potrzebuje powłoki Exchange ponieważ działa tylko na poziomie WMI i serwisów.

29 września 2016

REST API w Exchange

Kilka dni temu pisałem o CU3 dla Exchange 2016. Na konferencji Ignite w Atlancie, Microsoft zaprezentował jeszcze jedną funkcjonalność, której wcześniej nie ujawniono - wsparcie dla REST API. W środowiskach hybrydowych ułatwi to uwierzytelnianie i ujednolici wsparcie aplikacyjne w O365 i on-premises. Przy okazji pojawił się dodatkowy wirtualny katalog na potrzeby developerskie - /api. Informacje o zmianach można znaleźć na stronie o rozszerzeniach programistycznych dla Outlooka.

26 września 2016

Migracja skrzynek raz jeszcze

O migracji skrzynek pocztowych pomiędzy różnymi wersjami Exchange pisałem już kilkukrotnie, ostatni raz o migracji do wersji 2013. Kilka lat minęło, pojawiła się nowa wersja i nieco już na rynku okrzepła (właśnie wydano CU3), ale niestety wydajność migracji pozostawia wiele do życzenia.
Nadal wydajność pozostawia wiele do życzenia, a optymalizacja nie jest wcale oczywista. Dla osób, które korzystają z konsoli webowej, przenoszenie nawet pojedynczych skrzynek będzie trwało bardzo długo. Mimo wszystko postaram się zebrać kilka przydatnych wskazówek, działających zarówno dla serwerów Exchange 2013 jak i 2016.
Niektórzy twierdzą, że warto w pliku konfiguracyjnym usługi Mailbox Replication - “MSExchangeMailboxReplication.exe.config” zwiększyć wielkość bufora. Domyślnie zapisany jest parametr:
ExportBufferSizeKB=”512″
zamiast 512 należy w cudzysłowiu wpisać 10240 i zrestartować usługę. Powinno trochę pomóc, ale niestety niewiele.
Kolejnym zaleceniem, które wiele osób podkreśla, jest wyłączenie indeksowania baz danych - tych docelowych, które dodatkowo najczęściej spięte są w grupę DAG, co dodatkowo powoduje replikację danych między nimi i zwiększa obciążenie serwerów. Można to zrobić bardzo prosto poleceniem:
Set-MailboxDatabase -identity "Baza skrzynkowa" -indexEnabled $false
To przyspiesza część operacji, ale jak dla mnie niezadowalająco.
Żeby migracja zaczęła wykonywać się w miarę sprawnie należy wyłączyć lub obejść wbudowany w Exchange mechanizm throttlingu, czyli dławienia procesów. Opisywałem to w poście, który wymieniałem na początku artykułu:
new-moverequest -identity "skrzynka" -targetdatabase "Baza skrzynkowa" -priority highest -BadLimitRequest 50
Niektórzy zalecają piority emergency, ale wg mnie highest jest wystarczająca. Dzięki temu zadania migracyjne mają odpowiednio wysoki priorytet wykonania. Przy okazji dodanie niezerowego limitu na ilość uszkodzonych elementów też jest dobrą praktyką.

21 września 2016

Wrześniowe poprawki dla serwerów Exchange

Wczoraj Microsoft wydał kolejne paczki aktualizacji dla serwerów Exchange 2013 i 2016. Odpowiednio:
Pakiety te oczywiście zawierają poprawki do większości wykrytych po poprzednim pakiecie problemów oraz luk bezpieczeństwa, nie wprowadzają rewolucyjnych zmian, jednakże warto wspomnieć o kilku ciekawych cenach, które wprowadza CU3 dla Exchange 2016. Przede wszystkim, pozwala on na instalację Exchange na Windows Server 2016, który w sierpniu uzyskał status RTM, a po oficjalnej premierze na konferencji Ignite w przyszłym tygodniu będzie dostępny do pobrania. W Windows Server 2016 zawarty jest pakiet .Net Framework 4.6.2, więc CU3 wspiera ten pakiet, ale tylko na platformie Windows Server 2016, wsparcie dla starczych wersji systemu operacyjnego, również dla Exchange Server 2013 ma się pojawić w pakietach CU w dwóch kolejnych kwartałach.
Została również po raz kolejny zoptymalizowana replikacja w ramach DAG, co zaowocowało aktualizacja kalkulatora Exchange Server Role Requirements Calculator. Zaktualizowany został również widok kontaktów i statusu dostępności w kliencie webowa Outlook on the Web.

14 sierpnia 2016

.Net Framework 4.6.1 raz jeszcze

Jakiś czas temu pisałem o problemach we współpracy .Net Framework 4.6.1 z serwerami Exchange. W kolejnych paczkach aktualizacji grupa produktowa Exchange usunęła te problemy dla najnowszych edycji Exchange - 2013 i 2016, o czym również pisałem, przy okazji wydania tych poprawek. Po wydaniu CU2 dla Exchange 2016 i CU13 dla Exchange 2013 została zaktualizowana matryca zgodności serwerów Exchange, warto do niej zaglądać nie tylko przed instalacją nowych wersji Frameworka (wersje nowsze niż 4.6.1 nie są wspierane). Jednak na forach dyskusyjnych i listach mailowych widzę, że temat ten nie do końca jest jasno opisany, więc chciałem dodać jeszcze kilka słów wyjaśnienia.

.NET Framework 4.6.1 do poprawnej współpracy z Exchange wymaga dodatkowych poprawek, zgodnie z poniższą listą:
W przypadku aktualizacji systemu, należy zainstalować najpierw pakiet poprawek do Exchange (odpowiednio CU2 dla Exchange 2016 lub CU13 dla Exchange 2013), a dopiero wtedy .Net Framework 4.6.1 i odpowiedni dodatek.
W przypadku czystej instalacji serwera Exchange, możemy zainstalować najpierw poprawki systemowe i .Net Framework 4.6.1 z odpowiednimi poprawkami, a  następnie binaria Exchange - na szczęście możemy instalować od razu najnowszą wersję z pakietu instalacyjnego Cumulative Update. Nie musimy zaczynać od wersji RTM czy też SP1 w przypadku Exchange 2013, co jest częstym błędem osób korzystających z witryny pobrać dla licencji wolumenowych - z tej strony jest nam potrzebny tylko klucz licencyjny.

31 lipca 2016

Aktualizacje Skype for Business Server dla SQL Server Availability

Zamieszczam gościnnie artykuł Jacka Światowiaka o nieco nietypowej aktualizacji Skype for Business w konfiguracji z SQL Server Availability.
Skype for Business Server może wykorzystywać wysoką dostępność SQL określaną jako Availability Group. O ile proces konfiguracji jest dość intuicyjny to aktualizacja baz danych już nie do końca.


Rys.1. Konfiguracja SQL Store
Dla SQL pracującego w trybie Availability Group definiuje się dwa parametry, dwa adresy URL:
  • SQL Server Availibility Group Listener FQDN
  • SQL Server FQDN

 W standardowej konfiguracji oba adresy URL mają taką samą wartość.


Rys. 2. Konfiguracja SQL Availability Group

Aktualizacje Skype for Business Server przychodzą w postaci pakietów zbiorczych. Sam proces ich instalacji jest dosyć prosty. Wyłączamy usługi SFB na wszystkich serwerach Front End poleceniem:
Stop-CsWindowsService
Potem instalujemy pakiet SkypeServerUpdateInstaller.exe

Następnie należy zaktualizować schemat i konfigurację baz danych na serwerze SQL (Back End Server). W tym celu należy wykonać polecenie:

Install-CsDatabse  –Update -ConfiguredDatabase -sqlServerFQDN  -verbose

Niestety kreator aktualizacji wywali się dość dziwnym komunikatem błędu, iż konto nie może się dostać do WMI serwera SQL. Wstępne próby weryfikacji uprawnień nie rozwiązały problemu, gdyż w rzeczywistości problem jest w innym miejscu.
Rys.3. Okno błędu kreatora aktualizacji baz danych

Problemy leży w adresie URL serwera SQL.
Rys.4. Modyfikacja adresu URL serwera SQL na czas aktualizacji baz danych
Aby prawidłowo zaktualizować bazy należy:

  • Zmodyfikować adres FQDN serwera SQL – na adres fizycznego węzła na którym jest aktywna instancja availability group związanej z bazami danych SFB,
  • Opublikować topologię,
  • Uruchomić polecenie: Install-CsDatabse –Update -ConfiguredDatabase -SqlServerFQDN -verbose.
Teraz aktualizacja zakończy się powodzeniem
Rys.5a. Aktualizacja baz SQL Skype for Business

Rys.5b. Aktualizacja baz SQL Skype for Business

Następnie należy ponownie zmodyfikować adres URL serwera SQL na pierwotny i ponownie opublikować topologię. Po czym uruchomić usługi na serwerach Front End:

Start-CsWindowsService

30 czerwca 2016

Czerwcowe poprawki dla Skype for Business 2015

Dwa dni temu trochę po cichu pojawiła się trzecia paczka poprawek dla Skype for Business 2015. Oprócz usunięcia kilku błędów, pojawiło się w niej  kilka istotnych uzupełnień funkcjonalnych:
Video Based Screen Sharing (VBSS) to ważna zmiana funkcjonalna, poprawiająca wydajność i optymalizująca połączenia udostępniające pulpit, poprzez zmianę typu połączenia z RDP. VBSS pojawił się już kilka miesięcy temu w kliencie Skype for Business 2016 (od wersji 16.0.6330.1000), jednak działał tylko w połączeniach bezpośrednich pomiędzy takimi klientami. Teraz stało się to możliwe również w połączeniach konferencyjnych poprzez serwer SfB. Po zainstalowaniu poprawki na wszystkich serwerach z funkcjonalnością konferencyjną (ASMCU) we własciwościach polisy konferencyjnej pojawia się nowa pozycja - Application Sharing Mode, jak widać na ponizszym rysunku.Domyślnie włączona jest opcja VBSS (VideoWithFalllback), ale możemy to zmienić:
Set-CsConferencingPolicy -ApplicationSharingMode RDP






















Możliwość wykorzystania dodatkowych numerów alarmowych pewnie nie będzie w Polsce specjalnie popularna, więc nie będę się rozwodził, ale na pewno rozszerzenie polisy głosowej o opcję zajętości jest pożyteczne.  Użytkownicy mają do dyspozycji dwie opcje:
  • Busy on Busy
  • Voicemail on Busy
Czyli albo kiedy rozmawiamy nowa rozmowa jest odrzucana z sygnałem zajętości, albo jest przerzucana na pocztę głosową. Planowanie i konfiguracja tej funkcjonalności jest dokładnie opisane w dokumentacji produktu. Funkcjonalność offline message pozwala nam wysłać wiadomość do kontaktu, który chwilowo nie jest dostępny. Zamiast komunikatu błędu, że kontakt jest niedostępny, otrzymamy informację o fakcie, że kontakt jest offline, jednak gdy nasz kontakt się pojawi przy komputerze dostanie informację o przegapionych konwersacjach. Jest to realizowane z wykorzystaniem EWS, wykorzystując dostarczanie informacji do skrzynki Exchange użytkownika. Funkcjonalność oprócz serwera zaktualizowanego do CU3 (opcja offline message włączona w CU3 domyślnie) wymaga również odpowiedniej aktualizacji po stronie klienta:
  • Click-to-Run
    • FRDC: 16.0.6965.2055 i nowsze
    • DC: 16.0.6741.2048 i nowsze
    • FRCC/CC: 16.0.7070.2013 i nowsze
  • MSI: 16.0.4401.1000 (Lipcowa paczka poprawek PU)
Funkcjonalność możemy oczywiście wyłączyć, zgodnie z opisem w dokumentacji poprzez wykonanie komendy:
Set-CsImConfiguration -EnableOfflineIM $False

29 czerwca 2016

Włączenie wszystkich usług potrzebnych do pracy Exchange

Czasem instalacja nowego Cummulative Update'u lub poprawki bezpieczeństwa dla Exchange kończy się błędem, a nawet co gorsza kończy się poprawnie, lecz z jakiś powodów program instalacyjny nie przywróci poprawnego statusu wszystkich niezbędnych do poprawnego działania usług Exchange. Jako człowiek leniwy napisałem sobie krótki skrypcik, który co prawda nie ma rozbudowanej logiki, ale po prostu zmienia status usług Exchange, które powinny mieć ustawiony typ startu jako automatyczny na poprawną wartość. Skrypt uwzględnia usługi z wersji Exchange 2016 CU, działa również dla serwera Exchange 2013 z dowolnym CU.
#
# Script to change Echange Services Startup Type to proper value
#

# Start WMI as it was disabled
Set-Service Winmgmt -Startup Automatic # WMI was disabled
Set-Service Winmgmt -Status Running # WMI needs to be started


# Start IIS as it was disabled
Set-Service W3SVC -StartupType Automatic 
Set-Service IISADMIN -StartupType Automatic

# Start other services that were disabled during update
Set-Service RemoteRegistry -StartupType Automatic
Set-Service AppIDSvc -StartupType Automatic
Set-Service Pla -StartupType Automatic

# Exchange 2013 
set-service MSExchangeADTopology -StartupType Automatic
set-service MSExchangeAntispamUpdate -StartupType Automatic
set-service MSExchangeDagMgmt -StartupType Automatic
set-service MSExchangeDelivery -StartupType Automatic
set-service MSExchangeDiagnostics -StartupType Automatic
set-service MSExchangeEdgeSync -StartupType Automatic
set-service MSExchangeFastSearch -StartupType Automatic
set-service MSExchangeFrontEndTransport -StartupType Automatic
set-service MSExchangeHM -StartupType Automatic
set-service MSExchangeImap4 -StartupType Automatic
set-service MSExchangeIMAP4BE -StartupType Automatic
set-service MSExchangeIS -StartupType Automatic
set-service MSExchangeMailboxAssistants -StartupType Automatic
set-service MSExchangeMailboxReplication -StartupType Automatic
set-service MSExchangePop3 -StartupType Manual
set-service MSExchangePOP3BE -StartupType Manual
set-service MSExchangeRepl -StartupType Automatic
set-service MSExchangeRPC -StartupType Automatic
set-service MSExchangeServiceHost -StartupType Automatic
set-service MSExchangeSubmission -StartupType Automatic
set-service MSExchangeThrottling -StartupType Automatic
set-service MSExchangeTransport -StartupType Automatic
set-service MSExchangeTransportLogSearch -StartupType Automatic
set-service MSExchangeUM -StartupType Automatic
set-service MSExchangeUMCR -StartupType Automatic
set-service HostControllerService -StartupType Automatic
set-service FMS -StartupType Automatic
set-service wsbexchange -StartupType Manual
# Exchange 2016
set-service MSExchangeNotificationsBroker -StartupType Manual
set-service MSExchangeCompliance -StartupType Automatic
set-service MSComplianceAudit -StartupType Automatic
set-service MSExchangeHMRecovery -StartupType Automatic
#
# end of script
#