od wczoraj można się już zapisywać na konferencję ITechDays 2o17. Dostępna jest już pełna agenda.
spóźniony news… ale ostatnio z pustą taczką latam (;
eN.
od wczoraj można się już zapisywać na konferencję ITechDays 2o17. Dostępna jest już pełna agenda.
spóźniony news… ale ostatnio z pustą taczką latam (;
eN.
konferencje ITechDay cieszyły się bardzo dużym zainteresowaniem – ostatnio 12o miejscówek rozeszło się w… 8o sec! [SIC!]. w związq z taką popularnością, organizatorzy ITD musieli pomyśleć o tych pozostałych i tak, z jednodniowego ITD odbędą się dwudniowe ITDs (: co więcej, aby nie ograniczać chętnym wstępu, konferencja odbędzie się w bardziej przestronnym miejscu…. w największym centrum konferencyjno-kongresowym w Europie Środkowej – PTAK Warsaw Expo. na szczegółową agendę trzeba jeszcze poczekać, ale już wiadomo, iż konferencja odbędzie się 1-2 czerwca, oraz znani są prelegenci.
tym razem w-files nie tylko patronuje medialnie, ale również jest w składzie prelegentów (:
eN.
*UPDATED
bardzo często korzystam z ‚compare-object’ ale ma niestety jedną bardzo, bardzo poważną skazę. pomimo swojej nazwy, wcale nie potrafi porównywać obiektów, a raczej wykrywać różne obiekty w tablicy. oto przykład:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
PS C:\Temp> $t1=Get-Process -Name explorer PS C:\Temp> $t2=Get-Process -Name explorer PS C:\Temp> $t1 Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 1264 115 76272 76816 694,25 15372 4 explorer PS C:\Temp> $t2 Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 1264 115 76348 76832 694,25 15372 4 explorer PS C:\Temp> compare $t1 $t2 PS C:\Temp> |
$t1 i $t2 są takimi samymi obiektami, różnią się niektórymi wartościami atrybutów – np. Paged Memory [PM(K)]. compare różnicy nie widzi. oczywiście można porównać konkretne atrybuty [properties]:
1 2 3 4 5 6 |
PS C:\Temp> compare $t1 $t2 -Property PagedMemorySize PagedMemorySize SideIndicator --------------- ------------- 78180352 => 78102528 <= |
ale kiedy poda się kilka parametrów, to compare-object traktuje je jako logiczny OR –
„czy którykolwiek z nich się różni?”:
1 2 3 4 5 6 |
PS C:\Temp> compare $t1 $t2 -Property PagedMemorySize,Name PagedMemorySize Name SideIndicator --------------- ---- ------------- 78180352 explorer => 78102528 explorer <= |
moje odczucie jest takie, że compare-object został napisany z myślą o tabelach, gdzie dla kolejnych wierszy pokazuje różnice w kolumnach. w przypadq obiektów jest odwrotnie – każdy wiersz jest unikalny i ma wartość. więc albo trzeba byłoby skonwertować to do tablicy i dokonać transpozycji, albo obejść się bez compare-object /: jak się okazuje nawet PowerShell ma wady i nie jest idealny. ten przypadek jest szczególnie bolesny i niezrozumiały, zarówno ze względu na obiektowość PS, jak i zwodniczą nazwę.
jeden ze scenariuszy: szukałem różnic w wartości obiektów po migracji między usługami, żeby wykryć, gdzie była zmiana. dla ułatwienia zrobiłem sobie zrzut obiektu do CSV [ale to nie ma znaczenia]. efekt był dokładnie taki jak opisywany powyżej, czyli nie pokazywał mi różnic. i trzeba było sobie to ręcznie oprogramować:
1 |
$t1.Psobject.Properties|%{ if($_.value -ne $t2.$($_.name)) { write-host "$($_.name)-> $($_.value); $($t2.$($_.name)) " } } |
PS szybko rozleniwia /:
/UPDATE
okazuje się, że Tatuśkowi też zabrakło takiej funkcjonalności więc napisał piękną funkcję do jej obsługi: Compare-ObjectProperty.
dzięki Kacper za linka (:
eN.
PowerShell zarówno dla Exchange jak Skype Online dostępny jest poprzez stworzenie sesji WinRM i zaimportowanie zdalnych komend. prosta komenda połączenia do SkypeOL to po prostu:
1 2 |
$sfboSession = New-CsOnlineSession -Credential (get-credential) Import-PSSession $sfboSession |
…ale ja jakoś od zawsze trafiam w nietypowe przypadki [środowiska] i połączyć się nie mogłem, ponieważ DNS nie wskazuje jeszcze na środowisko, do którego się chcę połączyć. po przeczesaniu internetów wszędzie trafiałem na ‚pomoc’ aby dopisać parametr -OverrideAdminDomain “my.domain.365” . bezwartościowa, ponieważ tak jak pisałem, DNS nie jest jeszcze skonfigurowany. ale jest jeszcze jeden parametr, tym razem bardziej pomocny: -OverridePowershellUri . tylko to URI trzeba znać.
trzeba odpalić przeglądarkę na jakimś komputerze z DNS ustawionym na zewnątrz i wpisać: https://sched.lync.com . po uwierzytelnieniu zostaniemy przekierowani na URI dla naszego tenanta np: „https://webdir1f.online.lync.com/Scheduler/?AuthCookieName=RtcAuth” . dla PS będzie to: „https://webdir1f.online.lync.com/OcsPowershellLiveId”.
trochę wchodzenie przez komin, ale czasem trzeba pokombinować (; jak ktoś zna prostszy sposób to się proszę pochwalić.
eN.
łatwo jest przefiltrować listę tak, aby mieć tylko unikalne elementy – jest zarówno commandlet ‚get-unique’ oraz parametr ‚-unique’ przy select-object, ale jak wyłuskać duplikaty?
sposobów jest oczywiście wiele a ten, który mi się podoba to:
1 |
cat "<file.name>"|group |? count -gt 1 |
lub w hiperpoprawnym zapisie:
1 |
get-content "<file.name>"|group-object|where-object {$_.count -gt 1} |
plik:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
PS C:\Temp> cat .\loremipsum.txt Lorem ipsum dolor sit amet, consectetur adipiscing elit. non consectetur ex aliquam a. Vestibulum ante ipsum primis Nulla at blandit nisi. Maecenas sodales tempor ligula. Mauris ac pharetra eros. Nam pellentesque quam purus, non consectetur ex aliquam a. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas consequat velit consequat Mauris ac pharetra eros. Nam pellentesque quam purus, vulputate fringilla. Donec bibendum finibus ex vel congue. bibendum finibus ex vel congue. |
a teraz sprawdźmy duplikaty:
1 2 3 4 5 |
Count Name Group ----- ---- ----- 2 non consectetur ex ali... {non consectetur ex aliquam a. Vestibulum ante ipsum primis , non consectetur ex ali... 2 Mauris ac pharetra ero... {Mauris ac pharetra eros. Nam pellentesque quam purus, , Mauris ac pharetra eros. Na... 2 bibendum finibus ex ve... {bibendum finibus ex vel congue. , bibendum finibus ex vel congue. } |
można jeszcze upiększyć output, pozbywając się śmieci:
1 |
cat .\sfbea.txt |group -NoElement|? count -gt 1 |
powracając jeszcze do unikatów… wydawałoby się, że skoro jest oddzielne polecenie – get-unique, to powinno mieć większe możliwości i być bardziej elastyczne niż jakiś tam parametr do innego polecenia.
o dziwo jest odwrotnie. osobiście traktuję get-unique jako ciekawostkę i nie miałem scenariusza, w którym bym go użył. a to dla tego iż [msdn]:
The Get-Unique cmdlet compares each item in a sorted list to the next item, eliminates duplicates, and returns only one instance of each item. The list must be sorted for the cmdlet to work properly.
Get-Unique is case-sensitive. As a result, strings that differ only in character casing are considered to be unique.
eN.
na ostatnim WGUiSW prezentowałem krótkiego snacka dotyczącego polis haseł GPO. q mojemu zaskoczeniu nagrania znalazły się na channel9, znalazło się i moje (:
eN.
trafiłem na ciekawy ‚ficzer’ SfB, który jest bardzo przydatny podczas labów, ale może się przydać również podczas debugowania problemów.
Jak wiadomo, klient Skype for Business korzysta z odpowiednich rekordów DNS w celu zlokalizowania serwera, do którego ma się połączyć. jest fajny art, który pokazuje na diagramie sposób odpytywania. nigdzie jednak nie znalazłem informacji, że w celu optymalizacji połączenia, tworzony jest plik cache: $env:USERPROFILE\AppData\Local\Microsoft\Office\16.0\Lync\<userSIP>\EndpointConfiguration.cache .
nie znalazłem scenariusza, w którym ten plik jest usuwany i ponawiane jest odpytywanie DNS. to ma ciekawe konsekwencje. klient łączy się bez DNSów! nie musiałem nawet odpalać network monitora – ustawiłem na lokalnej sieciówce DNS na 127.0.0.1 i odpaliłem SfB. działa (:
może to mieć pozytywne i negatywne efekty. negatywny może być wtedy, kiedy używa się lokalnego serwera SfB i dokona się zmiany adresów. nie wiem jak się zachowa, bo nie testowałem – zakładam, że ktoś to przemyślał, i jeśli nie może znaleźć wpisu z cache, sfailuje na zapytania DNS. ja natomiast, w nietypowym środowisq, przetrzymując dwa pliki cache, nadgrywam go zależnie od tego, co chcę testować i voila! mogę bez DNS łączyć się do odpowiedniego serwera, pomimo braq wpisów w DNS.
eN.
nie wczoraj, a pół roq temu, ale może komuś umknęło to tak, jak mi. chodzi o skrócone adresy URL, które dostępne były w różnych serwisach typu OneDrive czy Google Maps. z jednej strony co za różnica czy adres jest skrócony, przecież i tak się go nie uczymy na pamięć, tylko wysyłamy mailem czy innym medium, z drugiej strony miało to ciekawy efekt psychologiczny – taki krótki adres nie straszy. kiedy widzi się długi ciąg znaków w adresie, który mamy kliknąć to budzi niepoqj, w przeciwieństwie do krótkiego, zwięzłego. no i mimo wszystko, rzadko-bo-rzadko, ale czasem taki adres trzeba przedyktować przez telefon. dziwne przypadki się zdarzają.
zastanawiałem się, czemu serwisy Google czy MS wycofały tą usługę i okazuje się, że chodzi o bezpieczeństwo. jeśli udostępnialiście kiedyś pliki lub lokalizacje z usługi chmurowej, to wiecie, że całe bezpieczeństwo opiera się w właśnie na linq – w nim zawarty jest token, upoważniający do edycji lub odczytu pliq. to samo w sobie nie jest jeszcze tragedią, bo wysyłając link mailem musimy pamiętać, że może kiedyś trafić ‚gdziekolwiek’ i doqment/lokalizacja będzie mógł być pobrany lub edytowany przez przypadkową osobę. większym problemem był fakt, że token w zawartym linq, oraz uporządkowana struktura serwisu pozwala na dostęp do innych danych.
całość, wraz z raportem na podstawie odkodowanych linqw można znaleźć w tym artyqle a dla leniwych, skrócona wersja przykładowych scenariuszy ataq:
to w sumie oczywiste, ale przypomina, jak olbrzymia odpowiedzialność spoczywa na dostawcach usług globalnych. taki mały niuansik – ot, skrócony link…
w epoce ‚chmury’ i wszechobecnego ułatwiania sobie życia, czasem zapominamy jak niebezpieczne jest udostępnianie danych. nie jestem zwolennikiem paranoidalnego odcinania się od usług… bo są wygodne. i dużo traci się na blokowaniu wszelkich ciasteczek, korzystania z map, backupu zdjęć czy trzymania doqmentów w chmurze. poszukiwanie niszowych rozwiązań, które są rzadziej kierunkiem ataq ze względu na mniejszą popularność, może być jakimś rozwiązaniem. ale traci się wtedy na integracji – decydując się na usługi jednego dostawcy, mamy tzw. ‚suite’ czyli cały pakiet usług, pomiędzy którymi łatwo wymienia się dane, co daje olbrzymią elastyczność i wygodę.
wybór należy do Ciebie – byle świadomy!
eN.
…długo czekałem na taki materiał. dla dzieci, dla siebie, dla znajomych. cytując twórcę:
‚ważniejsza, niż posiadanie informacji w głowie, staje się dzisiaj umiejętność jej weryfikacji’
eN.
zakładam, że historii Skype specjalnie nie trzeba przedstawiać. najważniejszy [do celów tego wpisu] jest fakt, że został qpiony w maju 2o1o przez Microsoft, a od lat MS rozwijał własny produkt – wtedy jeszcze nazywany Office Communication Server. pomimo, że oba produkty są [m.in.] klientami VoIP, ich architektura działania jest totalnie inna…
… no właśnie – jest, czy też może ‚była’? po zaqpie Skype długo wydawało się, że nic się nie dzieje. powiedziałbym, że ‚bardzo długo’, albo wręcz ‚za długo’. wynika to z totalnie różnych założeń obu systemów – OCS/Lync to produkty zorientowane na centralne zarządzanie, wykorzystanie w Enterprise, możliwość archiwizacji, wymuszenia zgodności z polityką firmy i prawem, własnością intelektualną itd. Skype przeciwnie – był aplikacją zorientowaną na rozproszenie, w architekturze hybrid P2P, z nastawieniem na zachowanie prywatności. no i jest protokołem w pełni zamkniętym. co prawda próbowano zrobić reverse engineering i można znaleźć jakieś tam opisy działania, ale to bardziej na poziomie ogólnym.
w tym samym czasie nastąpił boom na rozwiązania chmurowe, OCS zmienił się najpierw w Lync 2013, potem zforkował się w Skype for Business 2o15 oraz Skype for Business Online z office365. zmiana nazwy nie była przypadkowa. Lync przesunął się w kierunq Skype, a Skype w kierunq Lync. co to oznacza?
najciekawsze jest owo ‚przesunięcie Skype’. co prawda nadal nie ma opisu architektury rozwiązania, ale pewne rzeczy widać, i można pobawić się w dodawanie:
polecam bardzo fajny artykuł, wyjaśniający zmiany, jakie zaszły 2o15-2o16 z tym produktem. najciekawsze cytaty:
“The original genius of Skype is that it was a peer-to-peer solution, which made sense in the early days of broadband, when everyone used a PC,” Microsoft vice president Gurdeep Pall told me recently. “But over the past 10 years, things have changed, and we now use multiple devices, where syncing state from device to device becomes challenging.”
“A couple of years ago, we started on a massive engineering project to transition Skype to a cloud-based solution,” Pall told me. “And much of what you’ve seen as new features in Skype, especially over the past year, has been connected to this new architecture.” This includes such things as audio and video chat, file sharing, photos and file sharing, offline access, Skype translator, bots, and more, he said.
…no i git. wszyscy szczęśliwi… [?]
bo jak się tak zastanowić, to co to oznacza dla wstępnych założeń funkcjonowania Skype? nie jest to już klient P2P, tylko prawie-Skype-for-Business. z centralnym zarządzaniem kontami, polisami… [archiwizacją i monitoringiem?]
nie żebym miał z tym jakiś problem. w sumie to przewidziałem to zaraz po pojawieniu się office365 q: niemniej pozostaje ciekawostką wartą zastanowienia zwłaszcza, jeśli ktoś kierował się korzystaniem ze Skype ze względu na zalety P2P lub ma po prostu dylematy związane z tym ‚gdzie są moje dane i kto może je oglądać’. tym bardziej, że o ile architektura Skype for Business 2o15 jest dostępna i można dokładnie się przyjrzeć co i jak i jakie są schematy komunikacji, o tyle Skype nadal pozostaje owiany mgiełką mistycyzmu. poza kwestiami prywatności dochodzą problemy z wyznaczeniem wymagań sieciowych – bo nie ma oficjalnych informacji o schematach komunikacji takich, jak są dla linii biznesowej. można się tylko domyślać, że nawet jeśli nie dziś, to za chwilę, jedyną różnicą pomiędzy oboma produktami będzie ‚otoczka integracyjna’, może jakieś dodatki korporacyjne jak możliwość integracji z własnym PBX. bo czemu niby nie miałbym widzieć ‚presence’ w OneDrive [zarówno prywatnym czy biznesowym], dla doqmentu opublikowanego przez inną osobę prywatną? w końcu Skype for Web jest już inkorporowany w outlook.com i jest coraz większa integracja pomiędzy Skype a SfB…
eN.
Najnowsze komentarze