08 października 2019

Czym jest SEFAUTIL?

Od kilku miesięcy dosyć często korzystam z SEFAUTIL i zdałem sobie sprawę, z tego, że wielu administratorów Skype for Business (przynajmniej w Polsce, gdzie Enterprise Voice nie jest zbyt często wdrażaną funkcjonalnością SfB) nie kojarzy tej nazwy lub nie miało okazji użyć tego narzędzia. Zacznę więc może od początku.
Kiedy zaczynamy używać Skype for Business jako systemu telefonicznego, często zachodzi potrzeba wykonania dodatkowych operacji, związanych z pracą w grupie - przekierowania rozmowy, wskazania delegata, który może dzwonić w naszym imieniu czy też uruchomienia funkcjonalności dzwonienia grupowego. Wszystkie te opcje użytkownik może skonfigurować samodzielnie, korzystając z opcji klienta Skype for Business na swoim komputerze, jak widać na poniższym obrazku.
















Jednak gdy użytkownik jest nieobecny, a istnieje potrzeba wykonania takiej operacji, czy administrator może wyręczyć użytkownika? Odpowiedź jest prosta - może.
Żaby pomóc administratorowi w tych czynnościach, grupa produktowa już dla wersji Lync 2010 umieściła w zestawie narzędzi Resource Kit specjalne narzędze - SEFAUTIL, którego nazwa jest oczywiście skrótem i pochodzi od określenia Secondary Extension Feature Activation.
Niestety, narzędzie to działa w linii komend i wymaga dodatkowych przygotowań serwera, na którym chcemy je uruchomić - https://blogs.msdn.microsoft.com/ramblingsfromthefield/2014/11/14/using-sefautil-to-manage-users-delegates/. Nie jest to więc wygodne ani w żaden sposób powiązane z innymi czynności administracyjnymi, realizowanymi z powłoki PowerShell. Żeby np. sprawdzić ustawienia użytkownika, czy ma włączone równoczesne dzwonienie musimy wykonać (wskazując pulę serwerową, do której rejestruje się użytkownik) komendę:
.\SEFAUtil.exe /server:sfbpool.pepug.net adam.abacki@pepug.org
W odpowiedzi dostaniemy informację:
User Aor: sip:adam.abacki@pepug.org
Display Name: Adam Abacki
UM Enabled: True
Simulring enabled: True
Simul_Ringing to: sip:+48xxxxxxxxx@pepug.org;user=phone
User Ring time: 00:00:20

Call Forward No Answer to: sip:+48xxxxxxxxx@pepug.org;user=phone

Żeby usprawnić życie administratora kilka lat temu MVP Matt Landis i jego firma przygotowały narzędzie SEFAUTIL Server, które możemy zainstalować w naszym środowisku z poziomu Powershell, a co więcej wywoływać je zdalnie, korzystając z powershell remoting. Ta sama komenda będzie wyglądała w tym przypadku następująco:
Invoke-Command -ComputerName serv1.pepug.net -ScriptBlock { Get-CsUserForwarding sip:bolek.babacki@pepug.org }
Odpowiedź będzie nieco bogatsza i co ważne, będzie realizowana z poziomu powershell
PSComputerName                       : serv1.pepug.net
RunspaceId                           : 977d2548-53e2-4b5a-bbd7-19a89ab5033e
ApplyOnlyDuringWorkHoursFromCalendar : False
BlockCallsEnabled                    : False
Breakthrough                         : {}
CallForwardingEnabled                : False
CallForwardTo                        : {}
CallForwardToTargetsEnabled          : False
CategoryName                         : routing
ControlledDevice                     : {}
DelegateRingEnabled                  : False
Delegates                            : {}
FirstDelegate                        :
FirstDelegateWaitTime                : 00:00:00
ForwardAudioAppInvitesEnabled        : False
SimultaneousRing                     : {}
SimultaneousRingEnabled              : False
SkipPrimaryEnabled                   : False
Team                                 : {}
TeamOrOtherDelegatesWaitTime         : 00:00:20
TeamRingEnabled                      : False
UserOnlyWaitTime                     : 00:00:20
UserWaitTimebeforeTeamOrDelegates    : 00:00:00
VoiceEscalation                      : {}
Po wielu latach próśb zespół produktowy w końcu zawarł cmdlety z grupy SEFAUTIL w pakiecie CU1 dla Skype for Business 2019, co znacząco upraszcza konfigurację i pozwala nam sprawdzić i ustawić w imieniu użytkownika niezbędne opcje bez konieczności instalowania dodatkowych narzędzi. Teraz żeby sprawdzić ustawienia użytkownika wystarczy wykonać komendę:
Get-CsUserCallForwardingSettings -Identity sip:Adam.Abacki@pepug.org

18 września 2019

Aktualizacje dla Exchange

Ostatnie dni były bogate w informacje, dotyczące aktualizacji i zmian w systemie Exchange. Najpierw Microsoft udostępnił poprawki bezpieczeństwa, łatające zagrożenia opisane w artykułach:


Poprawki zostały wydane dla dwóch poprzednich wersji CU w wersjach Exchange 2016 (CU 12 i CU13) oraz Exchange 2019 (CU1 i CU2).
Jednak kto nie zrobił od razu instalacji poprawek, powinien raczej spojrzeć na nowe wydanie aktualizacji zbiorczych dla tych systemów, które poza dziurami bezpieczeństwa rozwiązują również inne problemy funkcjonalne. Pakiety te nie rozszerzają schematu AD i nie wprowadzają nowych funkcjonalności, jednak warto przeczytać artykuły opisujące poprawki, bo listy usuniętych błędów są całkiem długie. Warto pamiętać również, że organizacje hybrydowe muszą mieć zainstalowaną wersję nie starszą niż poprzednia aktualizacji (N-1). Poniżej więcej szczegółów:
Kolejna aktualizacja, o której warto wspomnieć, to ogłoszone 16 września przedłużenie wsparcia technicznego na Exchange 2010 do 13 października 2020 roku. Część firm, która rozpoczęła migrację do nowszych wersji lub do chmury i z różnych powodów harmonogram migracji nie kończył się przez 14 stycznia odetchnie z ulgą. Jednak nie oznacza to oczywiście, że powinny odkładać migrację na przyszły rok. W styczniu kończy się również wsparcie na platformę Windows Server 2008R2, więc w wielu przypadkach Exchange będzie wspierany trochę dłużej, ale już jego platforma systemowa nie.

03 września 2019

Kolejna aktualizacja dla Skype for Business 2015

Dopiero miesiąc temu ukazała się paczka poprawek CU10 dla Skype for Business 2015, o czym pisałem ostatnio, a już Microsoft opublikował kolejną aktualizację, ze względu na zgłaszane przez niektórych użytkowników problemy, dotyczące problemów z transferowaniem rozmów zewnętrznych na telefonach Polycom VVX oraz rozłączania konferencji po 30 minutach ze względu na nieprawidłowe odświeżanie licznika wygasania sesji. Paczkę poprawek, oznaczoną jako CU10 HF1 można pobrać bezpośrednio ze strony pobrań Microsoftu, więcej informacji w artykule zbiorczym opisującym kolejne poprawki dla Skype for Business 2015.

05 sierpnia 2019

Aktualizacje dla Skype for Business

Minęła już połowa wakacji, wróciłem z urlopu, ale zespół produktowy Skype for Business nie próżnuje. W ostatnich dniach pojawił się pakiet aktualizacji CU10 dla Skype for Business 2015, a nieco wcześniej (podczas mojego urlopu) długo oczekiwany pakiet CU1 dla Skype for Business 2019. O ile Skype for Business 2015 aktualizowany jest regularnie (CU 8 w grudniu, CU8/HF1 w marcu i CU9 w maju - w tym artykule zaktualizowana lista poprawek), to w przypadku Skype'a 2019 pierwsza aktualizacja, ale za to pełna nowych funkcjonalności. Co można znaleźć w tych aktualizacjach?
Skype for Business 2015 CU10 usprawnia LBR i bezpieczeństwo systemu, rozwiązuje również sporo problemów zgłoszonych w ostatnich miesiącach, :
  • 4510852 UCWA client is disconnected because w3wp.exe crashes when using clarity connect in Skype for Business Server 2015
  • 4510851 SCOM SQL alerts are created every hour on SQL Secondary Replica server if "Always On" for Monitoring Server is set in Skype for Business Server 2015
  • 4510850 Skype for Business on Mac user’s latest photo can’t be seen until signing in to a Windows client in Skype for Business Server 2015
  • 4511313 “Too many outstanding requests for a single user” error occurs on Front-End servers in Skype for Business Server 2015
  • 4510847 Rate My Call on UCWA clients still shows after installing the January 2019 Cumulative Update for Skype for Business Server 2015
  • 4510846  “InstallDatabaseInternalFailure: An internal error has occurred…” error when installing new databases in Skype for Business Server 2015
  • 4507230 Support LBR and branch site voice resiliency conflicting requirements in Skype for Business Server 2015
  • 4459114 The installed local XDS database version doesn't match the expected version in Skype for Business Server 2015
  • 4507232 Resuming a PSTN call that was put on hold results in one-way audio in Skype for Business Server 2015
  • 4510845 UCWA Event ID 20002, 20003, and 20033 occurs after you install the July 2018 cumulative update for Skype for Business Server 2015
  • 4510844 Can’t find the response group agent that’s synced from an existing distribution list in Skype for Business Server 2015
  • 4510843 Forwarding a missed call from Shared Line Appearance fails in Skype for Business Server 2015
  • 4507228 No notifications from UCMA conference subscriptions after a network disconnection in Skype for Business Server 2015
  • 4510842 Form-based authentication still works after you disable external basic authentication in Skype for Business Server 2015
  • 4510841 Skype for Business 2015 Mediation Server doesn’t respect the codec prioritization for outgoing PSTN calls
  • 4510840 Error ID 28042 and UCMA sign-in fails in Skype for Business Server 2015
  • 4510839 Skype for Business still rings if a PSTN call is ended before it's answered by an online user in Skype for Business Server 2015
  • 4510855 Can’t edit interactive RGS workflows via the web interface in Skype for Business Server 2015
  • 4507233 Enterprise users can't request control of an anonymous user’s shared screen in Skype for Business Server 2015
  • 4510856 User can’t create Skype meeting for a delegator via Skype for Business on Mac if they’re homed in different pools in Skype for Business Server 2015
  • 4512879 UCWA client can’t make a P2P call or join a conference when EnableExternalAccessCheck is True and EnableOutsideAccess is False in Skype for Business Server 2015
  • 4503584 “The Audio/Video Conferencing Server has failed to create a conference” error (ID 32005) occurs on Audio/Video Conferencing Server in Skype for Business Server 2015
