02 grudnia 2018

Przykłady dostosowywania TeamSites

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 po połączeniu się do serwisu SPO, wykonać następujące polecenia:

$siteScript = (Get-Content 'c:\Scripts\TeamSite\spsitescript.json' -Raw | Add-SPOSiteScript -Title "ThemeDemo" -Description "Applies theme and nav link")  | Select -First 1 Id
Add-SPOSiteDesign -Title "Theme" -WebTemplate "64" -SiteScripts $siteScript.Id -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 (szablonu WebTemplate o numerze 64) i ustawia go jako domyślny dla naszego tenanta ($siteScript.Id to właśnie identyfikator naszego skryptu).
Jeżeli chcielibyśmy dostosować Site typu Communication, powinniśmy użyć WebTemplate o wartości 68. Jeżeli zostało wprowadzone ograniczenie na tworzenie zespołów Office 365, to żeby stworzyć Site typu zespołowego ale bez grupy Office 365, to WebTemplate powinien mieć wartość 1.
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 (link do portalu Techcommunity) 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 przykłady zastosowania sitescriptów i dostosowywania wyglądu site'ów sharepoint Online można znaleźć na blogu Laury Kokkarinen. Jeżeli ktoś woli prezentację wideo, to warto obejrzeć również ten filmik.

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. 

Update
Od niedawna dostepny jest nowy moduł do zarządzania Exchange Online - ExchangeOnlineManagement, który dużo prościej możemy zainstalować bezpośrednio z PowerShellGallery. Najnowsza wersja modułu jest dostępna również poprzez Powershell Core 7.x nie tylko na platformie Windows. Microsoft wycofał również moduł do zarządzania Skype for Business Online, niezbędne funkcjonalności dostępne są teraz w module Microsoft Teams, począwszy od wersji 2.0. Możemy również zainstalować z Powershell Gallery moduł do zarządzania Sharepoint.

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. Ostatnio również pojawił się artykuł na stronie z dokumentacją korzystania z powershella w Office 365 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 Sharepoint Online

#

Import-Module Microsoft.Online.Sharepoint.PowerShell

Connect-SPOService -url https://$tenant-admin.sharepoint.com -Credential $credential

#

# connect to Exchange Online

#

Connect-ExchangeOnline -UserPrincipalName admin@pepug365.onmicrosoft.com

#

# connect to to Microsoft Teams

#

Import-Module -Name MicrosoftTeams

Connect-MicrosoftTeams -Credential $credential

02 listopada 2018

Problemy przy migracji kontaktów Skype for Business

Jednym z bardziej uciążliwych zagadnień, na które można się natknąć w trakcie migracji użytkowników Skype for Business do usług online jest kwestia kontaktów. Starsze wersje systemów Lync i SfB 2015 w środowiskach z Exchange 2010 lub starszych przechowują kontakty użytkownika w bazie SQL, synchronizując je z lokalnym klientem. Dzięki temu użytkownik logując się do Skype for Business na innym komputerze lub urządzeniu mobilnym ma od razu dostępną listę swoich kontaktów. Serwery Exchange 2013 i nowsze korzystają z funkcjonalności Unified Contact Store (UCS), która przechowuje kontakty użytkownika SfB w jego skrzynce pocztowej, co ma swoje zalety, jednak w przypadku migracji do Office 365 bywa uciążliwe. Dlaczego? Niestety przeniesienie skrzynki użytkownika do Office 365, lub dodanie jej tam od nowa powoduje brak możliwości skopiowania kontaktów w trakcie migracji użytkownika - w rezultacie dostajemy błąd - migracja użytkownika jest nieudana. W takim przypadku powinniśmy przeprowadzić operację rollbacku - czyli wycofania się z funkcjonalności Unified Contact Store.
Jak to zrobić? Najlepiej zacząć od utworzenia polisy, która ma wyłączony UCS, przypisać taką polisę użytkownikowi, a następnie wykonać rollback.
New-CsUserServicesPolicy -Identity "NoUnifiedContactStore" -UcsAllowed $false
Grant-CsUserServicesPolicy -Identity "Konrad Sagala" -PolicyName NoUnifiedContactStore
Invoke-CsUcsRollback -Identity "Konrad Sagala"
W ten sposób, użytkownik po przełączeniu zarządzania kontaktami na sposób klasyczny nie dostanie ponownego żądania migracji kontaktów do UCS i jego kontakty będą prechowywane w SQL.
Niestety, w sytuacji gdy skrzynka jest już w Online, operacja taka nie jest możliwa w sposób standardowy. Narzędzia Microsoftowe nie potrafią zmigrować kontaktów ze skrzynki online do bazy lokalnego SfB. Musimy wykonać operację rollbacku w trybie wymuszonym:
Invoke-CsUcsRollback -Identity "Konrad Sagala" -force
Taka operacja jednak usunie nam wszystkie kontakty Skype for Business.
Jak się przed tym uchronić? Jeżeli korzystamy z UCS na lokalnym serwerze, to powinniśmy najpierw zmigrować do chmury użytkownika w SfB, a dopiero później jego skrzynkę. Jeżeli jednak skrzynka jest już w chmurze, to z pomocą przychodzi nam skrypt Michaela LaMontagne udostępniony w galerii Technet Invoke-SFBContacts, który pozwala w wygodny sposób eksportować i importować  kontakty https://gallery.technet.microsoft.com/lync/Invoke-SFBContacts-3b3ad2ef.
Warto dodać również, że opcja importu kontaktów ze Skype  for Business do Teams również nie obsługuje jeszcze UCS.

