WSL: Bash na Windows:

2023-12-19

Podczas instalacji WSL (Windows Subsystem for Linux), czyli popularnie rzecz ujmując Linuxa na Windows dostałem taki oto błąd:

The attempted operation is not supported for the type of object referenced. Error code: Wsl/Service/0x8007273d

Przed tym błędem wykonywałem isntalację w taki sposób, że:

  1. Odinstalowałem WSL w „Odinstalowałem WSL w „Programs and Features” w „Turn Windows features on or off” i… zrobiłem restart
  2. Jako administrator uruchomiłem cmd, a w nim wykonałem polecenie
    wsl –install
    i… zrobiłem restart
  3. Po restarcie wylistowałem dostępne dystrybucje:
    wsl -l -o
    i wybrałem sobie dystrybucję Ubuntu (co zresztą dzije się domyślnie)
    wsl –install -d Ubuntu
    No i tu właśnie wyskoczył wspomniany błąd.
  4. Tak trafiłem na stronę [SOLUTION] „The attempted operation is not supported for the type of object referenced.” error after Windows Update · Issue #547 · MicrosoftDocs/WSL (github.com), która podała przepis, jaki u mnie zadział, chociaż nie od razu 🙂

Ogólnie rzecz biorąc zaczyna sie od dodania do rejestru kilku wpisów:

Zgadnij, co było dalej – tak … restart

Próba uruchomienia WSL nadal kończyła się błędem. I wtedy zrobiłem jeszcze dwie rzeczy:

wsl --shutdown
netsh winsock reset

A potem…. restart. Po tych operacjach wszystko zadziałało.

Jeśli u Ciebie nie działa, to zwróć jeszcze raz uwagę na:

  • uruchamiaj polecenia „jako administrator”
  • wykonuj restarty po każdym kroku
  • podczas klikania polecenia „uruchom ponownie” przytrzymaj na klawiaturze SHIFT. Powoduje to pełnu rozruch systemu.

Aktualizacja:

Na jednym „upartym komputerze” pomogło jeszcze uruchomienie:

bcdedit /set hypervisorlaunchtype off

… i restart i:

bcdedit /set hypervisorlaunchtype auto

… i restart

te komendy wziąłem stąd: https://github.com/MicrosoftDocs/WSL/issues/547

By Rafał Kraik in Helpdesk

Azure, powershell i SQL

2023-12-18

Technologie się mieszają… tutaj zobaczysz, jak w Azure SQL Database utworzyć konto użytkownika korzystając z PowerShella.