Na CU1 dla Skype for Business 2019 czekaliśmy bardzo długo. Jeszcze w zeszłym roku Microsoft zapowiedział kilka istotnych usprawnień, takich jak zastąpienie w Control Panelu Silverlighta przez HTML 5 oraz wprowadzenie cmdletów dostępnych w SEFAUtil (więcej o SEFAUtil w oddzielnym artykule). Podobnie jak w przypadku CU10 dla SfB 2015 pakiet usprawnia również Location Based Routing oraz naprawia błędy znalezione w ostatnich miesiącach w Skype for Business 2019. Istalacja pakietu jest realizowana dokładnie tak samo jak w wersji 2015, więcej szczegółów w artykule KB, poniżej lista poprawek:
  • 4458678 Skype for Business VbSS application sharing doesn't work for UCMA based Contact Center in Skype for Business Server 2019
  • 4503615 Can't escalate a peer-to-peer call to a conference if VbSS is used in screen sharing in Skype for Business on Mac
  • 4503617 Skype for Business UCWA clients can't be distinguished on CDR report if connection is internal or external in Skype for Business Server 2019
  • 4503618 Updated job title isn't displayed in the Skype for Business for Mac or mobile client in Skype for Business Server 2019
  • 4503619 Support for sending custom client policy entries to UCWA clients in Skype for Business Server 2019
  • 4503621 "Call was not completed or has ended" error when you make a call with a federated user in Skype for Business Server 2019
  • 4470530 Can't make an outbound emergency call by using Skype for Business on Mac if LBR is enabled
  • 4503623 Can’t call Exchange UM Subscriber Access or Auto Attendant if the contact object is homed on a Skype for Business Server 2019 pool
  • 4487819 Intranet URI is still filtered even if IgnoreLocal is set to True in Set-CsImFilterConfiguration in Skype for Business Server 2019
  • 3141120 Call transfer from a PSTN call to a federated user fails in Skype for Business Server 2019
  • 4512994 PSTN phone is in holding until a Skype for Business user joins even if AllowAnonymousPstnActivation is True in Skype for Business Server 2019
  • 4488056 UCMA calls still fail after one Front End server in the pool goes down for a while in Skype for Business Server 2019
Warto również wspomnieć o zaktualizowanych narzędziach Skype for Business Server 2019 Debugging Tools - Snooper ma nowy build, jednak Microsoft nie opublikował informacji jakie zmiany zostałe wprowadzone. Zostały  również zaktualizowane materiały na temat parametrów KHI, zarówno dla Skype for Business 2015/2019 jak i Lync Server 2013.

21 czerwca 2019

Czerwcowe poprawki do Exchange

Wczoraj Microsoft opublikował kolejną porcję poprawek do serwerów Exchange:

Żaden z Cumulative Update'ów nie rozszerza schematu, jednak ze względu na modyfikację uprawnień (poprawki wprowadzają dodatkowe ograniczenia uprawnień dla Exchange w Active Directory), należy uruchomić setup /preparead.
Oprócz modyfikacji uprawnień, pakiety wprowadzają wsparcie dla .Net Framework 4.8, przy wymogu posiadanie wersji 4.7.2 na serwerze do zainstalowania aktualizacji (oczywiście jak w poprzednich aktualizacjach niezbędny jest również runtime Visual C++ 2012). Dodatkowo dla wersji 2016/2019 pozwalają na ograniczanie widoczności folderów publicznych dla użytkowników (tak jak od niedawna jest możliwe w Exchange Online) oraz mają pozwalać na wyłączanie starszych protokołów dostępowych (szczegóły mają być niebawem udostępnione na blogu zespołu produktowego).
Jednocześnie dla Exchange 2010 została wydana poprawka bezpieczeństwa, jako Exchange 2010 SP3 RU28, opisana w KB4503028. Poprawkę można pobrać z tej lokalizacji. Poprawka rozwiązuje problem opisany w Security Advisory ADV190018. Jest ona również zawarta w najnowszych aktualizacjach zbiorczych dla pozostałych wersji, opisanych wcześniej w poście. 


17 kwietnia 2019