29 października 2018

Załączniki w mailach na iPhone

Dzisiaj natrafiłem na ciekawy problem, związany z wysyłaniem maili z iPhone. Nawet dodanie niewielkiego załącznika do maila powodowało przy próbie wysyłki okna z błędem:
"The message was rejected by the server because it is too large".
Nowa wersja IOS (12.0.1), Exchange 2016 CU11, czyli środowisko powinno być OK, ale błąd występował. Analogiczny błąd można było spotkać kilka lat temu na Exchange 2010 przy połączeniach z telefonów z IOS 7. Wtedy rozwiązaniem było dodanie do ustawień IIS w sekcji konfiguracyjnej system.webServer/serverRuntime wirtualnego katalogu Microsoft-Server-ActiveSync parametru uploadReadAheadSize:"20971520" (rysunek poniżej).

















Jak się okazało po restarcie IIS, tym razem ta zmiana również rozwiązała problem.

16 października 2018

Exchange 2016 CU11 wydany

Sytuacja w kwestii wydawania poprawek dla Exchange chwilowo bardzo się uprościła. Ponieważ Exchange 2010 i 2013 wyszły już z normalnego wsparcia grupy produktowej (przypomnę, że ostatnia paczka aktualizacji dla Exchange 2013 wyszła w czerwcu tego roku, o czym pisałem na blogu), więc  kwartalne aktualizacje zostały wydane tylko dla Exchange 2016. Z miesięcznym opóźnieniem, ponieważ zespół produktowy szykuje się intensywnie na premierę Exchange 2019 (możemy się go spodziewać już za chwileczkę), ale paczka CU11 została wydana.
Oczekiwaną przez wielu zmianą jest wsparcie dla .NetFramework 4.7.2, który w ferworze innych krytycznych aktualizacji wielu administratorów jak zwykle już i tak pewnie zainstalowało. Na szczęście z punktu widzenia Exchange różnice w stosunku do 4.7.1 były na tyle nieduże, że zespół produktowy po odpowiednich testach zdecydował się dodać wsparcie dla wersji 4.7.2 również dla Exchange 2013 CU21. Tak że tym, którym ręka omsknęła się przy aktualizacjach tym razem się upiekło.
.Net Framework 4.7.2 jest również obowiązkowym wymaganiem dla Exchange 2019.
Inna zmiana, która wprowadziła spore zamieszanie przy instalacji, to dodanie w testach weryfikujących konieczność zainstalowania runtime'u Visual C++ w wersji 2012, również w przypadku roli Edge oraz stacji z narzędziami administracyjnymi. Ponadto na serwerze z rolą skrzynkową należy zainstalować pakiet Visual C++ 2013 runtime. Poprzednie wersje instalowały niezbędne paczki automatycznie, w CU11 setup sprawdza, czy paczka już jest zainstalowana, w przeciwnym wypadku instalacja kończy się błędem. Na szczęście w Exchange 2019 te pakiety zostaną zainstalowane automatycznie przez setup.
Kolejny raz również wprowadzane są drobne zmiany w schemacie AD, co wymaga wcześniejszego przygotowania AD. Jednak administratorzy na chwilę odsapną ponieważ ze względu na opóźnienie i premierę Exchange 2019 nie będzie aktualizacji w grudniu. Kolejna paczka poprawek planowana jest dopiero w marcu - CU1 dla Exchange 2019 i CU12 dla Exchange 2016.

Exchange Server 2016 Cumulative Update 11 - Opis zmian w artykule KB4134118, Download, UM Lang Packs.

12 października 2018

Acrobat Reader z dostępem do zabezpieczonych plików dostępny w Preview

W poprzednim poście wspominałem o ogłoszonym na Ignite zmienionym dostępie do dokumentów PDF zabezpieczonych przez AIP. Dzisiaj ukazała się wersja Preview Acrobat Readera DC z dodatkową wtyczką Microsoft Information Protection, dzięki której możemy czytać zapezpieczone AIP dokumenty. Wcześniej było to dostępne w aplikacji AIP viewer, oraz wybranych czytnikach zewnętrznych (np. Foxit Viewer), jednak w ramach umowy między firmami Microsoft i Adobe, w końcu ten popularny czytnik również dostał taką możliwość. Jak można się o tym przekonać?
Po pierwsze musimy zmienić format zabezpieczanych dokumentów PDF. zgodnie ze standardem ISO, dzięki czemu zabezpieczony dokument nadal będzie używał rozszerzenia pdf, zamiast ppdf. W tym celu logujemy się w konsoli administracyjnej AIP i wybieramy opcję Advanced w ustawieniach używanej przez nas polisy (jeżeli nie dodawaliśmy więcej polis, to robimy to w domyślnej polisie Global). W tym celu wybieramy wielokropek przy nazwie polisy (rysunek poniżej) i klikamy w opcję Advanced Settings:












Następnie dodajemy ustawienie jak na poniższym rysunku EnablePDFv2Protection z wartością TRUE. Lista ustawień zaawansowanych polis AIP dostępna jest w przewodniku administracyjnym - https://docs.microsoft.com/en-us/azure/information-protection/rms-client/client-admin-guide-customizations
















Mając odpowiednie ustawienie konfiguracyjne możemy pobrać aplikację i plugin z udostępnionej paczki. Po instalacji otwarcie zabezpieczonego pliku pdf jest możliwe.

30 września 2018

Microsoft Ignite 2018 - Information Protection

Klasyfikacja i zabezpieczanie danych w ramach usług Office 365, to jedna z częściej poruszanych kwestii w tym roku, chociażby w kontekście wprowadzenia GDPR. Usługi Information Protection systematycznie się rozwijają, dlatego też nie dziwi duża ilość zmian i nowości ogłoszona przy okazji konferencji Microsoft Ignite 2018:
  • Zcentralizowane zarządzanie etykietami i  ustawieniami ochrony w Security & Compliance Center uzyskało status General Availability,
  • Microsoft Information Protection SDK uzyskał status General Availability,
  • Pojawiła się wersja Preview etykietowania w Word, PowerPoint, Excel  oraz Outlook dla Mac (w ramach Office Insider Program),
  • Pojawiła się wersja Preview etykietowania w Word i PowerPoint dla iOS i Android,
  • Ogłoszono udostępnienie w październikowej aktualizacji systemu Windows 10 ochrony urządzeń końcowych, na bazie etykiet w ramach Windows Information Protection. Oznacza to, że po wykryciu, że na komputerze w naszym środowisku jest dokument opatrzony etykietą, aplikowana jest odpowiednia polisa WIP,
  • Ogłoszono udostępnienie w październiku wersji preview przeglądania zabezpieczonych i opatrzonych etykietami dokumentów w formacie PDF w Adobe Acrobat Reader dla Windows,
  • Pojawiła się wersja Preview analityki dla Information Protection,
  • Dodane zostały nowe funkcjonalności dla Office 365 Message Encryption.

26 września 2018

Microsoft Ignite 2018 - Teams

Co prawda post powinien odnosić się do drugiego dnia konferencji, ale tak naprawdę swój dzisiejszy dzień poświęciłem po połowie pomocy w obszarze labów a w drugiej połowie Microsoft Teams. Dlatego parę słów rozwinięcia na ten temat. W poprzednim poście wspomniałem, o ogłoszeniu wiele nowości w obszarze Teams, jednak bez wdawania się w szczegóły. A jest ich sporo. Po pierwsze kilka funkcjonalności, dostępnych jako preview uzyskało status GA. Przede wszystkim trzeba tu wymienić meeting recording, który pozwala zapisywać przebieg spotkania w usłudze Stream (może jeszcze nie przez wszystkich znany komponent Office 365) i automatycznie udostępnia nagranie uczestnikom spotkania. Inna ciekawa funkcjonalność związania ze spotkaniami wideo jest tzw. bluring czyli rozmywanie tła. Jest to bardzo wygodne zwłaszcza gdy uczestniczymy w spotkaniu będąc w zaciszu domowym lub poza biurem, w miejscu gdzie różne elementy tła zakłócają dyskusję (np. przechodzący ludzie).
Wspomniałem również o uruchomieniu przez Polycom usługi Real Connect Service, która pozwala podłączać inne terminale wideo (np. Cico) do Microsoft Teams. W ramach programu Cloud Video Interop analogoczne usługi mają udostępnić w październiku Pexip i BlueJeans, dzięki czemu klienci będą mieli więcej możliwości wyboru. 
Część administratorów zauważyła na pewno, że od kilku dni pojawiła się w panelu administracyjnym Teams opcja związania z pracownikami zmianowymi - to kolejna zmiana ogłoszona przez Microsoft. Za rok zostanie wygaszona aplikacja StaffHub, a jej funkcjonalność w najbliższych miesiącach będzie przejmowana przez Teams.
Dużo dyskusji wywołała również ogłoszona kilka dni przez konferencją decyzja o zablokowaniu od pierwszego października usługi Skype for Business online w nowych tenantach poniżej 500 licencji. Dla wielu firm będzie to duże zamieszanie, zwłaszcza że nie wszystkie opcje administracyjne i automatyzujące zarządzanie są już dopracowane. W tym obszarze jednak również ogłoszono kolejne usprawnienia - możliwość tworzenia zakładek poprzez API, wprowadzenie do portalu administracyjnego strony z listą zespołów oraz szereg innych usprawnień (np. szablony zespołów).
Duże zmiany dotyczą również obszaru urządzeń, współpracujących z Microsoft Teams. Dla wielu firm, które zainwestowały w telefony biurkowe czy konferencyjne dla Skype for Business, jest to na pewno istotny problem. Dostawcy urządzeń pokazali nowe modele, lub nowe wersje oprogramowania, przygotowane specjalnie pod kątem Teams, jednak niestety trzeba powiedzieć, że część z nich (np. modele wyposażone w monochromatyczne wyświetlacze lub posiadające wbudowany system linux) nie będzie zgodna.






















