Skip to Content

IT nieuczesane.

Group Based Licensing dla o365

GBL

możliwość zarządzania licencjami przez grupy AD to nieoceniona pomoc w każdym większym środowisq. co prawda spędziłem kilka ładnych godzin nad fajnym skryptem, którym można masowo zarządzać licencjami wraz z poszczególnymi planami serwisowymi, jednak możliwość ułatwienia administracji jest bezcenna. trzeba zatem było z łezką w oq wrzucić skrypt do projektów wymarłych i zająć się okiełznaniem grup.

ogólnie, GBL pozwala na przypisanie licencji (niemal) dowolnej grupie AAD, dzięki czemu zarządzanie licencjami sprowadza się do prostych operacji zmiany członkostwa. pomimo, że funkcjonalność jest jeszcze w public preview, uważam, że warto się mocno zainteresować, bo operacje licencyjne przeważnie są realizowane albo przez 1szą linię, gdzie korzystanie ze skryptów nie koniecznie jest mile widziane, albo przez automatyczne systemy zarządzania tożsamością, jako część procesu nowego użytkownika.

ponieważ jest to świetnie udokumentowane, nie będę się rozpisywał o podstawach, ale przedstawić ciekawe przypadki i problemy.

[info: art opisuje środowisko hybrydowe]

gdzie jest haczyk?

pierwszy i podstawowy haczyk, pojawia się już na poziomie projektowania grup. rzadko kiedy zdarza się, żeby wykorzystywany był pojedynczy typ licencji, czy nawet dwa-trzy. zazwyczaj jest wiele różnych wyjątków, wynikających z różnorodności zapotrzebowania – niektórzy będą mieli E3, inni E5, jeszcze inni będą potrzebować pojedynczych planów (np. PowerBI, AudioConferencing) jako uzupełnienie niższej licencji. są też dodatkowe produkty takie jak Visio czy Project, które też raczej wszystkim użytkownikom się nie qpuje.

