Powershell: Włączanie usługi na komputerze z publicznym profilem sieci

2020-06-20

Do włączenia remotingu na komputerze lokalnym poinciana wystarczyć następująca komenda uruchamiana „jako administrator”

Enable-PSRemoting

Jeśli jednak wśród interfejsów sieciowych znajduje się chociaż jeden oznaczony jako publiczny, to ta komenda może nie włączyć remotingu.

WinRM firewall exception will not work since one of the network connection types on this machine is set to public. Change the network connection type to either Domain or Private and try again

Pomocna jest wtedy opcja -SkipNetworkProfileCheck, która pomija sprawdzanie profili sieciowych. Można tu jeszcze dodawać parametr -force, dzięki czemu nie jesteśmy pytani o żadne dodatkowe potwierdzenia:

Enable-PSRemoting -SkipNetworkProfileCheck -force

Bywa jednak, że mimo to wszystko konczy się komunikatem o błędzie:

WSManFault Message Access is Denied.

No jak to? Uruchamiam program jako administrator i mam komunikat o braku dostępu? Jeśli nie admin, to kto może włączyć remoting?
Otóż na komputerach niewłączonych do domeny, komenda wymaga aby uruchamiał ją prawdziwy administrator, a nie ktorś kto jest członkiem grupy lokalnie administratorzy – ot taka niespodzianka ze strony Microsoft. Takie działanie polecenia można jednak zmienić dodając wpis do rejestru:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

po wykonaniu tego polecenia, włączenie remotingu powinno się już udać:

Enable-PSRemoting -SkipNetworkProfileCheck -force

Jeśli zaś trzeba by było zmienić profil sieciowy z publicznego, np. na prywatny, to można wykorzystać następne komendy w potoku:

Get-NetConnectionProfile  -NetworkCategory Public | Set-NetConnectionProfile -NetworkCategory Private

Pierwsza z nich pobiera połączenia publiczne, a druga zmienia ich klasyfikację na prywatne. Przed uruchomieniem upewnij się, że chociaż jeden interfejs jest publiczny, bo jeśli nie, to komenda skończy się błędem z powodu pustego potoku 🙂

By Rafał Kraik in Power Shell

Pilot do bramy Beninca TO.GO – kopiowanie/programowanie

2020-06-12

Objawy

Czarny pilot z żółtymi przyciskami. No cóż – bateria się rozładowała i po wymianie baterii, pilot nie chce otwierać bramy.

Leczenie

Niektóre piloty można przekopiować i ten do nich należy. Trzeba tylko wiedzieć jak. U mnie zadziałała taka metoda:

1. Na NOWYM pilocie naciśnij jednocześnie oba klawisze i trzymaj je wciśnięte. Światełko na pilocie na początku świeci stałym światłem, po około 5 sekundach zaczyna mrugać szybko, potem wolno, a potem świeci ciągłym światłem. Dojście do tego ostatniego etapu zajmuje może około 15-30 sekund, a Ty ciągle trzymasz wciśnięte oba przyciski. Nie puszczaj

2. STARY pilot kładziesz obok NOWEGO i na STARYM jeden raz krótko naciskasz przycisk. Klik i koniec, a w tym czasie cały czas trzymasz wciśnięte oba przyciski na NOWYM.

3. Coś tam pomruga i wtedy można puścić oba przyciski na NOWYM. Daj mu chwilę na dojście do siebie i przetestuj go

Instrukcja:

https://www.mobilo24.eu/wp-content/uploads/2021/12/togo_2a.pdf

(strona 8 – Quick cloning)

By Rafał Kraik in Helpdesk

Python: Pandas: Zmiana kolejności kolumn w data frame

2020-05-31

Kiedy pracujesz z danymi często startujesz od pewnego zbioru danych, do którego dodajesz kolejne i kolejne kolumny. Koniec końców część z tych kolumn nie jest już potrzebna, a część jest nie tam, gdzie wizualnie byś chciał. Jak zrobić z tym porządek?

Bardzo prosto! Wystarczy przepisać do nowego obiektu dataframe dane pobierane z oryginalnego data frame w określonej kolejności. Przy okazji jeśli coś jest już więcej niepotrzebne, to możesz to opuścić, a jeśli kolumn jest dużo, a ty chcesz po prostu ostatnią kolumnę wstawić na początek, to wystarczy po prostu korzystać z operatora slice podczas definiowania listy kolumn do skopiowania.

Zobacz, jak to się robi w oparciu o poniższy kod:

import pandas as pd

data = [ 
 [11,12,13,14],
 [21,22,23,24],
 [31,32,33,34],
 [41,42,43,44] 
 ]
df = pd.DataFrame( data = data, 
 columns=('one', 'two', 'three', 'four'))

df

df = df[['four','three','two','one']]

df

cols = df.columns.to_list()

df[cols[-1:] + cols[:-1]]
By Rafał Kraik in Python

Python: Pandas: Multiindex dla data frame

2020-05-31

Zazwyczaj kiedy pracujemy z data frame i mamy dane powstające wskutek grupowania wpadamy na pomysł założenia multiindeksu dla wierszy. Jednak czasami specyfika danych jest taka, że nawet struktura w kolumnach ma postać pogrupowaną, więc zgodną ze strukturą multiindeksu. Jak więc zbudować multiindeks zarówno na wierszach, jak i na kolumnach? Oto prosty przykład, który ilustruje ten proces:

Więcej na ten temat: https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html

import pandas as pd

colindex = pd.MultiIndex.from_tuples(
    (('Green','L'),('Green','XL'),('Blue','L'),('Blue','XL')),
     names=('Color','Size')
 )