Kwietniowe poprawki bezpieczeństwa dla Exchange

Kilka dni temu przy okazji cyklicznego święta "patch Tuesday", pojawiły się poprawki bezpieczeństwa dla wszystkich wspieranych wersji Exchange, które rozwiązują problem opisany w poniższych artykułach:
Warto pamiętać, że poprawki zostały przygotowane tylko dla najnowszych i N-1 wersji systemów, więc warto instalować pakiety CU na bierząco. Poniżej lista dostępnych poprawek i odpowiednie artykuły w bazie wiedzy Microsoft:

Wersja Exchange

Build
Artykuł KB
Lokalizacja poprawki
CVE-2019-0817
CVE-2019-0858
Exchange 2019 CU1
15.2.330.7
Yes
Yes
Exchange 2019
15.2.221.16
Yes
Yes
Exchange 2016 CU12
15.1.1713.6
Yes
Yes
Exchange 2016 CU11
15.1.1591.16
Yes
Yes
Exchange 2013 CU22
15.0.1473.4
Yes
Yes
Exchange 2010 SP3 RU27
14.3.452.0
Yes
No
Jak widać w powyższej tabeli, poprawka dla wersji Exchange 2010, nie rozwiązuje problemu opisanego w CVE-2019-0858. Rozszerzone wsparcie dla tej wersji systemu kończy się już za 9 miesięcy (14 stycznia 2020) i od tego dnia żadne aktualizacje nie będą publikowane.

15 kwietnia 2019

Global Azure Boot Camp 2019


Idą Święta a po Świętach nadciąga Global Azure Boot Camp. Już 27 kwietnia w kilku polskich miastach również odbędą się eventy z tego cyklu - między innymi w WarszawieŁodzi i Poznaniu. Ja serdecznie zapraszam na spotkanie w Poznaniu, gdzie będę opowiadać o hybrydowym uwierzytelnieniu w usługach chmurowych. Rejestrować można się tutaj.


31 marca 2019

Instalacja poprawek dla Skype for Business w trybie wysokiej dostępności

Instalacja poprawek dla Skype for Business (wcześniej również dla Lync) z pozoru jest prostym zadaniem dla administratora. W przypadku systemu operacyjnego, lokalnych instancji SQL Express czy np. .Net Framework instalacja aktualizacji czy poprawek proces jest stosunkowo prosty z punktu widzenia technicznego i jeżeli nie wymaga restartu serwera, to dla użytkowników systemu nie ma przerwy w dostępie do usług. Instalacja poprawek dla Skype for Business wymaga wyłączenia usług na danym serwerze, a to już użytkownicy zauważą. Jeżeli system pracuje w godzinach biurowych jako platforma komunikacji IM, to nie jest to duży problem. Jednak w przypadku gdy system świadczy również usługi głosowe i konferencyjne, a na dodatek musi pracować w trybie 7x24, to wymagane są nie tylko dodatkowe serwery - poole typu Enterprise, ale i dodatkowe kroki przygotowawcze.
Zespół produktowy Skype for Business (wcześniej również Lync) wyszedł naprzeciw oczekiwaniom bardziej wymagających klientów i wprowadził mechanizmy zarówno wysokiej dostępności, połączonej z rozłożeniem obciążenia - wieloserwerowe pule typu Enterprise (rysunek poniżej)













jak i disaster recovery (jakoś nie przepadam za polskim tłumaczeniem tego określenia) realizowane poprzez parowanie pul (kolejny rysunek).










Parowanie pul polega na replikowaniu informacji o użytkownikach rejestrujących się w danej puli i w przypadku awarii przełączenie ich na zapasową bazę w drugiej puli, co pozwala w miarę bezproblemowo kontynuować pracę (w trakcie przełączenia użytkownik jest na chwilę wylogowywany). Konfigurację taką można zastosować nawet na pulach typu standard (parowanie działa w obie strony, czyli użytkownicy pracują w obu pulach, które nawzajem się zabezpieczają).
Wdrożenie pul wieloserwerowych wymaga znaczącego zwiększenia kosztów wdrożenia - dodatkowe maszyny Windows Server, licencje na dodatkowe serwery Skype for Business, obowiązkowy load balancer oraz zewnętrzny serwer SQL w wersji co najmniej Standard. Oczywiście chcąc zapewnić pełną wysoką dostępność SQL powinien być również wdrożony w konfiguracji clustrowej (dla Skype for Business 2019 mirroring nie jest wspierany, zalecana konfiguracja to grupy Always On). Jednak w przypadku środowiska, gdzie Skype for Business jest podstawową platformą komunikacyjną i konferencyjną, jest to naprawdę dobra inwestycja.
Mając sparowane pule serwerowe możemy wykonać operację pool failover na czas instalacji poprawek, a po jej zakończeniu failback, wtedy użytkownik tylko na czas przełączenia na chwilę traci dostęp do zasobów.
Trochę wstęp mi się rozwinął, więc więcej szczegółów na temat procedur operacyjnych przedstawię w drugiej części artykułu.

