Windows: Webex: Komunikat o braku domyślnego programu pocztowego

2021-10-14

Masz sobie Webexa, z jego wszystkimi funkcjami integrującymi np. kalendarz Outlooka z harmonogramem spotkań. Outlook jest w ustawieniach Windowsa ustawiony jako domyślny. Niestety, kiedy Webex startuje, narzeka na brak programu domyślnego. O co chodzi!?

Podejrzewam, że to kwestia niekończących się zmian w Windows. Wskutek tego Webex sprawdza program domyślny tam, gdzie Outlook go nie wpisuje.

Na szczęście łatwo to poprawić.

  • Otwórz rejestr (regedit.exe) – jak zwykle zachowaj ostrożność, bo łatwo coś uszkodzić
  • W rejestrze poszukaj ścieżki
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
  • Tutaj znajdziesz klucz Default. Pewnie będzie pusty. Kliknij go i wpisz
Microsoft Outlook
  • Zrestartuj Webexa i powinno już wszystko być OK 🙂

By Rafał Kraik in Helpdesk

Linux: środowisko programistyczne

2021-09-29

Do czego może sie przydać Liux GUI? Biuro? Gry? A może środowisko dla programisty? Tutaj umieszczam komendy przygotowujące moją stację do pracy z Visual Studio Code, GIT, Azure CLI i terraform

Instalacja Visual Studio Code i git na Ubuntu

# download from https://code.visualstudio.com/download
sudo apt install ./code_1.62.3-1637137107_amd64.deb 

sudo apt install git


git clone https://github.com/......
code

Instalacja AZ CLI na Ubuntu

sudo apt install curl
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
 az login

Instalacja terraform na Ubuntu:

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform
terraform --version

I instalacja open ssh – tak dla wygody:

sudo apt-get install openssh-server
sudo systemctl  start ssh
sudo systemctl  enable ssh
By Rafał Kraik in Linuxy

Linux: Skryptowanie w BASH – kurs z podręcznikiem PDF – promocja

2021-09-07

Oto nasz nowy kurs: Administrator Linux: Skryptowanie w BASH.

Dlaczego ten temat?

  1. Bo to właśnie skryptowanie pozwala na automatyzację pracy administratora, więc w końcowym efekcie odciąża go od pracy
  2. Bo BASH, mimo iż powstał wiele lat temu, do dzisiaj właściwie niewiele się zmieił
  3. Bo BASH lub jemu podobne shelle występują w najnowszych rozwiązaniach chmurowych
  4. Bo automatyzajca w połączeniu  ze standaryzacją pozwala jednemu administratorowi zarządzać nie kilkoma serwerami. ale setkami i tysiącami serwerów

W tym kursie:

  • nauczysz się automatyzować pracę administratora
  • programowanie w BASHu rozpoczniesz od podstaw
  • zobaczysz zastosowanie skryptów na praktycznych przykładach
  • dzięku dołączonemu podręcznikowi PDF z notatką i zadaniami będziesz w stanie samodzielnie i w kontrolowany sposób samodzielnie pisać skrypty – już od pierwszych lekcji

Jeśli temat wydaje Ci sie ciekawy, to od 8 do 12 września 2021 możesz kupić ten kurs w promocyjnej premierowej cenie korzystając z kuponu TERAZBASH. Zresztą kupon zadziała tez na pozostałe nasze kursy – pełna lista w profilu autora: Rafał Mobilo | Microsoft Certified Trainer | Udemy

By Rafał Kraik in Aktualności

Linux: Montowanie zdalnego dysku (samba, network share)

2021-09-06

Do zmontowania zasobu sieciowego można wykorzystać polecenie:

sudo mount -t cifs //192.168.2.20/Gigabajtus ./fax -o user=faxuser
[sudo] password for boss: 
Password for faxuser@//192.168.2.20/Gigabajtus:  ***********

faxuser to użytkownik zdalny (majacy dostęp do zdalnego share)

boss to lokalny użytkownik z uprawnieniami do sudo

Pierwsze haslo podajemy dla sudo, a drugie, to haslo zdalnego użytkonika zasobu sieciowego

Takie montowanie pozwoli wprawdzie wyświetlić dane z zasobu sieciowego, ale do zapisu trzeba by jeszcze dodać uid= i guid=. Dlaczego? Lokalny użytkownik uzyskujący dostęp do zdalnych zasobów, jako tako – nie ma tam zdefiniowanych uprawnień, bo jest użytkownikiem lokalnym. Dodanie tych opcji powoduje, że operacje wykonywane na zdalnym zasobie będą „mapowane” tak, jakby uruchamiał je użytkownik z określonym uid i guid

Polecenie może nawet wyglądać tak:

sudo mount -t cifs //192.168.2.20/Gigabajtus ./fax -o user=faxuser,uid=1000,gid=1000

Teraz zostaniemy tylko zapytani o haslo, ale jeśli do polecenia dodamy jeszcze password, to żadnego pytania już nie będzie:

sudo mount -t cifs //192.168.2.20/Gigabajtus ./fax -o user=faxuser,password='remote-password',uid=1000,gid=1000

No to pięknie. Taka komenda o nic nie pyta, więc może dałoby się montować zasoby zdalne automatycznie? Zazwyczaj posłuujemy się do tego plikiem fstab, ale… ten plik jest czytelny dla wszystkich, a my musielibyśmy tam umieścić haslo. To zły pomysł. Zamiast tego można utworzyć plik na dysku o następujacej zawartości:

user=faxuser
password=remote_password
#domain=myDomain

Teraz można już posłużyć się poleceniem bez hasła, które wykorzysta ten plik:

sudo mount -t cifs //192.168.2.20/Gigabajtus ./fax -o credentials=/home/boss/.sambaclient/config-cams.ini,uid=1000,gid=1000

Ponieważ plik zawiera haslo…. lepiej byloby zadbać o nadanie właściwych uprawnień…  np. 600. Admin i tak podejrzy, ale przecież montowanie i tak jest wykonywane przez admina, więc haslo jest mu znane.

Oto jak może wyglądać zawartość pliku fstab:

//192.168.2.20/Gigabajtus  /home/boss/fax   cifs  credentials=/home/boss/.sambaclient/config-cams.ini,uid=1000,gid=1000,iocharset=utf8  0  0

Od tej pory zdalny zasób sieciowy będzie instalowany automatycznie po bootowaniu systemu

https://wiki.samba.org/index.php/Mounting_samba_shares_from_a_unix_client

https://unix.stackexchange.com/questions/68079/mount-cifs-network-drive-write-permissions-and-chown

Auto-mount Samba / CIFS shares via fstab on Linux

By Rafał Kraik in Linuxy

SQL: Skrypt zmieniający i przywracający konfigurację

2021-08-13

Zaawansowane skrypty muszą czasami skorzystać z opcji zapisanych w tabeli sys.configurations. Te zmiany wykonuje się procedurą sp_configure. Co istotne, jeśli przed uruchomieniem skryptu jakaś opcja była wyłączona (lub włączona), to po zakończeniu tego skryptu ta opcja powinna być w tym samym nie zmienionym stanie.

Oto propozycja takiego rozwiązania:

--remember original settings for OLE Automation Procedures
DECLARE @initialShowAdvancedOptions sql_variant = (SELECT value_in_use FROM sys.configurations WHERE name='show advanced options')

IF @initialShowAdvancedOptions = 0
BEGIN
              EXEC sp_configure 'show advanced options', 1
              RECONFIGURE WITH OVERRIDE
END

-- do something

--return to original settings
IF @initialShowAdvancedOptions = 0
BEGIN
              EXEC sp_configure 'show advanced options', 0
              RECONFIGURE WITH OVERRIDE
END

 

By Rafał Kraik in SQL

Windows: wyszukiwanie w event log (dziennik zdarzeń)

2021-08-13

Event log to… „wielki śmietnik” pełen mnóstwa ciekawych informacji. Problemem jest tylko wygrzebanie istotnej informacji.

Potrzebowałem np. sprawdzić, kto logował się interaktywnie do sysytemu w ciągu ostatnich 24 godzin. W tym celu stworzyłem „Custom View”, a w nim zbudowałem warunki filtrujące. To nie było trudne, bo event id dla zdarzenia logowanie to 4624. Problem tylko w tym, że w tym zdarzeniu, w EventData znajduje się pole Logon Type i za logowanie interaktywne odpowiada Logon Type równy 3. Ponieważ jednak każde zdarzenie ma nieco inne właściwości, to nie można wybrać Logon Type w kreatorze.

Na szczęście Event Viewer bazuje na XML i można zbudować w edytorze swoje własne zapytanie, które u mnie wyglądało mniej więcej tak:

<QueryList>
 <Query Id="0" Path="Security">
 <Select Path="Security">*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) &lt;= 86400000]]]</Select>
 <Select Path="Security">*[EventData[(LogonType=3)]]</Select>
 </Query>
</QueryList>

Wprawdzie po modyfikacji XML traci się możliwość wyklikiwania w tym widoku czegokolwiek z poziomu kreatora, ale to na tyle proste sprawy, że ponowne wyklikanie idzie dość szybko.

Osobiście jednak preferuję skrypt, każdorazowe klikanie, wklejanie XML, to nie dla mnie.

Można więc włożyć powyższy XML do cmdletu Get-WinEvent i …. gotowe. W przykładzie poniżej wybieram tylko 3 ostatnie logowania, ale śmiało można brać wszystkie:

$xmlQuery = @'
<QueryList>
 <Query Id="0" Path="Security">
 <Select Path="Security">*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) &lt;= 86400000]]]</Select>
 <Select Path="Security">*[EventData[(LogonType=3)]]</Select>
 </Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery -MaxEvents 3 | ft -wrap
By Rafał Kraik in Power Shell

Sieć: Jak sprawdzić czy port jest otwarty

2021-08-02

Zacznijmy od tego, co to znaczy, że port jest otwarty? Dla mnie to sytuacja kiedy jestem w stanie podłączyć sie z zewnątrz do usługi nasłuchującej na tym porcie. Ponieważ port można zamykać lub odfiltrowywać na różnym poziomie (lokalny firewall, firewall na routerze itp.), to właściwie pytanie należałoby doprezycować. Czy port jest otwarty dla połączenia przychodzącego z x.y.z?

Dlatego nic lepiej nie sprawdzi otwartości portu, jak bezpośrednie połączenie z wybranej zewnętrznej maszyny.

Dla Windows:

W powershellu wykonaj

Test-NetConnection -computer <adres_serwera_docelowego> -port <numer portu>

Dla Linux/Unix

W shellu wykonaj:

telnet <adres_serwera_docelowego> <port>

Jeśli telnet byłby niedostępny skorzystaj z nmap lub zainstaluj telneta

dnf install telnet

 

By Rafał Kraik in Helpdesk