search nie działa

hmmm… nie wiedziałem, że to problem globalny – forbes z pewnymi przymyśleniami – ale piszę bo rozwiązanie jest trywialne, zajmuje 3 min i zadziałało na razie na każdym kompie:

w kluczu HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search trzeba założyć wartość ‘BingSearchEnable’ = 0

i przelogować się.

za to z searchem ogólnie coś się ostatnio dziwnego dzieje i od razu wpływa to na pracę – zarówno zmieinone wyszukiwanie w Outlook działa fatalnie, nie jestem w stanie wyszukać tego, co potrzebuję, jak i OneNote – nie podświetla wyniqw, wyszukuje niepełne frazy… czy to ma związek? czy Bing search jest wykorzystywany pod spodem, w lokalnym wyszukiwaniu? wszystkie arty i krzyki mówią o systemowym, a ja mam takie wrażenie, że z każdym jedynym nie jest dobrze…

eN.

117 WGUiSW

już jutro, o4.o2.2o, 117 WGUiSW, jak zwykle w siedzibie MS.

w ramach tegoż spotkania będzie i moja krótka prezentacja w ramach ‘WGUiSW Hobby’. to bardzo ciekawa inicjatywa, gdzie opowiadamy o … swoim hobby. dzięki tym sesjom dowiedziałem się ciekawych rzeczy o kilq nie-technicznych aktywnościach, ale przede wszystkim o samych uczestnikach, którzy już podzielili się swoimi zajawkami. fajnie w końcu poznać się bardziej prywatnie – niektóre osoby znam od wielu lat, a w sumie niewiele mogę powiedzieć poza ‘interesuje się M365’ czy ‘jest dobrym inżynierem’. dla tego postanowiłem podzielić się i ja (:

eN.

ITechDay 2o

ITechDay 2o2oo3.o3 2o2o to fajna data, w sam raz na świetne wydarzenie. i nie inaczej, bo tego dnia odbędzie się ITechDay, tak jak ostatnio – na Wyższej Szkole Menedżerskiej. pojawia się nowa ścieżka – IT Hyde Park, na którym będą krótkie sesje po 2o min, na których będziecie mogli wejść, coś na szybko posłuchać lub pójść pozwiedzać stoiska partnerów.

dobra informacja – sprawdzajcie www.itechday.pl, bo będą jeszcze bilety!

TEMATYKA KONFERENCJI

Społeczność WGUiSW.org (Warszawska Grupa Użytkowników i Specjalistów Windows) wraz z Partnerami gorąco zapraszają na kolejną konferencję z cyklu ITechDay. Tematami wiodącym będą:

  • rozwiązania chmury publicznej i prywatnej
  • aspekty gromadzenia i bezpiecznego przechowywania danych
  • konfiguracja i zarządzanie urządzeniami mobilnymi
  • zapewnienie wysokiej dostępności
  • automatyzacja zadań w środowiskach IT
  • analiza i ocena zabezpieczeń infrastruktury IT

SESJE ITECHDAY

  • IT Innovation – prelekcje, których wspólnym mianownikiem będzie pomysłowość zastosowania technologii IT w różnych branżach i gałęziach przemysłu
  • Case study – ścieżka oparta wyłącznie na realnych przykładach i implementacjach środowisk produkcyjnych. 100% praktyki gwarantowane!
  • Cloud IT – chmura zagościła na dobre w naszych środowiskach IT. Te sesje zabiorą Was w podróż po najnowszych rozwiązaniach chmury publicznej, prywatnej i hybrydowej.
  • IT Hyde Park – krótkie – 10 i 20 minutowe sesje mające na celu zwrócenie uwagi zarówno na nowinki jak i na czasami pomijane ale ogromnie przydatne tematy. Prowadzący – doświadczeni inżynierowie a także dopiero wkraczający w świat IT młodzi ludzie.

PARTNERZY WYDARZENIA

  • CBSG Polska
  • DELL
  • Elitmind
  • Eurocert
  • Greeneris
  • Hewlett Packard Enterprise
  • Infowave
  • Innergo
  • Kingston
  • Luxoft
  • Microsoft
  • Mine Master
  • MWT Solutions
  • Narodowe Centrum Bezpieczeństwa Cyberprzestrzeni
  • Oktawave
  • QNAP
  • Quest Dystrybucja
  • Veeam

PARTNER HONOROWY

  • Ministerstwo Obrony Narodowej

eN.

EXO V2

muszę (przynajmniej częściowo) odszczekać to, co pisałem w nie tak dawno temu – konkretnie część dotyczącą ClickOnce dla Exchange Online. w końcu, po wielu cierpieniach pojawił się moduł EXO V2 – i to na chwilę przed wpisem, czyli moje przeoczenie. w końcu można normalnie zainstalować z repozytorium! co prawda konsola wita jeszcze w klimacie helloween, z dreszczykiem, ale i to powinno wkrótce się zmienić:

----------------------------------------------------------------------------
Due to a security issue, this version of client module will be deprecated and stop working after 8 Jan,2020. Please update to latest version on or after 8 Jan, 2020.
----------------------------------------------------------------------------

nie tylko instalacja jest doprowadzona do normalności, ale pojawiło się wiele nowych commandletów. osoby pracujące z EXO na pewno odetchną z ulgą (:

eN.

 

MFA, SSPR – ‘unified experience’?

scenariusz

typowy w-files czyli hejcik przy kawie. dziś o konfiguracji MFA oraz fakcie, że od czasów portalu Azure, który niewielu już pamięta, ten fragment cały czas jest w starej wersji. można się do niego dostać linkiem https://account.activedirectory.windowsazure.com/UserManagement/MultifactorVerification.aspx i wygląda tak:

…już pominę kwestię, że MFA jest jednym z częściej koniecznych obszarów do obsługi przez 2gą linię, a nie ma możliwości użycia RBAC i konieczny jest Global Admin, czy taki szczegół, że ‘podpowiedzi’ pokazują prywatne pule adresowe (LoL).

żeby zaadresować te problemy i w końcu dać nowy interfejs, powstał ‘combined security information registration (preview)‘. na razie ‘preview’ – chociaż nie wiem po co w tych czasach dodawać taki dopisek, skoro wszystko jest w metodyce CI/CD co oznacza ‘neverending preview’. dodajmy teraz do tego SSPR – czyli Self-service Password Reset. konfiguracja wygląda tak:

 

efekt?

otóż ustawienia metod uwierzytelnienia dla MFA, skonfigurowane w SSPR mają pierwszeństwo nad ustawieniami z MFA server. czyli np. :

  • chcielibyśmy dać możliwość ludziom użycie dowolnej metody 2FA (call, text, app) i równocześnie wymusić, że podczas zmiany hasła musimy skorzystać z odpowiadania na pytania – nie da się. jeśli włączymy X metod uwierzytelnienia, te same będą dozwolone przy resecie hasła.
  • konfiguracja MFA z panelu użytkownika znika. na razie nie udało mi się znaleźć jak ‘wyklikać się’ do ekranu zmiany opcji. użytkownik musi skorzystać z linka bezpośredniego – https://aka.ms/mfasetup .
  • nawet jeśli SSPR jest konfigurowany tylko dla ograniczonej ilości osób (np. przez grupę), to i tak te opcje działają na wszystkich
  • nie oznacza to wcale, że stary MFA server setup jest już zbędny! ponieważ to jest jedyna opcja, która działa z nowego miejsca – cała reszta, czyli opcja trusted IP czy ile czasu MFA jest cache’owane – to wszystko konfiguruje się ze starego panelu.

no. łatwiej teraz jest, nie?

eN.

 

115 WGUiSW

zapraszam o3.12.2o19, 18:oo, na 115 WGUiSW. zwyczajowo – w siedzibie MS, al. Jerozolimskie, Wawa.
to już ostatnie spotkanie w tym roq kalendarzowym, a więc przedświątecznie-choinkowo.

szczegóły dot. sesji na stronie społeczności. jest i mój slot – poopowiadam trochę o Just-in-Time Administration w M365.

eN.

ClickOnce

emotHateporanny hejcik przy kawie.

jest sobie taka stara technologia dostarczania aplikacji – ClickOnce. i chociaż na stronach eMeSu nie ma informacji, że jest ‘depricated’ mimo to – jest. z tym rodzajem instalacji można spotkać się w kilq miejscach w M365 – trafiłem na trzy, pamiętam dwa:

  • instalacja PowerShell dla EXO w hybrid mode
  • eDiscovery export tool

sposób w jaki taka apka jest opublikowana powoduje, że nie da się (standardowo) użyć opcji ‘uruchom jako’, udostępnić komuś, przenieść między profilami czy cokolwiek innego. ale nie to jest najpasqdniejsze. na tej stronie jest informacja, że aby uruchomić aplikację należy mieć Internet Explorer. jest też info o FF z jakimś dodatkiem – tego nie testowałem ale nie omieszkam. drugą przeglądarką, choć nie wymienioną, był/jest Edge. był – ponieważ nowy Edge, na Chromium już nie jest. pozostaje więc konieczność używana IE /:

drogi Microsofcie… czasem brak mi słów. z jednej strony wszyscy przestali nadążać za nowo-pojawiającymi się opcjami, dodatkami, panelami etc – a z drugiej, podczas dochodzenia w incydencie bezpieczeństwa trzeba odpalać spapranego IE, o którym cały świat wolałby już zapomnieć i waszym interesie jest, żeby to się stało ASAP…

eN.

ShareCon365 (po)

6ty ShareCon za nami, cieszę się, że mogłem dołożyć swoją cegiełkę i podzielić się wiedzą. feedback po sesji otrzymałem pozytywny, mam nadzieję, że kilka osób skorzysta z tej wiedzy (:

po spotkanie miałem pytania o aplikację, z której korzystałem – SysKit Security Manager. narzędziem polecam się zainteresować bo upraszcza życie – mnie interesuje raportowanie, wyszukiwanie i szybka analiza środowiska ale to cenne narzędzie do codziennej administracji. na prezentacji korzystałem z wersji 8 beta – jeszcze niedostępnej publicznie, ale wkrótce będzie premiera. ta wersja to game changer – zwłaszcza dla większych środowisk!

SC365 - SysKit

kudos dla ekipy SC365!

eN.

filtrowanie po wartości

potęgą PowerShell jest jego obiektowość, dzięki czemu cały język jest bardzo elastyczny. np filtrowanie wyjścia staje się bardzo proste:

ps|? name -match 'svc'

proste, jasne i przyjemne… i łatwo znaleźć na setkach tysiącach stron…

dla tego inne pytanie – a jak przefiltrować po wartościach wszystkich parametrów? np. “pokaż wszystkie parametry obiektu, które mają ‘name’ w nazwie”, albo “pokaż wszystkie wartości parametrów, które zawierają ‘abc'”. tego już tak łatwo zrobić się nie da. to będzie nieco nieprzyjemna przejażdżka, bo wymaga rozebrania obiektu na kawałki – czyli tracimy automatykę PS, która tak ślicznie pomaga w ‘normalnych’ zapytaniach, i grzebiemy we flakach.

aby osiągnąć cel trzeba skorzystać z ukrytego parametru ‘psobject’, który pokazuje wnętrzności obiektu. dodatkowo sprawę kompliqje fakt, że wyjście jest często tablicą obiektów a nie pojedynczym obiektem. pobawmy się ‘get-service’ i zrealizujmy takie zadania:

  • wyświetlmy wszystkie nazwy i wartości parametrów, które mają w nazwie ‘name’
  • wyświetlmy wszystkie nazwy i wartości parametrów, dla których wartość jest równa ‘true’

w pierwszej kolejności zobaczmy jak taki obiekt wygląda wewnątrz. najpierw klasycznie…:

PS C:\_scriptZ> Get-Service|gm


   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs)
Close                     Method        void Close()
Continue                  Method        void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Dispose                   Method        void Dispose(), void IDisposable.Dispose()
Equals                    Method        bool Equals(System.Object obj)
ExecuteCommand            Method        void ExecuteCommand(int command)
GetHashCode               Method        int GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        void Pause()
Refresh                   Method        void Refresh()
Start                     Method        void Start(), void Start(string[] args)
Stop                      Method        void Stop()
WaitForStatus             Method        void WaitForStatus(System.ServiceProcess.ServiceControllerStatus desiredStat...
CanPauseAndContinue       Property      bool CanPauseAndContinue {get;}
CanShutdown               Property      bool CanShutdown {get;}
CanStop                   Property      bool CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      string DisplayName {get;set;}
MachineName               Property      string MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      string ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                      Property      System.ComponentModel.ISite Site {get;set;}
StartType                 Property      System.ServiceProcess.ServiceStartMode StartType {get;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}
ToString                  ScriptMethod  System.Object ToString();

a potem… od środka:

PS C:\_scriptZ> (get-service).psobject

Members : {Count = Length, int Length {get;}, long LongLength {get;}, int Rank {get;}...}
Properties : {Count = Length, int Length {get;}, long LongLength {get;}, int Rank {get;}...}
Methods : {void Set(int , System.Object ), System.Object&, mscorlib, Version=4.0.0.0, Culture=neutral, Publ
          icKeyToken=b77a5c561934e089 Address(int ), System.Object Get(int ), System.Object GetValue(Params
          int[] indices), System.Object GetValue(int index), System.Object GetValue(int index1, int index2
          ), System.Object GetValue(int index1, int index2, int index3), System.Object GetValue(long index)
          , System.Object GetValue(long index1, long index2), System.Object GetValue(long index1, long inde
          x2, long index3), System.Object GetValue(Params long[] indices)...}
ImmediateBaseObject : {aciseagent, AdobeARMservice, AdobeFlashPlayerUpdateSvc, agiptd...}
BaseObject : {aciseagent, AdobeARMservice, AdobeFlashPlayerUpdateSvc, agiptd...}
TypeNames : {System.Object[], System.Array, System.Object}

nas będą interesować ‘properties’, których nazwy zawierają ‘name’. nie będę się bawił w step-by-step, myślę, że taki początek wystarczy, a całą resztę trzeba po prostu usiąść i się pobawić. mamy podstawy więc teraz trzeba po PowerShellowemu zapisać zadanie “wyświetl wszystkie usługi (obiekty), następnie dla każdej usługi przefiltruj te parametry, który mają w nazwie ‘name’ a następnie wyświetl tylko nazwę i wartość”. po takim zapisie to już bułka z masłem:

Get-Service|%{$_.psobject.properties|? name -match 'name'}|ft name,value

a teraz drugie zadanie – i tu robi się na prawdę pasqdnie, bo wartości mogą być różnych typów i też są obiektami. ponadto samo ‘property, value’ będzie bezużyteczne bez dodatkowej informacji – nazwy usługi dla której je znaleźliśmy. poniżej rozwiązanie, zachęcam do zrozumienia – czyli samodzielnych testów:

get-service|%{$sn=$_.name;$_.psobject.members|?{$_.membertype -eq 'property' -and $_.value -eq $true}}|select @{N='ServiceName';E={$sn}},name,value

żeby nie było za łatwo… i tego nie potrafię wyjaśnić – z jakiegoś powodu ‘Stopped’ jest traktowany jako $true. fragment wyjścia:

ServiceName Name Value
----------- ---- -----
aciseagent CanStop True
AdobeARMservice CanStop True
AdobeFlashPlayerUpdateSvc Status Stopped
agiptd CanStop True
AJRouter Status Stopped
ALG Status Stopped
ApHidMonitorService CanS... True
ApHidMonitorService CanStop True
AppHostSvc CanP... True
AppHostSvc CanS... True
AppHostSvc CanStop True
AppIDSvc Status Stopped
Appinfo CanStop True
AppMgmt Status Stopped
AppReadiness Status Stopped

… ale już nie chce mi się zagłębiać dalej.

sztuka dla sztuki? niekoniecznie. często trafiam na scenariusz, prostszy niż zaprezentowane, gdzie dostaję obiekt o dużej liczbie parametrów – np. obiekty EXO – i chcę sprawdzić czy gdzieś nie siedzi jakaś wartość, przy czym nie mam pojęcia jak może nazywać się parametr. o ile w ogóle istnienie. np. wyświetlmy wszystkie URI jakie są skonfigurowane dla grupy o365:

PS C:\_scriptZ> (Get-UnifiedGroup -Identity GuestGroupTest).psobject.Members.value|Select-String 'http'

https://outlook.office365.com/owa/?path=/group/GuestGroupTest@w-files.pl/calendar
https://outlook.office365.com/owa/?path=/group/GuestGroupTest@w-files.pl/mail
https://outlook.office365.com/owa/?path=/group/GuestGroupTest@w-files.pl/people
https://outlook.office365.com/EWS/Exchange.asmx/s/GetUserPhoto?email=GuestGroupTest@w-files.pl

to tak w ramach przygotowań do ShareCon365 (; zapraszam na moją sesję!

PS. aahhh… jeśli ktoś czytał z uwagą, to powinien zadać pytanie – “a jakie jeszcze ukryte parametry mają obiekty?“. i jeśli ktoś takie pytanie by zadał, otrzymałby zapewne odpowiedź: “<your-command>|gm -force

eN.