Marcowa aktualizacja Skype for Business

Lekko spóźniona informacja ale na pewno przydatna. Trochę po cichu Microsoft wydał kolejną poprawkę dla Skype for Business 2015. Tak naprawdę różni się ona od styczniowej paczki tylko uzupełnieniem o załatanie podatności opisanych w artykułach:
Instalację można zrealizować jak zwykle poprzez uruchomienie instalatora
Download the March 2019 Cumulative Server Update Installer

Oczywiście warto wcześniej przeczytać uważnie artykuł Updates for Skype for Business 2015. Ja również postanowiłem napisać parę własnych przemyśleń na temat procesu aktualizacji.

12 lutego 2019

Lutowe aktualizacje dla Exchange

Ostatnio zespół Exchange nie miał szczęścia do zabezpieczeń. Pomimo opublikowania w styczniu poprawek bezpieczeństwa, o czym pisałem już na blogu, została odkryta kolejna, bardzo niebezpieczna podatność, nad załataniem której zespół Exchange pracował w ostatnich dniach bardzo intensywnie.
Przypomnę, że podatność pozwala napastnikowi użyć subskrypcji EWS, żeby użyć konta serwera Exchange do zaatakowania kontrolera domeny, gdzie (jeżeli nie jest wdrożony model split permission) konta serwerów Exchange mają całkiem spore uprawnienia - dokładniej jest to opisane w podlinkowanym wcześniej artykule.
Na szczęście dzisiaj pojawiły się niezbędne poprawki do czterech wersji Exchange (nieszczęśni ci, co używają jeszcze wersję 2007). Pomimo wcześniejszych obietnic (znowu), zespół Exchange się złamał i ze względu na specyfikę poprawki dla wersji 2013 pojawił się CU22 dla wersji 2016 i 2019 poprawki zostały również wydane jako pakiety zbiorcze aktualizacji.
Sposób instalacji aktualizacji też jest niecodzienny - ze względu na wprowadzane zmiany, instalator należy uruchomić z przełącznikiem /PrepareAD, w celu wykonania odpowiednich kroków zabezpieczających w strukturze Active Directory. Ponadto Microsoft po zainstalowaniu poprawki zaleca zresetowanie haseł dla kont serwerów Exchange w domenie. Administratorzy zarządzający swoim środowiskiem przy pomocy Powershell 5.1 mogą użyć cmdleta reset-computermachinepassword, dla starszych wersji systemów możemy użyć netdom lub konsoli ADUC. Podobnie jak w przypadku poprzednich pakietów Cumulative Update należy zainstalować najpierw runtime Visual C++ 2012. Poniżej odnośniki do odpowiednich artykułów i samych poprawek. Warto przypomnieć, że aktualizacje dla Exchange 2019 pobierane są z centrum umów wolumenowych, a nie z ogólnej strony pobrań jak w przypadku starszych wersji..
Exchange Server 2019 Cumulative Update 1 (KB4471391), VLSC Download
Exchange Server 2016 Cumulative Update 12 (KB4471392), Download, UM Lang Packs
Exchange Server 2013 Cumulative Update 22 (KB4345836), Download, UM Lang Packs
Exchange Server 2010 Service Pack 3 Update Rollup 26 (KB4487052), Download

11 stycznia 2019

Styczniowy pakiet aktualizacji dla Skype for Business Server 2015 wydany

Kilka dni temu Microsoft wydał kolejny pakiet Cummulative Update dla Skype for Business 2015. Lista poprawek jest naprawdę długa, większość z nich usuwa znalezione w ostatnich miesiącach  błędy, jak dla mnie jednak najciekawsza jest poprawka wyrównująca funkcjonalność z wersją SfB 2019 - możliwość bezpośredniego migrowania użytkowników do Teams. Pełna lista poprawek jest dostępna w artykule KB, a pakiet aktualizacyjny można pobrać z tego miejsca. Podobnie jak poprzednia poprawka, pakiet CU8 wymaga posiadania .Net Framework w wersji co najmniej 4.5.2. Warto również zauważyć, że nowy pakiet aktualizacji rozwiązuje problem występujący w organizacjach używających SQL 2008  R2 (problem ten uniemożliwiał instalację poprawku CU7).
Równolegle Microsoft udostępnił aktualizacje dla Lync Servera 2013. W tym przypadku lista zmian jest dużo skromniejsza, ale oczywiście dobrze jest mieć system zaktualizowany. Pakiet można pobrać z tej lokalizacji.

09 stycznia 2019

Styczniowe poprawki bezpieczeństwa dla serwerów Exchange

