Windows Server 2019: Jak zainstalować Edge?

2022-02-19

Domyślne linki pozwalające na instalację przeglądarki MS Edge na Windows Server 2019 nie działają… dzięki Microsoft!

Ale ten link zadziała:

https://www.microsoft.com/en-us/edge/business/download

Co istotne, może być wymagana zmiana ustawień bezpieczeństwa w IE, żeby instalator edge dało się pobrać.

  1. Należy przejść do IE -> Internet Options
  2. Na zakładce Security wybrać Custom Level
  3. Przewinąć prawie na sam dół. Jest tam sekcja Scripting
  4. Upewnić się,  że opcja Active Scripting jest ustawiona na „Enable”

Enjoy!

Azure: AzCli: Wybór subskrypcji z linii komend polenia az

2022-02-09

Gdy skrypt, który przygotowujesz musi pracować z róznymi tenantami i subskrypcjami przyda się wiedza na temat tego jak wybrać właściwą subskrypcję z linii komend. A robi się to tak:

Logowanie poleceniem az do Azure:

az login

Sprawdzenie „a gdzie to ja się właściwie zalogowałem”:

 az account show

{
  "environmentName": "AzureCloud",
  "homeTenantId": "7d*****-****-****-****-**********aa",
  "id": "cc******-****-****-****-**********78",
  "isDefault": true,
  "managedByTenants": [],
  "name": "Azure Pass - Sponsorship",
  "state": "Enabled",
  "tenantId": "7d*****-****-****-****-**********aa",
  "user": {
    "name": "m******@*****.pl",
    "type": "user"
  }
}

Identyfikator subskrypcji widać już właściwie powyżej w polu id.

Wyświetlenie dostępnych subskrypcji:

az account list --output table

Name                      CloudName    SubscriptionId                        State    IsDefault
------------------------  -----------  ------------------------------------  -------  -----------
Azure Pass - Sponsorship  AzureCloud   cce*****-****-****-****-**********78  Enabled  True
MSDN Platforms            AzureCloud   b0f*****-****-****-****-**********56  Enabled  False

Przełączenie się do innej subskrypcji:

az account set --subscription "MSDN Platforms"

To polecenie jest ciche, więc po wszystkim radziłbym ponownie wylistować konta i sprawdzić, czy aktywna jest właściwa subskrypcja

 

Więcej: https://docs.microsoft.com/pl-pl/cli/azure/manage-azure-subscriptions-azure-cli

By Rafał Kraik in Azure

Linux: Generowanie klucza SSH do logowania bez hasła

2022-01-13

XXI wiek, a ciągle używamy haseł? Bez haseł jest prościej i hahahah… bezpieczniej! Wiem, wiem, koniec końców to hasło gdzieś się tam pojawi, ale…

Jeśli między systemami opartymi o Linux/Unix chcesz logować się bez podawania hasła w oparciu o uwierzytelnie kluczem prywatnym i publicznym to:

Zacznij od wygenerowania tych kluczy. Służy do tego polecenie ssh-keygen. Polecenie zaproponuje zapisanie klucza prywantego w katalogu domowym w .ssh/id_rsa, a publicznego w .ssh/id_rsa.pub.

Taka lokalizacja nie jest zła, jeśli ten prywatny klucz chcesz zachować lokalnie na swoim komputerze, a publiczny przegrać na zdalną maszynę, która powinna akceptować Twoje logowanie bez prośby o hasło:

ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/boss/.ssh/id_rsa): 
/home/boss/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/boss/.ssh/id_rsa
Your public key has been saved in /home/boss/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tmvrlp4/kvgPulfa7Bl4qiD0bd2mNQwACtBLgi756gc boss@u20
The key's randomart image is:
+---[RSA 3072]----+
|=.  .            |
|o.o. .           |
|.+..  .          |
|o..    .         |
|...     S        |
| E.. . o *.      |
| .o o o.=BO      |
|.  o o..OX++     |
|...   +XX*=.     |
+----[SHA256]-----+

Tworząc te klucze można (i w sumie jest to zalecane), zabezpieczyć je hasłem. W takim  przypadku przed skorzystaniem z klucza prywatnego będziemy musieli najpierw go otworzyć podając to hasło.

Polecenie ssh-keygen pozwala na określenie dodatkowych parametrów kluczy jak, ich algorytm, czy długość.

Gdy klucz już jest wygenerowany, to należy go rozdystrybuować na systemy, które powinny go akceptować  i pozwalać logować się bez hasła. Zrobisz to poleceniem

ssh-copy-id username@host.address.com

Jeśli klucz publiczny miałby być wykorzystywany tylko na lokalnym serwerze, to należy go umieścić w pliku authorized_keys.

Jeśli masz więcej wygenerowanych kluczy, to możesz je przesyłać wybiórczo do zdalnego stystemu korzystając z opcji -i o tak:

ssh-copy-id -i ./servername username@host.address.com

gdzie servername to nazwa pliku z kluczem wygenerowanym wcześniej za pomocą ssh-keygen.

Od tej pory można się już łączyć do zdalnej maszyny przez

ssh username@host.address.com

Na docelowej maszynie plik powinien zostać umieszczony w katalogu domowym użytkownika w podkatalogu .ssh. Uwaga – ten podkatalog musi mieć w odpowiedni sposób zdefiniowane bezpieczeństwo: właścicielem musi być użytkownik, a uprawnienia powinny być odebrane dla grupy i innych (700)