okazuje się, że ilość wyjątków może być całkiem spora, warto zastanowić się więc nad modelem hybrydowym – np. używać grup do zaspokojenia przyjętych standardów, co zrealizuje 9o%, i to tych, przy których normalnie trzeba użyć jakiegoś skryptu. wyjątki natomiast obsłużyć ręcznie ‚wykliqjąc’. jednolite rozwiązania są dużo łatwiejsze w zarządzaniu, i ogólnie jestem przeciwnikiem mieszania metod zarządzania tym samym fragmentem jednak w tym przypadq:

  • funkcja jest nadal w preview. public, bo public, i testowana jest już ok ok. 2 lat, jednak nie ma gwarancji co się zmieni w finalnej wersji. zakładam że nic, w porywach do niewiele, ale trzeba mieć z tyłu głowy ew. poprawki co całego projektu, lepiej więc go póki co nie komplikować
  • braqje na razie dobrych artyqłów z praktyki [co staram się załatać (: ], który pokazywały by realne bolączki i ryzyka.

mechanizm trzeba najpierw dobrze poznać i zrozumieć niuanse i konflikty, zanim wdroży się go globalnie. a więc pomimo, że docelowo najlepiej mieć czyste zarządzanie GBL, sugeruję zacząć od podejścia ewolucyjnego. dać sobie trochę czasu na nauczenie się zachowania mechanizmu i rozwiązywania problemów… o których może uda mi się kiedyś napisać.

double-trouble

z technicznego punktu widzenia, największym problemem są plany powiązane. niektóre plany są od siebie zależne i nie uda się przypisać jednego-bez-drugiego. przykłady:

  • plan ‚Office Online’ wymaga planu ‚SharePoint’
  • plan ‚AudioConferencing’ wymaga planu ‚Skype/Teams’

zależnie od implementacji, albo osoby nie będą miały oczekiwanej licencji, bo nie spełniają kryterium, albo w ogóle nie uda się utworzyć grupy licencyjnej. przykładowy scenariusz:

  • osoby posiadają licencje o365 E3 ale potrzebują tworzyć spotkania z opcją call-in. czyli trzeb im dodać plan ‚Audio Conferencing’.

nie da się utworzyć grupy licencyjnej zawierającej wyłącznie ten plan, ponieważ nie ma gwarancji spełnienia warunq posiadania Skype/Teams. obejściem jest dodanie do grupy zarówno planu AC oraz Skype z licencji E3, trzeba się oczywiście upewnić, że nie więcej scenariuszy w firmie – np. trzeba będzie założyć grupę AC wraz z Skype E1 – co bardzo skompliqje zarządzanie.

trouble-double

…czyli to samo ale odwrotnie. usuwamy osoby z grupy licencyjnej, ba! usuwany całą grupę licencyjną. grupy w AD nie ma, wchodzimy do AAD… i grupa nadal jest, zawiera wszystkich członków, licencje nadal są przypisane, nie ma błędów synchronizacji… to czemu u licha grupa została??

otóż może tak się zdarzyć, że usuwamy grupę zawierająca licencję ‚nadrzędną’ a gdzieś, wedle algorytmu, może zostać podrzędna. czyli np. usuwamy licencje zawierająca SharePoint, a są  grupie osoby które maja Office Online. AAD stwierdza, że to doprowadzi do konfliktu, więc bloqje całą operację.

jeśli usuwamy grupę licencyjna – zalecam zacząć od usunięcia wszystkich członków, synchronizacji, a potem dopiero usunięcie grupy.

konflikty licencyjne

przy złożonej strukturze grup mogą wystąpić konflikty licencji. taka sytuacja zdarza się w momencie, kiedy wedle grup użytkownik będzie miał przypisane plany z różnych grup. nie zapisałem niestety przykładowych przypadqw, ale miałem okazję oglądać sytuację, w której licencja nie została przypisana, ponieważ pomieszane były poziomy planów z różnych licencji – czyli jakiś plan z licencji E3 kolidować z innym planem, z E1.

podczas projektowania grup GBL lepiej przypisywać możliwie pełne licencje – zbytnie kombinowanie na poziomie planów szybko doprowadzi do scenariuszy konfliktowych.

podsumowanie

mechanizm GBL oceniam rewelacyjnie. AAD świetnie pokazuje komunikaty błędów, pomaga w debugowaniu i ogólnie całość jest bardzo fajnie przemyślana. nie jest jednak pozbawiony limitów, i nie zawsze będzie się nadawał. należy zapoznać się z niuansami działania, przemyśleć scenariusze użycia licencji w firmie i sprawdzić czy nie ma przypadqw na tyle skomplikowanych, że nie opłaca się go używać. stworzenie zbyt dużej ilości grup, dających możliwości granularnego zarządzania planami może albo posqtkować niezłym misz-maszem i wcale nie ułatwić życia, albo w specyficznych przypadkach być niemożliwe.

podsumowując ‚KEEP IT SIMPLE’. znalezienie środka może być wyzwaniem jeśli scenariuszy licencyjnych jest wiele.

eN.

aplikacje o365 w licencji Business Premium

tak się jakoś składa, ze względu na klientów z którymi współpracuję, że nabywane są licencje Enterprise – czy to E3 czy E5. do tej pory żyłem w przekonaniu, że to najbardziej wypasione licencje, więc jest w nich już wszystko.

na wczorajszym WGUiSW zobaczyłem podczas prezentacji Marka o Office365 aplikację ‚bookings’, która mnie mocno zaskoczyła, ponieważ sądziłem, że znam wszystkie. po krótkim śledztwie okazuje się, że licencja Business Premium zawiera pakiet aplikacji dla SMB, w którym są:

Niedostępność aplikacji w planach Enterprise Microsoft tłumaczy faktem, iż ich architektura nie jest w tej chwili wystarczająco skalowalna. niestety na roadmapie nie widzę, aby apki miały się pojawić się w tych planach.

po co w Enterprise aplikacje SMB? dla zaspokojenia małych, lokalnych projektów. często niezależne grupy projektowe potrzebują tanich narzędzi. np. firma korzysta z SalesForce jako CRM ale pewien dział potrzebuje wewnętrznie zarządzać swoimi klientami. a więc czasem warto pomieszać planami…

eN

ITechDay – ostatnia pula wejściówek

koniec sezonu ogórkowego, a to oznacza, kolejną porcję wiedzy w postaci spotkań WGUiSW ( pierwsze już za tydzień ) oraz konferencja ITD (18.o9). nie będę się rozpisywał o agendzie czy sponsorach – to już było, poza tym znajdziecie na stronie. ale:

w środę, 29.o8, o godzinie 12:oo, zostanie uruchomiona ostatnia pula wejściówek. konferencja jest oczywiście bezpłatna. a więc jeśli jeszcze nie udało Ci się otrzymać wejściówki, wejdź na http://www.itechday.pl i wybierz z menu ‚rejestracja’. pośpiech wskazany, bo wejściówki zazwyczaj rozchodzą się w parę minut (:

eN.

autopilot

Auto czy nie auto?

sceny z Total Recall z 199o zna chyba każdy (… kto nie jest millenialsem)

ostatnio miałem okazję przetestować osobiście ‚gdzie jesteśmy’ w kwestii autopilotów… no może nie tak globalnie, ale mimo wszystko to było pierwsze moje spotkanie z SAMO-chodem nie tylko z nazwy.

klasyfikacja

zabawne, ale język polski dawno już był w przyszłości. zarówno ‚Auto’ jak ‚samochód’ sugeruje pełną automatyzację, rodem z Total Recall. Angielskie ‚car’ (wóz/wagon) lepiej oddaje obecną rzeczywistość. zautomatyzowany pojazd nazwany został ‚autonomicznym wozem’ (autonomous cars). najpierw warto zatem spojrzeć na klasyfikację automatyzacji, bo owszem, takowa istnieje i bardzo fajnie pokazuje gdzie jesteśmy i gdzie zmierzamy (mniej-więcej, resztę można doczytać na wiki). organizacją, która to standaryzuje jest SAE (Society of Automotive Engineers).

Poziom 0: wyświetlane ostrzeżenia

Poziom 1: automatyczne ale nie autonomiczne sterowanie pojazdem – sporadyczne wsparcie sterowania w krytycznych sytuacjach. czyli automaty wspierają jazdę ale to kierowca cały czas kieruje pojazdem i kontroluje poprawność.

Poziom 2: autonomiczne sterowanie pojazdem (przyspieszenie/hamulce/sterowanie). mimo to kierowca musi trzymać ręce na kierownicy aby być w stanie korygować pomyłki i ogólnie weryfikować jazdę.

Poziom 3: autonomiczne sterownie, jednak pojazd może wymagać ręcznej interwencji w specyficznych warunkach. kierowca musi być gotowy na przejęcie kontroli.

Poziom 4: ogólnie to już autonomiczne auto ale pojazd nadal ma kierownicę… ponieważ dotyczy to określonych obszarów. np. będzie działać w mieście i na autostradzie ale nie na drogach 3-ciej klasy.

Poziom 5: pojazd w pełni autonomiczny.

jak widać przykład z filmu to ‚prawie 5’ bo z jakiś względu (IMHO brak fantazji scenarzystów) założyli, że drążek sterowniczy i ręczne sterowanie być musi. a gdzie jesteśmy dziś?

dziś

bardzo wiele pojazdów [staram się unikać kontrowersyjnej nazwy ‚samochód’ bo ani nie chodzi, ani nie robi tego sam ] implementuje dziś poziomy 0-2. w zasadzie każdy wyższy model ma funkcję ‚pilot assist’ lub podobne, w jakiś sposób wspierający kierowcę. daleko im jednak do autonomiczności … i to bardzo daleko, ale o tym za chwilę.

zacznę od tyłu, czyli od pojazdów w pełni autonomicznych, bo jest ich bardzo niewiele. jeśli liczyć te produkcyjne… to nie ma w ogóle. najbliżej sukcesu wydaje się być Alphabet.. czy jak kto woli Google, z projektem Waymo rozwijanym od 2o12. kolejna seria testów ulicznych ma się rozpocząć w tym roq w Arizonie – bo oprócz technologii potrzebne są jeszcze odpowiednie normy prawne, na jakich zasadach takie pojazdy w ogóle mogą się poruszać. w związkq z tym testy mogą być prowadzone tylko w niewielu regionach świata. myślę, że finalnym testem powinny być ulice Delhi (;

Waymo próbuje osiągnąć najwyższy, piąty level, ale należy traktować to jako R’n’D i nie spodziewałbym się takich pojazdów prędko na drogach. najprawdopodobniej nawet jeśli pojawią się produkcyjnie/komercyjnie to będą się poruszać w bardzo ograniczonych strefach.

4ty poziom na razie na ulicę również nie dotarł, najbliżej jest Toyota Lexus „Chauffeur”, która wygląda trochę jak wóz transmisyjny… ilość czujników i kamer jest porażająca. nie wiem czy ktoś będzie chciał jeździć takim potworem.

do poziomu 3ciego dobiło póki co Audi A8, który zresztą jeszcze nie ma akceptacji w wielu krajach.

test level 2

ja miałem okazję przez kilka tygodni potestować Volvo XC90. producent zapowiada, że mają mieć autonomiczny samochód do 2o21… ale szczerze wątpię żeby to osiągnęli. zgodnie z opisem producenta:

Pilot Assist helps provide more relaxed driving in heavy, slow-moving traffic at speeds up to 30 mph (50 km/h) on highways and major roads

bez włączenia żadnej funkcji, standardowe wsparcie ustawione jest na level 1. wykrywa zbliżanie się do linii i lekko koryguje jazdę jeśli samochód zaczyna zjeżdżać z drogi, oraz pokazuje ostrzeżenia przy zbliżaniu się do innych pojazdów – zarówno z przodu jak z boków. po włączeniu pilota, zaczynamy zbliżać się do ‚samochodu’. pojazd sam utrzymuje prędkość – wyhamowuje jeśli z przodu znajduje się inny pojazd, przyspiesza, kiedy ma wolne miejsce. prędkość maksymalną ustala się bardzo prosto, z kierownicy. sama funkcja pilota jest ogólnie łatwo dostępna i prosta w obsłudze.

jeśli zdejmiemy ręce z kierownicy, to zaczną pojawiać się ostrzeżenia – kierowca musi obligatoryjnie nadzorować jazdę. i tutaj zacznę od pierwszego strzału w kolano, który wręcz nazwę po imieniu: idiotyzm. scenariusz (przetestowałem!): co się dzieje jak kierowca uparcie NIE trzyma rąk na kierownicy? to może być scenariusz, kiedy np. kierowca uśnie, zasłabnie lub inny podobny, spodziewałem się zatem, że auto zacznie gwałtownie zwalniać i zjedzie na pobocze.. albo coś przybliżonego. tymczasem… po ok 3o sec wyłącza się funkcja ‚pilot assist’ i przechodzi na ręczne sterownie, zachowując prędkość. polecam zatem nie przysypiać. a przysnąć łatwo, kiedy samochód w zasadzie sam jedzie, i nawet nie trzeba się specjalnie skupiać na drodze. brawo Volvo! najbezpieczniejszy samochód świata.

to dopiero początek zawodu, jaki przeżyłem z ‚semi-autonomiczną’ jazdą. żeby nie przeciągać, po prostu wypunktuję bolączki:

  • pojazd wymaga namalowanych pasów i nimi się kieruje. nie potrafi sobie poradzić w miejscach gdzie pasy znikają (np. przebudowa trasy ale też skrzyżowania oraz tymczasowe pasy – totalnie się gubi)
  • nie nadaje się do jazdy w korq – co było potwornym zawodem, bo to właśnie jazda w korq jest upierdliwa a prędkości są małe. po zatrzymaniu pojazdu na kilka seqnd funkcja pilota jest wstrzymywana, ale po kilq kolejnych – wyłączana. z dwojga złego lepiej, żeby wyłączyła się od razu, bo nigdy nie byłem pewien czy jeszcze działa czy już nie. w efekcie cały czas sqpiałem się na kontrolowaniu wskaźnika zamiast na drodze, żeby wiedzieć na jakie zachowanie pojazdu liczyć. bryndza.
  • pomimo całkiem niezłej nawigacji, połączonej z netem, oraz czujników bocznych wskazujących czy można zmieniać pas, pojazd nigdy autonomicznie takiej operacji nie zrobi. przy zmianie pasa ‚asystent’ wyłącza się na chwilę, i po wykryciu ‚nowych’ pasów włącza ponownie.
  • nie nadaje się do jazdy po mieście – ze względu na korki, skrzyżowania, brak automatycznej zmiany pasa itd.
  • początkowo słabo wykrywał prawą linię. po deszczu nagle zaczął działać lepiej – podejrzewam więc był kłopot z czujnikiem/kamerą. system w żaden sposób tego nie wykrył/nie poinformował, co również uważam za zagrożenie.

do czego zatem można go użyć? w zasadzie tylko do wsparcia jazdy na drogach szybkiego ruchu. trzeba przyznać, że to całkiem wygodne i nawet będąc bardzo zmęczonym, pełna kontrola prędkości oraz sterowania ułatwia przejazd długich tras. chociaż i tu nie polecam usypiać, choćby z rękoma na kierownicy:

  • przy stosunkowo niskich prędkościach (1oo-12o kmph) i na prawdę niewielkich krzywiznach zakrętów na autostradzie, zdarzało się, że pojazd wypadał na pas obok – jakby ‚bał się’ trochę mocniej skręcić. mogło to być spowodowane problemami z czujnikiem o czym wspominałem wcześniej.
  • podczas zakrętów strasznie jechał blisko prawej strony… bałem się, że walniemy w pojazd na pasie obok. nie miałem nerwa żeby przetrzymać więc korygowałem jazdę. znów być może kwestia czujnika.
  • kiedy ktoś z pasa obok wjeżdżał przede mnie, czasem miałem wrażenie, że nie zdąży zwolnić. reaguje stanowczo za późno!

dodatkowo jest funkcja ‚park assistant’, która pozwala w pełni autonomicznie zaparkować pojazd. ale muszą być spełnione warunki:

  • tylko ‚na kopertę’
  • tylko z prawej strony

podsumowując

po wstępnej ekscytacji ‚WOA! SAM KIERUJE!’, i dłuższych testach, jestem jednak mocno zawiedziony tym, jak daleko jeszcze jest do autonomii pojazdów na drodze. mówimy to o wypasionym wozie za 3ooKPLN, więc w standardowych modelach ze średniej półki, nawet nie wspominając o tych z niskiej, nie prędko będzie można się cieszyć dobrymi systemami.

po ostatnich wypadkach Tesli spodziewałem się, że tam autonomia jest dużo wyższa. zwłaszcza, że wedle raportu koleś zginął czytając gazetę i nie patrząc na drogą. jak jednak doczytałem, ‚autopilot’ Tesli nie jest dużo bardziej rozwinięty. w tym miesiącu ma pojawić się update, dla posiadaczy hardware w wersji 3, z dodatkowymi funkcjami autonomii.

#przejechałbymsię

eN.

konsola EXO z MFA

PowerShell dla EXO to porażka, zwłaszcza z włączonym MFA. już sam fakt, że należy jej szukać w części ‚hybrid’ nie jest logicznie wyjaśnialny. podstawowym problemem jest jednak zaszyty hard-limit czasu sesji na 15 min. teoretycznie to czas bez aktywności (idle), ale zdarza mi się, że działający skrypt się sypie… najbardziej doqczliwe było jednak to, że za każdym razem trzeba się uwierzytelniać i przy każdym kolejnym połączeniu ponownie importowane są commandlety, a dodając do tego MFA… zaczyna się robić na prawdę nieprzyjemnie.

szukałem po forach i po doqmentach i miałem na prawdę dziwne pomysły jak to rozwiązać… aż w końcu znalazłem rozwiązanie. dodam, że trywialne.

jeśli uruchomi się po prostu ‚Connect-EXOPSSession’ … nie da się żyć. a wystarczy uruchomić z parametrem:

i owszem, sesja nadal jest zrywana po 15 min ale następuje automatyczne ponowne uwierzytelnienie, bez konieczności wpisywania hasła czy potwierdzania drugiego składnika. nie są również ponownie importowane commandlety. w skrócie – w końcu da się pracować.

być może to tak oczywiste, że nikt o tym nie pisze. być może to było wielką czcionką na ‚pierwszej stronie’. ale być może uratuję kogoś tym wpisem przed całkowitą utratą nerwów, czego byłem już kilka razy bliski przygotowując raporty z EXO.

eN.

ITechDay 2o18

czasu trochę jeszcze jest, bo ITD 18 września, miejsc już nie ma… więc news trochę spóźniony albo trochę za wcześnie. życie na niedoczasie. mimo wszystko skrobnę, bo warto. co prawda konferencji IT w Polsce dużo, ale ta jest wyjątkowa – organizowana przez WGUiSW, tematycznie mi bliska oraz będę na niej występował (: no i jest szansa, że będzie 3cia tura biletów! mam nadzieję się nie spóźnić z następnym newsem.

serdecznie zapraszam na ITD!

  • 18 września
  • 4 ścieżki tematyczne!  [w tym nowa ścieżka ‚biznesowa’ z prezentacjami bardziej ogólnymi, przeznaczonymi bardziej dla osób decyzyjnych niż technicznych]
  • nowa lokalizacja! na zeszłorocznej konferencji były spore problemy z hasłem więc trzeba było poszukać lepszego miejsca. i z łatwiejszym dojazdem. konferencja odbędzie się w siedzibie Wyższej Szkoły Menedżerskiej na warszawskiej Pradze
  • oczywiście spotkanie bezpłatne.

do zobaczenia we wrześniu!

eN.

Ribbon dies, long live the Ribbon!

zbliża się nowy wygląd dla Office365. czekam z nieciepliwością, bo nigdy się ze ‚wstążką’ nie polubiłem

source

eN.

usuwane danych użytkownika z Office365

niby proste. ale jest ‚ale’….

User

po usunięciu użytkownika – zostaje w śmietniq. to proste. czyli należy usunąć usera a potem go usunąć ze śmietnika

 

Exchange

teraz nie mogę znaleźć… ale jestem przekonany, że w artyqłach była informacja że po takim usunięciu wszystkie dane są również usuwane… ale tak nie jest! okazuje się, że skrzynka zostaje:

OneDrive

z OneDrive jest jeszcze dziwniej, bo po usunięciu użytkownika site nadal jest widoczny jako aktywny. jako dowód – po wykonaniu tego polecania, OD użytkownika nadal nie będzie na liście:

natomiast wyświetlenie aktywnego site OD pokaże go:

opis algorytmu dla OD można zleźć w artykule na support.office.com. site jest widoczny i dostępny przez 7 dni po usunięciu użytkownika i dopiero potem trafia do śmietnika.

podsumowując

  • proste operacje ‚pod spodem’ wcale niekoniecznie są takie proste.
  • każdy serwis żyje własnym życiem i ma własne zasady – office365 to nie jest pojedyncza usługa!
  • jeśli ktoś ma ‚onpremową intuicję’ to należy się jej wyzbyć.
  • to wszystko to niby niuanse, ale bywają istotne – zwłaszcza jeśli trzeba odtworzyć konto w AAD oraz ze względu na aspekty bezpieczeństwa i dostępu do danych.

eN.

 

 

 

 

Ograniczenia Exchange Hybrid

[updated]

pomimo, że hybryda Exchange jest dość typowym scenariuszem i to raczej docelowym środowiskiem dla większości większych firm, to niestety niesie ze sobą sporo ograniczeń. zwłaszcza w okresie migracji może to stanowić spory problem.

poniżej zebrane – nie wiem, czy wszystkie. ograniczenia dotyczą dostępu do skrzynek pomiędzy środowiskami (cross-premise)

  • nie działa ‚automapping’ dla kont cross-premise. czyli jeśli osoba w chmurze ma dostęp do skrzynki współdzielonej onprem to musi dodać ją ręcznie we właściwościach – sama się nie zmapuje.
  • największe hece są z kalendarzami dla skrzynek cross-premise. po migracji traci się udostępnienie, a przy ponownym udostępnieniu nie widać detali. jednym z obejść problemów jakie znalazłem jest ponowne udostępnienie skrzynki.. ale z OWA. to nie wszystko! akceptacja też musi być z OWA. ciekawy opis tu.
  • bardziej ogólnie problem polega na tym, że nie wszystkie uprawnienia są obsługiwane dla scenariuszy cross-premise. zwłaszcza uprawnienia item-level. i chociaż na stronie jest informacja że ‚sand as’ nie działa, to da się to zrobić.
  • nie ma dostępu do skrzynek archiwalnych dla cross-premise
  • właściciele grup nie mogą zarządzać grupami dystrybucyjnymi z Outlook. jako obejście można stworzyć skrót do narzędzia systemowego.

znasz inne?

eN.

1o1 WGUiSW

już jutro ostatnie spotkanie WGUiSW przed wakacjami. agenda i zapisy na meetup – serdecznie zapraszam. przypominam o konieczności rejestracji aby uniknąć problemów z wpuszczeniem.

a na agendzie można znaleźć m.in:

  • 19.00 – 20.00 Wdrożenie office365 – w jakiej epoce jest Twoja firma? | nExoR

(:

eN.