Więcej szczegółów na temat modeli urządzeń zgodnych z Teams niebawem zostanie opublikowane na blogu APN Promise.
Osobna kategoria urządzeń to sprzęt do pokojów konferencyjnych - tutaj też widać sporo nowości.





















Sześć takich urządzeń miałem przyjemność testować i prezentować uczestnikom konferencji na stoisku produktowym Microsoft Teams. Naprawdę bardzo interesujące zestawy.







25 września 2018

Microsoft Ignite 2018 - pierwszy dzień konferencji

Dopiero co kilka tygodni temu przedstawiałem nowe funkcjonalności w udostępnione w publicznych betach Exchange Server 2019 i Skype for Business 2019, a teraz mam przyjemność uczestniczyć w największej konferencji, jaką Microsoft corocznie organizuje dla swoich klientów - Microsoft Ignite. Przyjechałem do Orlando jako specjalista, wspierający Microsoft w prowadzeniu laboratoriów dla uczestników, pojawiam się również na stanowisku Microosft Teams.
Microsoft Ignite, poza olbrzymią ilością uczestników i parterów, wystawiających swoje produkty, współpracujące i uzupełniające funkcjonalności oprogramowania Microsoft, to czas kiedy Microsoft ogłasza premiery nowych produktów, funkcjonalności i projektów.
Na sesji otwierającej konferencję prezes Microsoftu Satya Nadella pokazywał przykłady usprawnienia pracy wielu firm, dzięki zastosowaniu chmury publicznej Microsoftu, zarówno Azure jak i Office 365, ogłosił także, wspólnie z prezesami firm Adobe Shantanu Narayenem i SAP Billem McDermottemnową projekt - Open Data Initiative.




Open Data Initiative opiera się na trzech założeniach - każda firma w pełni zarządza swoimi danymi, może uruchomić procesy wykorzystujące sztuczną inteligencję, w celu usprawnienia procesów i środowisko to jest dostępne dla zewnętrznych rozwiązań, w celu rozszerzenia funkcjonalności w zależności od indywidualnych potrzeb.
Po keynote odbyły się sesje poszczególnych grup produktowych, na których przedstawiono nadchdzące zmiany.
Z mojego punktu widzenia, bardzo ważne było ogłoszenie premiery Office 2019 (status GA dla klientów umów wolumenowych), Sharepoint 2019, zapowiedź premiery Windows Server 2019 i Exchange Server 2019 w najbliższych tygodniach (choć nie było to dla mnie zaskakujące) - można już czytać dokumentację i przygotowywać się do wdrożenia/migracji poczty na nową platformę (Tak, Exchange 2019 jest wspierany wyłącznie na platformie Windows Server 2019). W obszarze Microsoft Teams również zostało ogłoszonych wiele nowości, w tym nowe urządzenia współpracujące z Teams. Polycom pokazał również możłiwość integracji już posiadanych terminali wideo z usługą Teams w bardzo prosty sposób przez usługę RealConnect for Teams. Bardzo dużo nowości przedstawił również zespół Azure, w tym nowe i usprawnione funkcjonalności w obszarze Security, które będą istotne również dla użytkowników Office 365. Ogłoszono również nadchodzące zmiany w programach certyfikacyjnych i egzaminach Microosft.
Kolejne dni przyniosą kolejne informacje o nowościach i zmianach, które postaram się w kolejnych wpisach nieco przybliżyć.

22 sierpnia 2018

Poprawki bezpieczeństwa dla Exchange

Microsoft przygotował poprawki bezpieczeństwa dla dwóch poważnych zagrożeń, opisanych w biuletynach Common Vulnerabilities and Exposures (CVE):
  • CVE-2018-8302 Microsoft Exchange Memory Corruption Vulnerability
  • CVE-2018-8374 Microsoft Exchange Server Tampering Vulnerability (Exchange 2016 only)
W celu pozbycia się podatności na te zagrożenia należy zainstalować odpowieni pakiet poprawek (w zależności od wersji systemu):
NAleży zauważyć, że poprawka bezpieczeństwa dla Exchange 2010 SP3 jest przygotowana jako kolejny Rollup Update i podobnie jak w przypadku Cumulative Update'ów dla nowszych wersji Exchange, wymaga dodatkowo instalacji pakietu Visual C++ runtime 2013 (download).

KB4340731 nadpisuje poprzedni security update KB4092041 dla Exchange 2016 i Exchange 2013. Warto również zauważyć, że pakiety poprawek są przygotwane pod kątem konkretnych pakietów Cumulative Update i nie zainstalujemy ich np, na Exchange 2013 CU18 lub Exchange 2016 CU7. Należy najpierw zaktualizować system do najnowszej wersji CU.


17 sierpnia 2018

Lipcowa paczka aktualizacji Skype for Business - CU7