Jeśli z jednego serwera chcesz łączyć się do większej liczby innych serwerów, możesz w katalogu ~/.ssh utworzyć plik config o zawartości podobnej jak ta:

# Control node
Host dbserv10
HostName dbserv11
PreferredAuthentications publickey
IdentityFile ~/.ssh/dbserv10

# Client node
Host dbserv11
HostName dbserv11
PreferredAuthentications publickey
IdentityFile ~/.ssh/dbserv11

Wykonując połączenie na konto user@hostname, zostanie pobrany od razu właściwy klucz.

 

 

By Rafał Kraik in Linuxy

Powershell: Odczyt dużego pliku z wykorzystaniem metod .Net

2022-01-11

Jeśli do przetworzenia jest dużo danych tekstowych i trzeba je np przefiltrować (coś w stylu polecenia grep). W takim przypadku przetwarzanie pliku przez Import-CSV albo Get-Content może być nieoptymalne, wolelibyśmy przetwarzać plik linia po linijce i … z pomocą mogą przyjść metody .NET

Poniższy przykład pochodzi z Reading And Writing To Files · Powerstart to Powershell reference book (dewin.me)

$path = "c:\d\myfile.txt"
$stream = [System.IO.StreamReader]::new($path)
while( -not $stream.EndOfStream) {
    $value =  [int]($stream.ReadLine())
    if (($value%10000) -eq 0) {
        write-host $value
    }
}
$stream.close()

Korzystając z klasy System.IO.StreamReader otwieramy plik, następnie przetwarzamy go aż do osiągnięcia końca pliku (while not end of stream) i przy każdym wykonaniu pobieramy jedną linijkę tekstu przez ReadLine(). Jeśli trzeba by było pobierać więcej danych w każdym kroku – można to zmienić.

Plik jest fizycznie odczytywany linia po linii z dysku, więc użycie pamięci przez program będzie zoptymalizowane.

 

By Rafał Kraik in Power Shell

Azure: Sprawdzenie stanu subskrypcji sponsorowanej (Azure Pass)

2022-01-09

Jeśli znalazł się ktoś miły i zasponsorował Ci dostęp do subskrypcji Azure, wysyłając Ci tzw. Azure Pass, to możesz chcieć zweryfikować ile kasy zostało jeszcze w tej subskrypcji. Zrobisz to łatwo wchodząc na stronę:

https://www.microsoftazuresponsorships.com/Usage

Stronka pozwoli wybrać subskrypcję (jeśli jesteś naciągaczem i masz ich kilka),

a potem na ładnym grafie pokaże jak bardzo jesteś rozrzutny/a

 

 

By Rafał Kraik in Azure

Outlook zawiesza się z ekranem „przetwarzanie” / „processing”

2022-01-01

Objawy:

Bez specjalnego powodu Outlook przestal się uruchamiać. Po kliknięciu ikony pojawia sie ekran „przetwarzanie” i okienko wisi w nieskończoność

Obejście/rozwiązanie:

Podobno w pewnych wersjach tak się może zdarzyć…  dlatego docelowym rozwiązaniem powinna być aktualizacja. Jeśli jednak chcesz, żeby po prostu Outlook wystartował, to spróbuj takiej sztuczki:

  1. Zamknij wszyskie procesy Outlooka (CTRL+Shift+Escape i w zakładce szczegóły pozamykaj wszystkie procesy outlook)
  2. Na pulpicie utwórz skrót do programu Outlook. We właściwościach skrótu ustaw, aby program startował w zmaksymalizowanym oknie.
  3. Gotowe – uruchom Outlooka – powinien się tym razem uruchomić 😉

A oto propozycje od Microsoft:

https://docs.microsoft.com/en-US/outlook/troubleshoot/performance/outlook-2016-hangs-at-processing

By Rafał Kraik in Helpdesk

Linux jest prosty? Ubuntu i ustawienie Python 3 jako domyślny

2021-12-26

Zwykle, kiedy chcemy uruchomić interpreter Pythona, to uruchamiamy komendę

python

Na Ubuntu domyślnie i owszem jest zainstalowany Python, ale nie pod domyślną nazwą „python”. Żeby uruchomić pythona należałoby napisać

python3

Taka konwencja bieże się z tego, że python był domyślnie instalowany na systemach linux jeszcze dawno temu, kiedy jedyną dostępną wersją był python2. Potem pojawił się python 3, ale nazwa „python” była już zajęta. Nowa wersja była więc dostępną pod nazwą python3. No i w sumie dobrze. Można było pracować z pythonem 2 wpisując python lub python2 oraz z pythonem 3 wpisujac python3.

Jeśli choć trochę znasz zasady pracy z Linuxem, to możesz powiedzieć, że żeby python3 byl dostępny pod nazwą python, to wystarczyłoby stworzyć dowiązanie symboliczne o nazwie python wskazujące na plik python3.

Możnaby było, ale… .w Ubuntu mamy do dyspozycji program update-alternatives, który pozwala dokładnie określać jaki program ma się uruchamiać jako odpowiednik pewnej wpisywanej komendy.  Można więc spowodować aby po wpisaniu python uruchamiał się python3. Wystarczy do tego jedna komenda:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1

A jeśli temat alternatywnych konfiguracji jest dla Ciebie ciekawy, to zajrzyj tu:

How to Use update-alternatives Command on Ubuntu

By Rafał Kraik in Linuxy