Skip to Content

IT nieuczesane.
author

Author: nExoR

mój zewnętrzny IP

Windows_PowerShell_icondość częste pytanie, jak się ma dynamiczny adres IP. najłatwiej oczywiście wejść na jakąś stronę, która ten adres pokazuje. ale lepiej napisać sobie skrypt (:

nie jest to skomplikowane, wystarczy użyć invoke-webRequest, który jest świetną przeglądarką textową. do testów wybrałem stronę ‚http://whatismyipaddress.com’ ale można wybrać dowolny inny. po wejściu od razu widzę, że jestem przekierowany na ‚http://whatismyipaddress.com/pl/moj-ip’. żeby oszczędzić sobie trochę grzebaniny robię inspekcję elementu, gdzie jest adres i widzę. że jest to DIV o ID=’section_left’. można to olać, ale przyda się żeby trochę zawęzić wyszukiwanie.

teraz z linii poleceń.

na początek trzeba się zaznajomić z obiektem więc warto sprawdzić:

polecam sprawdzić jeszcze $page.links oraz $page.images – może się kiedyś przydać. po wykonaniu

będzie już widać kawałek interesującego kodu. teraz trzeba wyłowić IP. do tego celu warto zrobić wyrażenie regularne, bo do tego są niezastąpione. np. takie super-proste, które po prostu szuka czterech liczb oddzielonych kropką, gdzie każda liczba ma od 1-3 cyfr:

do celów skryptu można by się poważyć o napisanie porządnej walidacji, czyli dodatkowo, żeby te liczby miały wartości od 1-255. ale to nie ten wpis. po przepuszczeniu wyniku będzie wyświetlone IP:

można teraz się dalej bawić, potestować na innych stronach, analizując elementy zwracanej strony. nie takie trudne (:

eN.

słowo o prywatności

privacytaka anegdotka na chwilę refleksji…

oddałem ostatnio stare kasety VHS i Hi8 do dygitalizacji. przed przekazaniem zapytałem, czy dostanę jakiś certyfikat, zapewniający, że materiał nie zostanie skopiowany ani wykorzystany bez mojej wiedzy. pan się uśmiechną, pokiwał głową i powiedział

‚wie Pan, przez tyle lat przychodziło tu tyle osób, nawet jacyś ambasadorzy, osoby publiczne…. i nikt nigdy nie prosił o takie zaświadczenie…’

eN.

 

nieautoryzowany email do zmiany hasła office365

ciekawy przypadek

firma X qpiła klientowi licencje i założyła tenant office365. projektu nie zrealizowała i przeszedł na nas. pozmienialiśmy wszystkie dane, przepięliśmy konto Global Admina, łącznie z ‚aternative mail address’. można to zrobić z interfejsu, a z PS wygląda to tak:

i niby wszystko załatwione….

ale zupełnie przypadkiem postanowiłem sprawdzić zmianę hasła i moim oczom ukazało się:

Microsoft Online Password Resetprzy czym ten drugi adres, należał do osoby z firmy X.

przeczesałem wszystkie znane miejsca i nigdzie tego adresu nie ma. w panelu o365 również widać tylko podstawowy.

o365 support

bardzo rozczarowało mnie wsparcie o365. wysłałem ticket jako partner obsługujący klienta, z oznaczeniem ‚critical – security breach’. przy każdej wymianie korespondencji były mi proponowane te same kroki, te same pytania, wysłałem screenshoty, wysłałem PSR (problem steps recoder) i nadal dostawałem instrukcję jak zmienić email przez portal o365. po kilq mailach ticket został zamknięty z informacją mniej-więcej ‚ten problem to nie problem’.  nie było eskalacji, po prostu nie potrafił rozwiązać to zamknął. łoś.

rozwiązanie

trochę mi zajęło, ale znalazłem miejsce, gdzie zapisany został drugi adres. trzeba założyć AzureAD [tak na prawdę pod spodem i tak się zakłada, ale cały portal manageazure jest nieaktywny], wyedytować właściwości domeny, włączyć usługę ‚Reset Password’ i przejść do skonfigurowania maila. okazuje się, że jest to oddzielna baza, do której nie ma innego dostępu [?]. poniżej kroki w obrazkach:

  • założenie portalu AAD

EnterAzureAD

  • Przejście do konfiguracji domenyResetPassword00
  • włączenie Reset Password. następnie trzeba przejść na stronę gdzie można skonfigurować dane [zaznaczone]ResetPassword01
  • i już widok samej strony gdzie są skonfigurowane daneResetPassword02

eN.

disconnect-msolService

qmgdzie jest disconnect-msolService?

nie jest to sesja – tak jak dla exchange online.

zajrzeć jak to działa się nie da, bo to dll’ki.

…na grzebanie po bebechach i reverse nie mam czasu /:

eN.

OneDrive for business – sync

TVtaki mały trick… ponieważ po raz kolejny rozwaliła się lokalna biblioteka, i ponieważ po raz kolejny straciłem czas i nerwy, a do normalnej wersji zostało jeszcze ok. pół roq, mały tips, który może oszczędzi komuś zgrzytów:

  • jeśli otworzy się bibliotekę z Edge albo FF to zostanie się przekierowanym na stronę z downloadem całego office2o13 – zainstaluje się 1GB po to, żeby był klient OneDrive2o13, i zaczyna tak bruździć, że pozostaje tylko usunięcie profilu użytkownika.
  • ale jak otworzy się z IE, to okazuje się, że ten klient z office16 zawiera odpowiedniego klienta i jednak potrafi synchronizować, i wtedy na jakiś czas znów można korzystać…

… aż znów z niewiadomych powodów zacznie się kaszanić. średnio biblioteka współdzielona wytrzymuje mi ok. miesiąca i zaczyna się rozjeżdżać /:

kilka rzeczy, których robić nie wolno, bo generują problemy [nie zawsze, ale lepiej unikać], dla bibliotek z wymuszeniem check-in:

  • zapisywać plik z Internetu/załącznik z maila. chodzi o ADS, który bloqje synchronizację
  • nadpisać plik. trzeba usunąć, wymusić sync i nagrać
  • korzystać z aplikacji, które robią lock na plikach

eN.

CSV, SSV… ? ULSLSSV!

Windows_PowerShell_iconwpis z cyklu ‚człowiek uczy się całe życie’ (; od zawsze pluję się, że durny Excel pliki CSV – Comma Separated Value – zapisuje/odczytuje jako Semicolon Separated Value z niewyjaśnionych przyczyn.

okazuje się, że sprawa jest bardziej skomplikowana i to nie jest ani CSV, ani SSV tylko ULSLSSV – czyli User Language Specyfic List Separator Separated Value (;

listSeparator

o ile dla US „List separator” to przecinek, więc dla Amerykanów CSV to CSV o tyle dla Polaków „List separator” to średnik… jest to dodatkowe utrudnienie na które trzeba uważać w skryptach bo mogą uruchamiać je osoby o różnych ustawieniach regionanych. o ile głupotą jest że CSV to SSV kod jest prosty:

a prawidłowo-bezpiecznie, w skryptach trzeba uważać i zamienić to na:

eN.

SecureString

Windows_PowerShell_iconscenariusz użycia

używanie SecureStringów w PS jest poniekąd wymuszone – w taki sposób przechowywane są hasła, np. w credentialsach:

SecureString przydaje się do przechowywania haseł, używanych w skryptach – np. skrypt do automatycznego podpięcia licencji office365, który wymaga podania credsów użytkownika z uprawnieniami co najmniej ‚User Manager’. można hasło zapisać w pliq jako SS a potem wewnątrz skryptu je odczytać i użyć do złożenia credsów:

bezpieczeństwo SS

rodzą się natychmiast pytania o bezpieczeństwo SecureString – czy takie hasło da się odszyfrować i jak łatwo? hasło jest szyfrowane kluczem, który generowany jest na podstawie hasła użytkownika, a masterkey jest przechowywany na komputerze lokalnym. odpowiedzialne jest za to DPAPI – tutaj znajdziecie więcej informacji. klucz jest przechowywany w $env:USERPROFILE\Application Data\Microsoft\Protect\<GUID>. w efekcie

  • plik jest nie do odczytania na innej maszynie
  • plik jest nie do odczytania przez innego użytkownika

czyli nic da ‚wykradzenie’ pliq lub użycie go w kontexcie innego użytkownika.

są potencjalnie metody potrafiące złamać klucz [np. hawkeye inject], ale nie znalazłem praktycznego opisu i na pewno nie są to metody na poziomie script kiddie. można zatem uznać, że jest to świetne narzędzie dla skryptów, które wymagają podania hasła.

addendum

na koniec – jak  odczytać hasło zapisane jako SS? podam dwie metody – dla devów i dla opsów (;

dla devów:

dla opsów:

po zbudowaniu obiektu credential z wcześniejszego przykładu, mamy zmienną $creds

eN.

port ping upd

Update-icon

update do poprzedniego wpisu – można bez tooli zewnętrznych zrobić tą samą operację przy pomocy test-netConnection

ziemq, dzięki za update (:

ale o co cho z captchą – nie wiem. testowałem i nie mam żadnych obrazqw q:

eN.

port ping

repairjak szybko sprawdzić czy dostępna jest już konkretna usługa/aplikacja na hoście? najlepiej sprawdzić czy port jest otwarty. można użyć telnetu ale jeśli czekamy na usługę i chcemy wykonywać testy co jakiś czas, aż do sqtq – będzie to bardzo denerwujące, ponieważ telnet jest bardzo siermiężny.

lepiej jest pingować port – co można uzyskać np, przy pomocy psping z sysinternalsowych narzędzi.

eN.

NoDrive for business

driveflagowy produkt chmurowy do pracy grupowej – przestrzeń plików OneDrive… rozwiązanie na rynq – od wielu lat. powstał z usługi groove, którą pamiętam jeszcze z 2oo7. korzystał z niej chyba tylko eMeS (; potem przerodził się w SkyDrive, a za chwilę w OneDrive, ze względu na roszczenia do nazwy przez brytyjską stację. została nazwa klienta – groove.exe.

OneDrive został zintegrowany z w8, i za chwilę doczekał się nowej, szaleńczej nazwy – OneDrive for Business New Generation Sync Client. sam akronim mógłby być wyrazem – ODfBNGSC [ O_o’ ] . literek jak w podręczniq do nauki alfabetu, a co potrafi ten klient? ponoć charaktryzuje się ‚większą wydajnościa i stabilnością’.

w końcu opublikowano oficjalną roadmapę dla klienta NGSC opisującą jakie to mega-ficzery pojawią się w najbliższym update, dostępnym w ciągu najbliższych 2tyg. ale.. ale najważniejszy zapowiedziany jest dopiero na jesień!

SharePoint Document Library Sync—We’re adding SharePoint Online document library sync, starting with a preview in the third quarter of 2016, with general release by the end of 2016.
na tą chwilę aby korzystać z biblioteki współdzielonej, konieczne jest skorzystanie ze starego klienta groove. tutaj jest kilka dziwnych scenariuszy – niby klient załączony jest do office 2o16… ale czasem nie jest. nie chce mi się dochodzić kiedy i jak to działa, bo strawiłem godziny na reinstalację wszystkiego kilqkrotnie. komponent instalujący ‚OneDrive for Business for office 2o13‚ zajmuje 1GB a co więcej – wydaje się, że nowy office 2k16 nie jest z nim kompatybilny w efekcie czego jedynym sposobem jest otwieranie dokumentów via przeglądarka Web. tak mi paraliżowało to pracę że finalnie przeinstaowałem cały system [LoL – jak w 9o’], bez instalacji dodatkowego komponentu wskazanego w linq. i to jest właśnie największa bolączka wszystkich dotychczasowych wersji tego klienta: brak możliwości debugowania i reperacji.
nie ma również na ten temat w zapowiedziach – ani debugowania, ani logowania, ani reperacji błędów synchronizacji. być może przestanie to być takie krytyczne, jeśli klient zacznie w końcu działać porządnie, ale obecnie sytuacja jest żenująca. w przeważającej ilości przypadqw, jedynym sposobem naprawy problemów synchronizacji jest jej wyłączenie i powtórne włączenie, co wiąże się założeniem kolejnego katalogu i powtórnej, pełnej synchronizacji. w przypadq jeśli biblioteka ma kilka-kilkanaście GB to nie jest zabieg miły ani przyjemy. podobnie sama instalacja potrafi tak namotać, że nie wystarczy nawet przeinstalowanie pojedynczych komponentów.
pozostaje być cierpliwym i do końca roku przecierpieć i liczyć na to, że ODfBNGSC będzie w końcu działał jak należy, bo  wpływ na efektywność pracy w obecnej postaci, jest olbrzymi /:
eN.