Dobra wiadomość czekała na mnie po urlopie - Microsoft dwa tygodnie temu w końcu udostępnił publicznie paczkę aktualizacji Cummulative Update 7 dla serwera Skype for  Business. Wprowadza ona rozwiązanie dla wielu problemów zgłoszonych w ostatnich miesiącach, a co ważniejsze wprowadza długo oczekiwane wsparcie dla serwera BackEnd w wersji SQL 2016 SP1. Jest to niezwykle istotne dla firm rozważających wdrożenie Skype for Business 2019, ponieważ dla roli BackEnd nie wspiera on starszych wersji SQL niż 2016 (oczywiście jeżeli firma w ramach Software Assurance aktualizuje platformę bazodanową, jest to również ważna informacja). 
Instalacja lipcowych poprawek wymaga wersji .Net Framework 4.5.2 (podobnie jak wersja marcowa), co może być istotne dla tych, którzy w tym roku nie aktualizowali systemu.
Więcej informacji na temat usuwanych przez pakiet błędów można znaleźć w artykule KB 3061064. Instalator poprawek znajduje się tutaj - http://www.microsoft.com/en-us/download/details.aspx?id=47690.
Microsoft donosi, że nie należy instalować tej aktualizacji jeżeli serwery Skype for Business korzystają z SQL 2008R2 (który zresztą jest już nieco leciwy), ponieważ pojawiają się problemy w dostępie do bazy rtcxds.
Przeszło rok temu publikowałem posta z informacjami o oznaczeniach poszczególnych aktualizacji. Znajdująca się w nim tabela z listą poprawek została zaktualizowana o pakiet CU7.

17 lipca 2018

Zarządzanie telefonami z Androidem po nowemu

Zarządzanie smartfonami w firmie to złożony problem. Zwłaszcza dla niedużej firmy w takim kraju jak Polska. Większość takich firm nie ma budżetu na zakup dużych partii markowych telefonów "z górnej półki", które mają wbudowane komponenty pozwalające na nadzorowany zarządzanie i scentralizowane wdrożenie jak iPhone czy Samsung.
Całkiem niedawno Google przygotował dla nowej wersji Androida - 8.0 (Oreo) nową funkcjonalność - Zero-Touch Deployment. Wygląda to bardzo interesująco, dla telefonów Pixel działa nawet z Androidem w wersji 7, jednak znowu diabeł tkwi w szczegółach. Żeby móc skorzystać z tej funkcjonalności, po pierwsze należy kupić odpowiedni model telefonu - tu na szczęście mamy całkiem spory wybór producentów i modeli - https://www.android.com/enterprise/device-collection/#Zero-touch.  Począwszy od wymienionych już Pixeli, na liście są również LGE, Huawei, Motorola, Nokia, Sharp i Sony. Co ważniejsze, telefon musi być dostarczony poprzez jednego z partnerów programu Zero-touch, a nie kupiony w zwykłym sklepie. Przy zakupie pierwszego telefonu, autoryzowany partner (operator lub sprzedawca z powyższej listy) rejestruje konto zarządzające dla naszej firmy, które służy administratorowi do konfigurowania polis i dodawania kolejnych urządzeń na portalu wdrożeniowym Zero-Touch. Następnie poprzez użycie naszego systemu zarządzania urządzeniami mobilnymi (lista producentów systemów EMM, obsługujących Zero-Touch, znajduje się na stronie partnerów programu Zero-Touch). niedawno również zespół produktowy Microsoft Intune ogłosił, że wspiera zero-touch deployment, więc firmy posiadające EM+S lub Microsoft 365 również będą mogły skorzystać z tej metody uproszczonego wdrożenia.
Warto pamiętać, że w przypadku ręcznego zainstalowania na telefonie portalu Intune, które powinno na większości urządzeń z Androidem w wersjach 7 lub 8 utworzyć profil firmowy, użytkownik może sobie taki profil usunąć, blokując możliwość centralnego zarządzania telefonem. Zero-touch deployment, podobnie jak np. Device Enrollment Program firmy Apple czy włączone funkcjonalności Samsung Knox uniemożliwiają standardowemu użytkownikowi zdjęcie funkcji zarządzających z firmowego telefonu.

16 lipca 2018

Kolejna wersja .Net Framework - kolejny problem

Zespół produktowy .Net Framework udostępnił jako rekomendowaną poprawkę .Net Framework 4.7.2, jednak nie jest ona wspierana z Exchange Server, nawet dla najnowszych, czerwcowych aktualizacji - zawsze warto sprawdzić tabelę support matrix. Już na forach webowych pojawiają się informacje o problemach związanych z instalacją tej wersji na serwerach Exchange, dlatego też radzę zablokować instalację tej wersji na serwerach Exchange, poprzez dodanie odpowiedniego klucza do rejestru. Można ręcznie dodać klucz, albo zaimportować poniższy plik:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\WU]
"BlockNetFramework472"=dword:00000001


11 lipca 2018

Nowa aktualizacja dla Lync Server 2013