Co prawda do wydania kolejnych Cummulative Updates dla Exchange (już tylko 2016 i 2019) zostało jeszcze sporo czasu, ale pojawiły się wczoraj aktualizacje bezpieczeństwa dla wszystkich wspieranych wersji Exchange (przypomnę, że 2010 i 2013 mają już tylko rozszerzone wsparcie, więc będą otrzymywać tylko poprawki bezpieczeństwa). Poprawka bezpieczeństwa dla Exchange 2010, wydana jako Update Rollup 25 dla Exchange 2010 SP3, łata dziurę ogłoszoną w CVE-2019-0588, która dotyczy udostępniania kontrybutorom kalendarzy zbyt dużych uprawnień przez Powershell API. Oczywiście RU 25 zawiera również zbiorcze poprawki zawarte w poprzednich paczkach aktualizacji, Poprawkę można pobrać z tego linku.
Poprawka dla nowszych wersji Exchange, zawiera dodatkowo rozwiązanie problemu przedstawionego w artykule CVE-2019-0586, który dotyczy nieprawidłowej obsługi pamięci i może doprowadzić do uruchomienia przez napastnika kodu w kontekście użytkownika systemowego. Więcej informacji na ten temat można znaleźć w artykule pomocy technicznej. Poniżej linki do pobrania poprawek:

01 stycznia 2019

Podsumowanie roku 2018 - coś się kończy, coś się zaczyna

Jak co roku przyszedł czas na podsumowanie roku 2018 i próbę prognozowania tego, co przyniesie rok 2019. Pozwoliłem sobie na cytat z jednego z ulubionych autorów, a powód za chwilę się ujawni.
Rok 2018 prywatnie był dla mnie trudny - matura i rekrutacja na studia, egzaminy gimnazjalne i rekrutacja do liceum (na szczęście córki dostały się tam gdzie chciały, ale stres był), trochę chorób w rodzinie, sam też po kilku latach pracy na 250% normy zacząłem wykazywać braki kondycyjne. Starałem się jednak integrować z rodziną i trochę się ukulturalniać, dużym przeżyciem było przedstawienie "Notre Dame de Paris" no i wspaniała wycieczka objazdowa po krajach Beneluxu - Brugia i Gandawa były niesamowite, Bruksela piękna, choć zatłoczona, a do Amsterdamu zawsze  chętnie zaglądam, nawet gdy pada. Chociaż trzeba przyznać, że temperatury w tym roku, jak w całej Europie były dużo wyższe niż się spodziewałem, co nieco utrudniało cieszenie się krajobrazami.
Stojąc codziennie dwie godziny w korkach, przesłuchałem całkiem sporo książek, nawet więcej niż miałem w pierwotnych planach, parę udało mi się przeczytać tradycyjnie (chociaż dla moich córek czytanie ebooków na Kindle'u nie jest ciągle tradycyjną formą czytania) i chociaż rozrzut tematyczny był całkiem spory, to oprócz pozycji, które czytałem dla zabawy - lubię zarówno kryminały jak i różnorodne formy fantastyki, dostałem sporo informacji do przemyśleń z pozycji poświęconych biznesowi.
Co udało mi się w tym roku osiągnąć? Całkiem sporo  - po raz 12 Microsoft nagrodził mnie tytułem MVP, a nieco wcześniej po kilkuletniej przerwie udało mi się wziąć udział w MVP Summit i poznać plany grup produktowych dotyczące rozwoju systemów Office Servers 2019.  Później brałem udział w testach kolejnych wersji beta Exchange Server 2019, Skype for Business 2019 oraz wielu nowych funkcjonalności Microsoft Teams. Udało mi się również ponownie zorganizować Office Servers Summit, choć nieco mniejszy niż chciałem, ale konferencja była ciekawa. Nieco zaniedbałem cykliczne spotkania PEPUG, jednak przy okazji Microsoft Tech Summit Warsaw udało się zrealizować wspólnie z grupą Powershell spotkanie z Jeffreyem Snoverem - ojcem Powershella.
Poprowadziłem również prezentacje na kilku konferencjach w Polsce, a na Microsoft Ignite prezentowałem rozwiązania video dla Microsoft Teams na stoisku grupy produktowej oraz pomagałem uczestnikom laboratoriów. Wspaniałe doświadczenie.
Wracając do biznesu i technologii - na pewno w roku 2018 premiery Windows Server 2019 (chociaż ze spektakularną wpadką), Exchange 2019, Skype for Business 2019 i Sharepoint 2019 było bardzo ważnymi wydarzeniami, jednak spektakularne zmiany w Microsoft Teams oraz usługach Azure przyćmiły te premiery. Na pewno wiele blogów technologicznych przeprowadzi bardziej szczegółowe porównania, pokazując trendy bardziej profesjonalnie. Ale w 2019 roku jak dla mnie bardzo istotnym trendem będzie wypieranie Skype for Business Online przez Microsoft Teams - Microsoft rozpoczął w listopadzie proces migracji tenantów nie większych niż 500 użytkowników, a partnerzy mają migrować stopniowo większe organizacje. Coraz więcej organizacji przenosi się do chmury, więc Exchange 2019 raczej nie zrobi furory w najbliższym roku (zwłaszcza że próg wejścia jest duży - nowy Exchange działa tylko na Windows Server 2019, co wymusza aktualizację Windows CAL i spore koszty z tym związane). Więc ci, co nie chcą przejść do Office 365 będą się umacniać na platformie Exchange 2016 (od pół roku nie ma już Cummulative Update'ów dla Exchange 2013).
Ja również po wielu latach skupiania się przede wszystkim na platformie Exchange, będę teraz zajmować się zawodowo usługami powiązanymi ze Skype for Business, rozpoczynając nową pracę.

02 grudnia 2018

Przykłady dostosowywania TeamSites - część pierwsza

Tydzień temu miałem przyjemność prowadzić prezentację na konferencji Sharecon 2018, dotyczącą automatyzacji zadań związanych z tworzeniem TeamSite'ów. Ostatnio trochę głębiej badałem ten temat w związku z projektami wdrażania Microsoft Teams (a przecież TeamSite na Sharepoincie Online jest tworzony dla każdego zespołu Teams). Prezentację uzupełniłem o przykłady wykorzystania powershella i stwierdziłem, że warto o tym parę słów napisać.
Pierwszy przykład, wykorzystujący Powershella związany był z zagadnieniem Sharepoint Site Theming. Możemy w prosty sposób utworzyć i zastosować własny temat kolorystyczny (skrypt yellowtheme.ps1), który  następnie możemy użyć do utworzenia sitescriptu, wykorzystanego następnie do zmiany domyślnego szablonu strony TeamSite.
#
# yellowtheme.ps1
#

Connect-PnPOnline -Url https://pepugnet-admin.sharepoint.com
$themepalette = @{
    "themePrimary" = "#ffdd00";
    "themeLighterAlt" = "#fffded";
    "themeLighter" = "#fff9d1";
    "themeLight" = "#fff090";
    "themeTertiary" = "#ffe53f";
    "themeSecondary" = "#ffde0b";
    "themeDarkAlt" = "#e6c700";
    "themeDark" = "#a38d00";
    "themeDarker" = "#8c7a00";
    "neutralLighterAlt" = "#f8f8f8";
    "neutralLighter" = "#f4f4f4";
    "neutralLight" = "#eaeaea";
    "neutralQuaternaryAlt" = "#dadada";
    "neutralQuaternary" = "#d0d0d0";
    "neutralTertiaryAlt" = "#c8c8c8";
    "neutralTertiary" = "#595959";
    "neutralSecondary" = "#373737";
    "neutralPrimaryAlt" = "#2f2f2f";
    "neutralPrimary" = "#000000";
    "neutralDark" = "#151515";
    "black" = "#0b0b0b";
    "white" = "#ffffff";
    "primaryBackground" = "#ffffff";
    "primaryText" = "#000000";
    "bodyBackground" = "#ffffff";
    "bodyText" = "#000000";
    "disabledBackground" = "#f4f4f4";
    "disabledText" = "#c8c8c8";
}

Add-PnPTenantTheme -Identity "yellowTheme" -Palette $themepalette -IsInverted $false

Powyższy skrypt działa bardzo prosto - łączymy się do naszego tenanta O365, a konkretnie do witryny administracyjnej SPO (w przykładzie używam swojego tenanta testowego). Następnie definiujemy paletę kolorystyczną naszego tematu - brzmi groźnie, jednak na stronie Theme Generator Tool jest dostępny online'owy edytor kolorów, który generuje nam od razu odpowiednią tablicę w Powershell, JSON lub kod JavaScript (od razu możemy przejść przez link do edytora online CodePen).
































Ostatni cmdlet w skrypcie definiuje nam nowy temat kolorystyczny na poziomie tenanta Office 365.
Warto przy okazji zauważyć, że oba cmdlety użyte w skrypcie znajdują się nie w domyślnym module administracyjnym Sharepoint Online ale w module SharePointPnPPowerShellOnline, czyli module Powershell udostępnionym w ramach Sharepoint Patterns and Practices (PnP). Moduł możemy sobie zainstalować ze standardowego repozytorium PSGallery (o konfiguracji komputera do administrowania Office 365 pisałem kilka miesięcy temu), uzyskując w ten sposób wiele dodatkowych możliwości zarządzania SPO.
Mając dodany na poziomie tenanta temat kolorystyczny, możemy go ręcznie przypisać do site'u (rysunek poniżej), albo użyć w konfiguracji domyślnego szablonu dla kolejnych witryn.
W tym celu musimy utworzyć plik JSON z definicją sitescriptu (poniżej), a następnie wykonać następujące polecenia:
Get-Content 'c:\Scripts\TeamSite\spsitescript.json' -Raw | Add-SPOSiteScript -Title "ThemeDemo" -Description "Applies theme and nav link"
Add-SPOSiteDesign -Title "Theme" -WebTemplate "64" -SiteScripts "6b4d56ac-b866-4909-a5ba-e25f5d0b0885" -Description "Applies standard company theme to site" -IsDefault

Pierwsza sekwencja tworzy site script na podstawie zawartości pliku JSON i zwraca identyfikator skryptu, a druga komenda tworzy zmodyfikowany szablon TeamSite (numer szablonu 64) i ustawia go jako domyślny dla tenanta (ciąg "6b4d56ac-b866-4909-a5ba-e25f5d0b0885" to właśnie identyfikator skryptu). 
Zawartość JSON spssitescript.json wygląda następująco:
{
    "$schema": "schema.json",
        "actions": [
            {
                "verb": "addNavLink",
                "url": "https://techcommunity.microsoft.com",
                "displayName": "Aswers from Community",
                "isWebRelative": false
            },
            {
                "verb": "applyTheme",
                "themeName": "yellowTheme"
            }
        ],
        "binddata": {},
        "version": 1
}
Jak można się domyślić, patrząc na składnię pliku, definiowane są dwie akcje, które będą dodatkowo wykonywane podczas tworzenia nowej witryny typu TeamSite - dodawana jest pozycja do menu nawigacyjnego oraz ustawiany jest temat kolorystyczny (zdefiniowany wcześniej na poziomie tenanta) widać to wyraźnie, gdy uruchomimy kreator tworzenia nowej witryny zespołu z poziomu portalu Sharepoint Online (rysunek poniżej).



















Więcej informacji na temat możliwych akcji przekazywanych przez JSON i poprawnej składni można znaleźć w dokumentacji Sharepoint. Inne możliwości użycia zmodyfikowanych elementów wyglądu strony pokażę w drugiej części artykułu.

08 listopada 2018

Zarządzanie chmurą z Powershell - ładowanie modułów

We wcześniejszym wpisie przedstawiłem kroki, które dobrze jest wykonać na standardowym komputerze Windows 10, przy pomocy którego chcemy administrować środowiskiem Office 365 i Azure. Piszę "i", a nie "lub", ponieważ środowiska te coraz głębiej się przenikają i o ile 2-3 lata temu można było zarządzać Office 365 bez odwoływania się do Azure, to teraz robi się to coraz trudniejsze.
Ale przejdźmy do konkretów - poszczególne obszary funkcjonalne mogą być zarządzane z poziomu Powershella, ale ponieważ są rozwijane przez różne grupy produktowe, więc jak można się domyślać, mamy do tego oddzielne moduły. Poniżej lista modułów, które dobrze jest zainstalować na swojej stacji administracyjnej.










Oprócz zaktualizowanej wersji modułu PowerShellGet widać tutaj moduły do zarządzania kontami chmurowymi i domenami chmurowymi, kontami AzureAD, również z użyciem Microsoft Graph (AzureADPreview) oraz kilka modułów dodatkowych jak np. Exch-Rest, opracowany przez Glena Scalesa, na potrzeby wykonywania akcji na Exchange Online z użyciem Rest API. Innym ciekawym modułem jest SharepointPnPPowerShellOnline, który pozwala na dodatkowe operacje na środowisku Sharepoint Online. Na powyższej liście nie widać modułów do Sharepointa online i Skype for Business Online.  Niestety trzeba je instalować i aktualizować w sposób tradycyjny. Jeżeli używamy dla kont administracyjnych MFA, to również dla Exchange online musimy pobrać dedykowany moduł. Jest on dostępny do pobrania z portalu administracyjnego Exchange Online naszego tenanta.




















W zależności od potrzeb, do wykonywania zadań administracyjnych potrzebujemy często załadować kilka modułów po kolei, do czego najwygodniej użyć skryptu. Kilka takich skryptów można znaleźć w galerii Technet lub na blogach innych specjalistów. Procedura tworzenia takiego skryptu jest opisana również w dokumentacji Office 365. Ja najczęściej korzystam z takiego skryptu. Z lenistwa w skrypcie zapisuję odpowiednie konto administracyjne i odkomentowuję odpowiednie linie dotyczące aktualnie używanych modułów:
#
# get global admin credential
#
$credential = Get-Credential admin@pepug365.onmicrosoft.com
[string]$tenant = 'pepug365'

#
# connect to Azure AD
#
Import-Module MsOnline
Connect-MsolService -credential $credential

#
# connect to Azure AIP
#

import-module AADRM
Connect-AadrmService -Credential $credential

#
# connect to Sharepoint Online
#
Import-Module Microsoft.Online.Sharepoint.PowerShell
Connect-SPOService -url https://$tenant-admin.sharepoint.com -Credential $credential


#
# connect to Exchange Online
#
#$exchSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $credential -Authentication Basic -AllowRedirection
#Import-PSSession $exchSession -DisableNameChecking -AllowClobber
#
# If MFA for Exchange admin is enabled, you should have Exchange Online Remote PowerShell Module locally
# and use cmdlet below
#
Connect-EXOPSSession -UserPrincipalName admin@pepug365.onmicrosoft.com

#
# connect to Skype for Business Online
#
Import-Module SkypeOnlineConnector
$sfboSession = New-CsOnlineSession -Credential $credential
Import-PSSession $sfboSession

#
# connecto to Microsoft Teams
#
Import-Module -Name MicrosoftTeams
Connect-MicrosoftTeams -Credential $credential