rowindex = pd.MultiIndex.from_tuples(
    (('T-Shirt','Class 1'),('T-Shirt','Class 2'),
     ('Jeans','Class 1'),('Jeans','Class 2')),
    names=('Type', 'Quality')
)

data = [
    [11,12,13,14],
    [21,22,23,24],
    [31,32,33,34],
    [41,42,43,44]
]

df = pd.DataFrame(data = data,
       index = rowindex,
       columns = colindex)

df
By Rafał Kraik in Python

Python: Pandas: Wyświetlanie liczb float z określoną precyzją

2020-05-31

W idealnym świecie idealnie jest wyświetlać każdą liczbę z maksymalną dokładnością, ale… świat nie jest idealny. Bywa, że wyliczoną wartość 1.0000001 wolelibyśmy wyświetlić po prostu jako 1. Jedną z możliwością byłoby wykonanie odpowiednich obliczeń na DataFrame i pozbycie się problemu właściwie raz na zawsze. Jeśli jednak wolisz po prostu zmienić parametry tak, aby dane wyświetlały się z mniejszą liczbą cyfr po przecinku wystarczy zmienić parametr

pd.options.display.float_format

W tej zmiennej określasz styl formatowania, który będzie wykorzystywany podczas wyświetlania liczb zmienno-przecinkowych. Jedna instrukcja i po sprawie!

import pandas as pd


pd.options.display.float_format = "{:,.10f}".format

x = [ [0.123456789, 0.987654321],
 [0.123456789, 0.987654321]]
pd.DataFrame(x)
By Rafał Kraik in Python

Kurs: Wprowadzenie do Azure. Egzamin AZ-900

2020-05-26

Utrzymanie wysokiego poziomu wiedzy jest w IT zupełnie naturalna. Są jednak takie chwile, kiedy dbałość o kwalifikacje jest szczególnie ważna. Takie czasy zbliżają się wraz z kryzysem po epidemii. W tej bardzo niekorzystnej sytuacji, trzeba próbować znajdować okazje. Ciekawostką jest to, że w czasie miesięcy kwarantanny zdalne formy nauczania zyskały na popularności. Przyczyn można pewnie upatrywać w ograniczonych możliwościach szkoleń stacjonarnych, ale również większej ilości wolnego czasu, kiedy nie można korzystać ze sportu,  spacerów, kina i innych rozrywek.  Z całą pewnością ci, którzy zamiast Netflixa zdecydowali się na zdobywanie nowych kwalifikacji, mogą powiedzieć, że wychodzą z kwarantanny wzmocnieni o nową wiedzę.

Mówi się, że na naukę nigdy nie jest za późno. Dlatego nawet jeśli kwarantanna już za nami, proponuję wzmocnić się kursem  o Azure:

Kurs ma dwa główne cele:

  • Wprowadzenie do korzystania z MS Azuzre. Liczy sie tutaj umiejętność poruszania w portalu Azure, pracy z podstawowymi usługami Azure, ale też znajomość zasad rozliczania opłat, obliczania SLA, korzystania ze wsparcia technicznego, terminologii stosowanej w pracy z chmurą
  • Przygotowanie do egzaminu Azure Fundamentals AZ-900. Wymogi egzaminacyjne są publikowane na stronie Microsoft i od czasu do czasu aktualizowane. Ten kurs jest zgodny ze stanem wymagań z roku 2020.

Budowanie kompetencji w Azure może być tym bardziej interesujące, że Microsoft rozpoczął w Polsce budowanie nowego regionu Azure. Wartość inwestycji to ok. 1 mld USD. Wydaje się więc, że już niebawem firmy wspierające i korzystające z Azure będą poszukiwać specjalistów w tym zakresie: administratorów, programistów, project managerów, architektów, analityków i specjalistów w innych dziedzinach – nawet księgowych!

Więcej na ten temat:

https://www.centrumxp.pl/Publikacja/Azure-dociera-do-Polski-Microsoft-buduje-centrum-danych-nad-Wisla

 

Daj się porwać chmurze Azure!

By Rafał Kraik in Aktualności

R: Invalid argument: Graphics error: Plot rendering error

2020-05-06

Oprogramowanie Open Source jest fajne. Ciągle się dziwię i nadziwić się nie mogę, jak to się dzieje, że darmowe i na prawdę dobre oprogramowanie istnieje i się rozwija. Przecież stoją za nim ludzie, którzy poświęcają swój czas w celu tworzenia oprogramowania za darmo (!) i z otwartym kodem (!!). Dlatego jeśli napotkasz błąd w Open Source, postaraj się poszukać rozwiązania, bez wyrzutów względem autorów. Znając tych szlachetnych ludzi, to i tak pewnie chętnie poprawią błędy…

No dobrze, ostatnimi czasy podczas generowania wykresów i ogólnie grafiki w R, ale też w Python zdarzyło się spotkać błąd:

'Invalid argument’ Graphics error: Plot rendering error

Chwila grzebania po sieci, pozwoliła ustalić, że możliwa przyczyna to  polskie literki występujące w nazwie użytkownika. Tymczasem wiele programów pracuje z plikami tymczasowymi, które są tworzone w katalogu tymczasowym użytkownika… w efekcie pliki tymczasowe w nazwie zawierały polskie literki i to się już bibliotekom graficznym nie podobało…

Obejściem problemu jest zmiana katalogu na pliki tymczasowe. Kliknij prawą myszką na „Komputer” i wybierz właściwości:

W polu oznaczonym jako „6” wprowadź ścieżkę do katalogu na dysku, który będzie wykorzystywany jako katalog na pliki tymczasowe, np. c:\temp. Upewnij się oczywiście, że ten katalog jest na dysku.

Potem zapisz zmiany, zrestartuj komputer i już powinno wszystko być dobrze!

 

 

By Rafał Kraik in R