Zdecydowana większość użytkowników systemu Lync Server 2013 zmigrowała się do Skype for Business 2015, jednak tych, którzy jeszcze używają wersji 2013 ucieszy pakiet poprawek CU10, który usuwa sporo błędów (szczegółowa lista poprawek i sposób instalacji znajdują się w artykule pomocy technicznej), a co równie ważne, zapewnia wsparcie dla TLS 1.2, co zostało wspomniane w oddzielnym artykule KB. zgodnie z polityką wygaszania starszych wersji protokołu TLS 1.0 i 1.1. Zostało to opisane w serii artykułów na blogu zespołu produktowego - Disabling TLS 1.0 and 1.1 in Skype for Business Server 2015 On-Premises:
Po instalacji lipcowego pakietu CU10, analogicznie można postąpić z serwerami Lync 2013. JEst to szczególnie istotne w środowiskach hybrydowych, ze względu na wyłączenie starszych wersji TLS w Office 365 i pozostawienie tylko TLS 1.2 już za kilka miesięcy.

Paczkę CU10 można pobrać z poniższego linku:

19 czerwca 2018

Czerwcowe aktualizacje do Exchange

Dzisiaj Microsoft opublikował aktualizacje dla serwerów Exchange. Ponieważ Exchange 2013 od kwietnia wszedł w okres rozszerzonego wsparcia, o czym pisałem kilka miesięcy temu, CU21 jest ostatnią regularną aktualizacją dla tej wersji systemu, przynajmniej dopóki Microsoft nie zmieni zdania. Rollup Update 22 dla Exchange 2010 rozwiązuje problem współpracy z Exchange 2016 oraz zapewnia zgodność z kontrolerami domeny Windows 2016.
Nowe poprawki dodają również wymagania dla serwerów Exchange 2013 i 2016 - do instalacji niezbędny jest .Net Framework w wersji 4.7.1. Dodatkowo wymagany jest pakiet VC++ 2013 , który zapewnia poprawną pracę komponentów dodatkowych, takich jak WebReady Document Viewing.
Poniżej lista odnośników, skąd można pobrać artykuły KB dla odpowiednich poprawek oraz wersje instalacyjne pakietów:

01 czerwca 2018

IPS w Kemp Load Master

Niedawno miałem przyjemność prowadzić webinarium na temat użycia urządzeń Kemp LoadMaster do ochrony do dostępu do poczty w zastępstwie Forefront TMG 2010. Jako uzupełnienie prezentacji chciałem napisać kilka słów o prostej ale potrzebnej funkcjonalności, jaką jest wykrywanie ataków (IPS). Po zmianach w licencjonowaniu, jakie zaszły w kwietniu zeszłego roku, zarówno funkcje bezpiecznej publikacji (Edge Security Pack - ECP) jak i IPS są dostępne w subskrypcji Enterprise. O ile jednak funkcjonalność ECP jest często opisywana na różnych blogach i prezentacjach to IPS jest przeważnie tylko wspominany hasłowo - jest i koniec. Ale czy to faktycznie takie proste? Jeżeli na naszym LoadMasterze, który publikuje witryny w Internecie zajrzymy do logu systemowego, to możemy zauważyć np. zapisy dotyczące atak XSS, jak widać na poniższym rysunku.



Oznacza to, że IPS działa i reaguje na ataki poprawnie. Ale jak go skonfigurować i czy jest to w ogóle możliwe?
Jak najbardziej jest, chociaż w ograniczonym zakresie. Możemy ręcznie zmieniać sposób reagowania - począwszy od samego logowania ataków, aż do odrzucania wszystkich zagrożeń. Wszystkie cztery tryby pracy są nieco dokładniej opisane w dokumentacji, jednak same nazwy jak dla mnie są wystarczająco intuicyjne.





















Ponadto możemy ręcznie aktualizować reguły, używane do wykrywania ataków, pobierając nowe wersje pakietu z regułami wykrywania ze strony SNORT. Load Master obsługuje paczki reguł w wersji zgodnej ze specyfikacją SNORT 2.9. Są one dostępne w pakiecie community-rules.tar.gz na stronie SNORT. Możemy pakiet pobrać i załadować (nie wymaga restartu i automatycznie jest replikowana między urządzeniami w trybie HA). Lepiej jednak wyedytować wcześniej listę reguł i aktywować wybrane z nich, zgodnie z potrzebami organizacji. W tym celu należy z pobranego archiwum community-rules.tar.gz otworzyć odpowiedni plik. W archiwum znajdują się pliki:
  • community.rules
  • AUTHORS
  • LICENSE
  • sid-msg.map
  • VRT-License.txt
W pliku comunity.rules znajdują się reguły, jak pokazuje kolejny rysunek.









Reguły blokujemy umieszczając znak # na początku wiersza, aktywujemy kasując znak #. Po modyfikacji listy reguł zapisujemy zmodyfikowany plik w archiwum i pobieramy do Load Mastera.

















Urządzenie jest gotowe do ochrony zgodnie ze zmodyfikowaną przez nas listą reguł.

23 maja 2018

Zarządzanie chmurą z Powershell - przygotowanie

UPDATED: dodatkowe obrazki z obejściem problemu z repozytorium

