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ć.
- Należy przejść do IE -> Internet Options
- Na zakładce Security wybrać Custom Level
- Przewinąć prawie na sam dół. Jest tam sekcja Scripting
- Upewnić się, że opcja Active Scripting jest ustawiona na „Enable”
Enjoy!
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
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.
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.
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

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:
- Zamknij wszyskie procesy Outlooka (CTRL+Shift+Escape i w zakładce szczegóły pozamykaj wszystkie procesy outlook)
- Na pulpicie utwórz skrót do programu Outlook. We właściwościach skrótu ustaw, aby program startował w zmaksymalizowanym oknie.
- 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
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