Zaczynamy od doinstalowania modułu SQLPS pozwalającego na połączenie z poziomu PowerShell do bazy danych (https://learn.microsoft.com/en-us/sql/powershell/download-sql-server-ps-module?view=sql-server-ver16):

Install-Module -Name SqlServer

No to pora na połączenie się do subskrypcji:

Connect-AzAccount
Select-AzSubscription -Subscription XXX

Mój przypadek wymagał zdefiniowania zmiennych przez zmienne środowiskowe, ale śmiało można by skorzystać ze zwykłych zmiennych:

# set environment

$env:RG = "RG-Test-Mobilo"
$env:SQLServerName= "sql-test-mobilo"
$env:sqlcmdserver = "$($env:SQLServerName).database.windows.net"
$env:sqlcmddbname="ssqldb-mobilo"
$env:USERNAME="boss"
$env:PWD="***"
$env:SQLQUERY="select @@version"$env:newUser = "my_new_user"
$env:newUserPass = "C0mpl1c4t3d-Pass!"

Do połączenia do bazy Azure SQL Database wymagane jest otwarcie firewalla. Jest to jedno z ustawień bazy danych i można je ewentualnie wykonać np. w Portalu, ale czemu by nie wykorzystać PowerShella:

$myPublicIp=(Invoke-WebRequest -uri "http://ifconfig.me/ip").Content
New-AzSqlServerFirewallRule -ResourceGroupName $env:RG -ServerName $env:SQLServerName -FirewallRuleName "Rule-$myPublicIp" -StartIpAddress $myPublicIp -EndIpAddress $myPublicIp

No to pora na testowe połączenie:

Invoke-SqlCmd -Query $env:SQLQUERY -ServerInstance $env:SQLCMDSERVER -Database $env:SQLCMDDBNAME -Username $env:USERNAME -Password $env:PWD

Jeśli w odpowiedzi zobaczysz wersję serwera – bingo! Można uruchomić polecenie tworzące użytkownika:

Invoke-SqlCmd -Query "CREATE USER $($env:newUser) WITH PASSWORD='$($env:newUserPass)' ; ALTER ROLE db_owner add member $($env:newUser);" -ServerInstance $env:SQLCMDSERVER -Database $env:SQLCMDDBNAME -Username $env:USERNAME -Password $env:PWD

No i na koniec można ponowić uruchomienie testowego zapytania, ale tym razem korzystając z konta nowego użytkownika:

Invoke-SqlCmd -Query $env:SQLQUERY -ServerInstance $env:SQLCMDSERVER -Database $env:SQLCMDDBNAME -Username $env:newUser -Password $env:newUserPass

By Rafał Kraik in Azure

Kurs AZ-900 pytania i rozmowa kwalifikacyjna

2023-12-02

Samodzielna nauka jest trudna. Nie ma z kim porozmawiać, nie ma jak się upewnić, że już rzeczywiście coś umiem, albo czego nadal nie znam. Kurs Azure pytania przed egzaminem AZ-900 ma to zmienić.

Ten kurs to uzupełnienie tradycyjnych kursów AZ-900. Nie ma wykładu, ale są pytania. Na ekranie pojawia sie znak zapytania, film można zatrzymać, zastanowić się nad odpowiedzią, a potem wznowić odtwarzanie i posłuchać dobrej odpowiedzi z uzasadnieniem.

Idealne gdy:

  • przygotowujesz się do egzaminu i chcesz sprawdzić swoją wiedzę
  • znasz już trochę Azure i zamiast przechodzić przez pełny kurs, chcesz po prostu zdiagnozować swój poziom przygotowania
  • przygotowujesz się do rozmowy kwalifikacyjnej, gdzie mają się pojawić pytania o Azure

Kurs jest dostępny na Udemy – szczegóły na www.kursyonline24.eu

By Rafał Kraik in Aktualności

Helpdesk: Windows: Outlook: 0x800CCC1A

2023-12-01

Masz taki błąd?

Zadanie „user@domain.pl – Odbieranie” zgłosiło błąd (0x800CCC1A): „Serwer nie obsługuje określonego typu szyfrowania połączenia. Spróbuj zmienić metodę szyfrowania. Aby uzyskać dodatkową pomoc, skontaktuj się z administratorem serwera poczty lub usługodawcą internetowym.”

I zepsuło się samo?

I nic nie zmieniałeś/aś?

Używasz „od zawsze” tego konta i zawsze działało?

I dzisiaj przestało?

Jedno konto działa, a inne nie, albo zepsuły się wszystkie?

Na telefonie nadal działa?

Na innych stronach radzą naprawiać plik pst, zmieniać numery portów albo instalować aktualizacje?

To powiem tak – chociaż lubię Microsoft i uważam system Windows i Outlook za bardzo dopracowane, to jednak czasami…. zwykły restart komputera potrafi zdziałać cuda.

Weź chłopie zrestartuj komputer (najlepiej przytrzymując klawisz Shift, co powoduje pełny restart). W każdym razie u mnie już działa

By Rafał Kraik in Helpdesk

Terraform: auto-complete

2023-11-13

Domyślnie komendy i podkomendy dla terraforma trzeba znać, ale… można też pozwolić nauczyć się ich shellowi BASH (co dotyczy oczywiście tylko tych użytkowników, którzy pracują z BASHem).

Wystarczy wpisać polecenie:

terraform --install-autocomplete

Po tej komendzie wymagany jest restart shell-a lub ponowne wczytanie profilu, a potem…. po wpisaniu komendy terraform można nacisnąć tabulator raz lub dwa razy i zobaczysz podpowiedź, co można w swoim poleceniu napisać dalej:

By Rafał Kraik in Azure

Azure: Kurs przygotowujący do egzaminu AZ-104

2023-11-07

AZ-104 to pierwszy profesjonalny egzamin na drodze administratora i architekta Azure. Ma on opinię dość ciężkiego egzaminu, bo pytania dotyczą szerokiego zakresu wiedzy, a tytuł administratora Azure, który zdobywa się po tym egzaminie zobowiązuje do dość szczegółowej wiedzy.

Dla wszystkich kandydatów przygotowaliśmy już drugi kurs przygotowujący: „AZ-104 Administrator Azure – Identity & Governance„.

Główne tematy kursu to:

  • Wprowadzenie do Entra ID (Azure Active Directory)
  • Zarządzanie użytkownikami i grupami, a w szczególności:
    • konta gości
    • service principal
    • managed identity
    • grupy dynamiczne
    • automatyzacja w wykorzystaniem powershella i bulk operations
  • Porównanie licencji
  • Jednostki organizacyjne
  • Urządzenia w EntraID
  • Zarządzanie w skali:
    • Resource Group, Subscription, Management Group
    • Koszty i budżety
    • Policy i Initative
    • Self Password Reset
    • Access Review
  • Uprawnienia RBAC i role, w tym tworzenie custom rules
  • Bezpieczeństwo:
    • Multifactor authentication
    • Conditional Access

Drugi kurs, a właściwie pierwszy, bo był wydany wcześniej to „AZ-104 Administrator Azure – Storage„.

Łącznie oba kursy pokrywają już ponad 60% materiału wymaganego do opanowania na egzamin. Wszystko z licznymi przykładami, testami, po polsku i z nutką humoru.

Zapraszamy!

By Rafał Kraik in Aktualności

Helpdesk: Używanie konta GMail do automatyzacji

2023-11-05

Chcesz skonfigurować drukarkę, żeby automatycznie wysyłała faksy? A może chcesz codziennie dostać na maila raport o ilości wolnego dysku na domowym serwerze? A może po prostu chcesz z poziomu programu, czy skryptu wysłać sobie maila? W takim przypadku musisz skonfigurować, drukarkę, czy skrypt do korzystania z serwera SMTP. Jest jednak drobny problem. Ileś tam lat temu, żeby wysłać maila wystarczyło znać nazwę użytkownika i hasło i było to mocno wykorzystywane przez spamerów. Dlatego konfiguracja SMTP jest chyba obecnie jedną z najcięższych dla administratora, a i dla programisty wiele się zmieniło. Jeśli chcesz użyć SMTP programistycznie musisz wygenerować sobie odpowiedni token, tzw. application password. Tutaj pokażę, jak to zrobić z kontem GMAIL.

  1. Udaj się na https://security.google.com/settings/security/apppasswords. Jest to strona, która pozwala zdefiniować app passwords. Jednym z utrudnień dla spamerów ma być to, że wszelkie automaty używające Twojego konta pocztowego powinny mieć swoje hasła, nie mogą one korzystać z hasła, jakim zabezpieczasz całe swoje konto.
  2. Wymyśl jakąć nazwę aplikacji, np. „Drukarka Xerox” albo „Mój skrypt XYZ”. Po kliknięciu Create zostanie wyświetlone hasło.

    Uwaga: hasłem są poszczególne literki/cyferki, spacje między nimi już nie.
  3. Teraz przejdź do konfiguracji poczty wychodzącej Twojej drukarki, albo skryptu. Np. ustawienia na mojej drukarce są takie:

    a tak wygląda konfiguracja connectora email na Azure:

    a tak wygląda skrypt w pythonie:
import smtplib
 
mailFrom = 'Your automation system'
mailTo = ['XXX@wp.pl','YYY@gmail.com']
mailSubject = 'Processing finished successfully'
mailBody = '''Hello
This mail confirms that processing has finished without problems,
Have a nice day!'''
 
message = '''From: {}
Subject: {}
 
{}
'''.format(mailFrom, mailSubject, mailBody)
 
user = 'my_user@gmail.com'
password = '***********'
 
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(user,password)
server.sendmail(user, mailTo, message)
server.close()
print('mail sent')
By Rafał Kraik in Helpdesk