Niedawno przygotowywałem krótką prezentację o zarządzaniu Office 365 z poziomu Powerhell. Na moim komputerze jest to proste - odpowiednie moduły instalowałem przez kolejne miesiące, jednak na świeżych komputerach z Windows 10 zauważyłem wiele drobnych problemów.
Dlatego też uznałem, że warto jest zrobić krótkie podsumowanie.
Większość modułów, która jest używana do zarządzania środowiskiem Office 365 lub Azure dostępna jest i aktualizowana w PowerShell Gallery (www.powershellgallery.com). Kiedy jednak chcemy je zainstalować w systemie, pojawiają się błędy. W czym leży problem?
Do instalacji modułów powershell z galerii używany jest moduł PowerShellGet, który w Windows 10 dostarczany jest domyślnie z systemem w ramach PowerShell 5. Niestety dostarczany jest on w wersji 1.0.0.1, jak widać na poniższym obrazku po wykonaniu komendy
get-module PowerShellGet -ListAvailable








Dodatkowo pomocniczy pakiet NuGet również nie jest najnowszy i próba instalacji modułu zwraca komunikat o potrzebie aktualizacji dostawcy. Co powinniśmy zatem zrobić? Wymusić aktualizację obu pakietów, jak pokazują kolejne obrazki. Aktualna wersja pakietu NuGet w momecie pisania artykułu to 2.8.5.208:





W niektórych wypadkach dobrze jest po aktualizacji NuGet zamknąć powłokę, bo nie zawsze odświeżą się zmienne środowiskowe i kolejna próba instalacji znowu stwierdzi, że wersja NuGet jest zbyt stara.
Oczywiście wszystkie instalacje wykonujemy w kontekście administratora.
Teraz czas na aktualizację PoweShellGet. Ponieważ był instalowany z systemem, nie możemy użyć cmdleta update-module, musimy wymusić instalację:


Sprawdzamy rezultat:








Jak widać, jest wersja oryginalna i wersja najnowsza, którą możemy już normalnie aktualizować i domyślnie używać.
Czasami jednak możemy natknąć się na taki problem, sygnalizujący brak dostępu do repozytorium:






O co chodzi? Sprawdzam dostępne dla maszyny repozytoria i faktycznie widać jego brak:



Po zarejestrowaniu galerii pojawia się ona na liście repozytoriów, jak pokazuje kolejny obrazek (co ciekawe, nie działa komenda standardowa, z podaniem nazwy i urla PSGallery, trzeba użyć komendy z opcją domyślną -  Register-PSRepository -Default.






Mając zaktualizowany moduł PoweShellGet możemy również użyć nowych cmdletów w nim zawartych (np. get-installedmodule). Jednak przy instalacji lub aktualizacji modułów otrzymamy komunikat:






Możemy się go pozbyć w prosty sposób, wykonując komendę jak na kolejnym obrazku:



Teraz już bez problemów możemy przystąpić do zarządzania środowiskiem chmurowym, instalując potrzebne moduły, takie jak MSOnline, AzureAD, MicrosoftTeams. Trochę więcej na ten temat w kolejnym poście z tego cyklu.

09 maja 2018

Adresy i nazwy niezbędne dla pracy z Office 365

Jednym z częściej pojawiających się problemów przy wdrażaniu Office 365, zwłaszcza przy modelu hybrydowym Exchange i Skype dla Firm, jest odpowiednie skonfigurowanie reguł i wykluczeń na urządzeniach sieciowych, odpowiedzialnych za zabezpieczanie dostępu i publikację usług. Wiąże się to z rozległością usługi Office 365 - bardzo duża liczba adresów IP oraz nazw domenowych hostów, dla kórych administrator sieci powinien ruch przepuścić, tak żeby usługi działały poprawnie (w przypadku hybrydy Exchange jest to szczególnie ważne w odniesieniu do usług SMTP i autodiscover).
Żeby taką procedurę ułatwić, Microsoft opublikował i stale aktualizuje na stronach pomocy technicznej odpowiednią specyfikację - Office 365 URLs and IP address ranges (łatwiej zapamiętać skrót - http://aka.ms/o365ip). Lista ta jest również dostępna w postaci arkusza csv oraz pliku xml, Mozna również znaleźć w internecie narzędzia społecznościowe, które konwertują takie pliki do formatu łatwo przyswajanego przez firewalle, jak np. Azure Range.
Jednak dla uproszczenia aktualizacji konfiguracji już niebawem Microsoft udostępni usługę w formie web service'u, która będzie pozwalała na pobieranie listy w sposób automatyczny z użyciem REST w formatach JSON i csv. Wtedy dotychczasowy sposób publikacji informacji zostanie zatrzymany.
Żeby zacząć testować usługę i przeczytać więcej informacji, w jaki sposób pobierać dane, dobrze jest zajrzeć na stronę Zarządzanie punktami końcowymi usługi Office 365 - zakładka nr 4, gdzie podane są nawet przykłady użycia - np. pobranie nazw i adresów IP punktów końcowych dla usługi Exchange Online.

14 kwietnia 2018

Exchange 2013 przechodzi na emeryturę

Właśnie zakończył się podstawowy okres wsparcia dla Exchange 2013, co oznacza, że co prawda jeszcze przez kilka lat będzie miał on wsparcie rozszerzone (tzw extended support), ale będą dla tej platformy wydawane wyłącznie poprawki bezpieczeństwa. Zespół produktowy ogłosił, że w czerwcu 2018 ukaże się ostatni pakiet poprawek - CU21 dla Exchange 2013, więc trzeba brać to pod uwagę planując nowe wdrożenia (część firm, która kilka lat temu kupiła Exchange z Software Assurance ma licencje na tą wersję produktu). Co jakiś czas mój zespół realizuje migracje tylko do wersji 2013, jednak teraz należy się dobrze zastanowić, czy planowanie nowego wdrożenia na schodzącej platformie ma sens, zwłaszcza że pod koniec roku będzie dostępna wersja Exchange 2019 (publiczna beta powinna się pojawić jeszcze w tym kwartale). Podobnie ma się rzecz z pozostałymi produktami linii Office - Lync Serverem 2013 i Sharepoint Server 2010 - im też 10 kwietnia skończył się okres podstawowego wsparcia. W przypadku Sharepointa jest to o tyle bolesne, że bezpłatna wersja Foundation nie jest dostępna w linii 2016.
Exchange 2010 też dobiega kresu - rozszerzone wsparcie kończy się w styczniu 2020 roku, czyli już za nieco ponad półtora roku. Dobrze jest już zaplanować (jeżeli jeszcze tego nie zrobiliśmy) aktualizację do Exchange 2016 lub do Exchange Online, w zależności od naszych preferencji.

06 kwietnia 2018

Kolejne aktualizacje w Microsoft Teams

Microsoft właśnie ogłosił długą listę aktualizacji, które wchodzą w kwietniu do środowiska Teams. Jak dla mnie to na pewno duże znaczenie ma integracja/import kontaktów ze Skype for Business, bardzo obiecująco wygląda również opis nowej konsoli administracyjnej dla Teams i SFb Online. Przydatna będzie również funkcja wyświetlania statusów nieobecności, podobnie jak w przypadku klienta Skype for Business pobierana ze skrzynki Exchange. Nie mogę doczekać się jeszcze integracji z telefonią i nagrywania spotkań w chmurze, ale te funkcjonalności również mają zostać uruchomione jeszcze w tym kwartale. Wtedy uznam, że Microsoft Teams jest w pełni funkcjonalną platformą komunikacyjną i spokojnie można przestać używać Skype for Business.

30 marca 2018

Microsoft Tech Summit Warsaw


Tech Summit Warsaw


















Już za kilka tygodni w Warszawie szykuje się naprawdę duża konferencja dla IT Prosów i deweloperów związanych z chmurą. Po eventach we Frankfurcie, Amsterdamie, Paryżu, w końcu tym razem Tech Summit trafi do Warszawy - 25-26 kwietnia w centrum Expo XXI ponad 80 sesji dotyczących Office 365 i Azure, do tego laboratoria, keynotes prowadzone przez takie osoby jak Craig Dewar - Senior Director, Windows 10 oraz Jeffrey Snover - Technical Fellow, Azure Infrastructure and Management Group.
No i oczywiście możliwość spotkania z MVP - z Polski i nie tylko. Ja oczywiście się wybieram i zapraszam wszystkich serdecznie.
A wieczorem przed konferencją - specjalne spotkanie społecznościowe - PEPUG i PPoSH zapraszają na spotkanie dotyczące Powershell, na którym gościem specjalnym będzie własnie Jeffrey Snover.


21 marca 2018

Marcowe aktualizacje dla serwerów Exchange

Wczoraj Microsoft oficjalnie udostępnił paczki aktualizacji dla serwerów Exchange - po raz kolejny, wychodzący z użytku Exchange 2010 nie został w nich uwzględniony. Aktualizacje - odpowiednio CU9 dla Exchange 2016 i CU20 dla Exchange 2013 nie wprowadzają rewolucyjnych zmian, jednak w końcu formalnie zapewnia wsparcie dla TLS 1.2, o którego stopniowym wprowadzaniu pisałem ostatnio. Warto również pamiętać, że są to ostatnie  paczki, które nie wymagają zainstalowania .NetFramework 4.7.1 (od następnego kwartału będzie on obowiązkowym komponentem). Nadal wielu administratorów na serwerach ma ustawione instalowanie rekomendowanych poprawek, co powoduje instalację nowej wersji .NetFramework zanim zespół produktowy Exchange zdąży sprawdzić jego zgodność, ale mam nadzieję, że w najbliższym kwartale nie będzie w tym temacie dużo problemów. Warto przypomnieć również, że w przypadku środowisk hybrydowych, serwer hybrydowy należy zaktualizować do wersji nie starszej niż (-2), czyli jeżeli nie chcemy mieć problemów, dobrze jest sprawdzić, czy nasz serwer hybrydowy Exchange ma wersję co najmniej Exchange 2016 CU8 lub CU7 oraz odpowiednio Exchange 2013 CU19 lub CU18.
Poniżej linki do informacji o poprawki oraz paczek instalacyjnych poprawek: