2019-03-09
W systemie Windows użytkownicy mogą mieć uprawnienia (do plików, drukarek itp) oraz prawa (do wyłączenia komputera, do zalogowania itp). Tutaj przedstawiam dwie funkcje, które pracują z prawami użytkowników. Pierwsza z nich sprawdza, czy użytkownik ma przyznane prawo, a druga nadaje takie prawo.
Filozofia obu funkcji jest podobna. Polecenie secedit służy do wyeksportowania informacji o przyznanych prawach dla użytkowników oraz do zaimportowania tych informacji. Między eksportem a importem znajduje się trochę typowej PowerShellowej logiki, która sprawdza czy użytkownik ma przypisane prawo czy nie. Czytaj dalej »
2019-03-09
Czasami, kiedy chcesz usunąć plik lub katalog, możesz otrzymać komunikat mówiący o tym, że plik nie może być usunięty, bo jest otwarty przez inny proces. No tak, tylko jaki proces otworzył ten plik? Gdybym znał nazwę tego procesu mógłbym go zakończyć – normalnie lub z managera zadań, tylko jak ustalić co to za program?
Oto metoda:
- Uruchom program „Resource Monitor”, w tym celu kliknij start i wpisz nazwę resmon
- Przejdź do CPU >> Associated Handles i wpisz fragment nazwy pliku lub ścieżki pliku, którego planujesz usunąć
- Już za chwilę zobaczysz jakie pliki o nazwie pasującej do wprowadzonego wyrażenia są otwarte i jakie programy je otworzyły:
Teraz już wiadomo jaki proces trzeba zakończyć. Zresztą można to zrobić bezpośrednio w tym oknie. Kliknij dany proces prawym przyciskiem myszy i wybierz Zakończ
2019-03-06
SQL Server to nie tylko silnik bazy danych, ale także inne „spokrewnione” usługi. Moim celem było sprawdzenie, czy na serwerze jest zainstalowany replication services.
Metoda na to jest następująca. Odpowiednie narzędzie do tego celu to SQL Server Installation Center. Może się zdarzyć tak, że na serwerze jest dostępnych więcej wersji narzędzi. W takim przypadku należy wybrać tą odpowiednią, w moim przypadku 2016
Tutaj należy przejść do sekcji tools, w której znajduje się link do „Installed SQL Server feature discovery report”. Czytaj dalej »
2019-03-04
Python ma całe mnóstwo modułów, które pozwalają na wykonywanie prawie wszystkich operacji (no bez przesady, ale sporo można zrobić)!
Mamy moduł:
- requests – do wykonywania operacji na stronach webowych
- gzip lub zip – do kompresji plików (lub ogólniej danych)
- io – do wykonywania operacji wejścia wyjścia
- pandas – do przetwarzania danych
Jeśli dobrze się postarać można ze sobą połączyć te moduły i… pobrać plik, rozkompresować go i zaimportować do obiektu data frame!
Tutaj pobierzemy jeden z plików publikowanych na stronie EuroStat:
https://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?sort=1&dir=data
import pandas as pd
import requests, gzip, io
url = 'https://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?sort=1&file=data%2Faact_ali01.tsv.gz'
downloaded_file = requests.get(url)
unzipped_content = gzip.open(io.BytesIO(downloaded_file.content))
df = pd.read_csv(unzipped_content, delimiter='\t')
df.head()
w zależności od upodobań polecenie można skrócić:
import pandas as pd
import requests, gzip, io
url = 'https://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?sort=1&file=data%2Faact_ali01.tsv.gz'
with gzip.open(io.BytesIO(requests.get(url).content)) as unzipped_content:
df = pd.read_csv(unzipped_content, delimiter='\t')
df.head()
2019-03-04
MSDTC to jedna z usług, o której… lepiej nie słyszeć, bo jeśli o niej nie słyszysz, to znaczy, że wszystko działa, a jak już ktoś coś o niej powie, to często zaczyna się szukanie igły w stogu siana. Na szczęście konfiguracja usługi nie jest aż tak bardzo kłopotliwa.
Ta opowieść zaczyna się od kontaktu ze strony administratora, który stwierdził, że jego aplikacja nie łączy się do MS Distributed Transaction Coordinator-a.
Oczywiście należy zacząć od sprawdzenia czy usługa MSDTC w ogóle działa! Jeśli akcja działaby się na pojedyńczym serwerze wystarczyłoby przejrzeć usługi. W przypadku clustra, MSDTC jest zwykle konfigurowane jako usługa roli clustra:
Get-ClusterResource | where {$_.ResourceType -eq 'Distributed Transaction Coordinator'}
Name State OwnerGroup ResourceType
---- ----- ---------- ------------
New Distributed Transaction Coordinator Online SERVER_00123 Distributed Transaction Coordinator
Status online świadczy o tym, że usługa działa.
Kolejny pomysł to oczywiście pozamykane porty. Połączenie z MSDTC zaczyna się na porcie 135, a potem jest losowany port z zakresu 1024 do 65525. Po stronie serwera zazwyczaj istnieją już odpowiednie reguły w definicji firewall, wystarczy je włączyć.
To polecenie wyświetla reguły, które mają coś wspólnego z „distributed” lub „DTC”: Czytaj dalej »
2019-02-28
Po wpisaniu: „python -V” wyświetla się „NameError: name 'Python’ is not defined”
To jest mniej problem z Pythonem, a bardziej z konfiguracja systemu operacyjnego. Kiedy uruchamiasz polecenie, to system operacyjny musi je odnaleźć na dysku. System operacyjny nie przegląda za każdym razem wszystkich katalogów żeby znaleźć jeden prasujący program. W systemie operacyjnym jest zdefiniowana zmienna środowiskowa o nazwie PATH, która zawiera w sobie wszystkie katalogi, które w tej sytuacji mają być przeszukane.
Podczas instalacji, już na pierwszym ekranie pada pytanie, czy instalator ma dodać Python do ścieżki
Czytaj dalej »
2019-02-28
W skryptach PowerShell można korzystać ze zmiennych lokalnych (widocznych wewnątrz funkcji), zmiennych skryptu (widocznych w skrypcie) i zmiennych globalnych (widoczne wszędzie). Popatrz na taki przykład:
function Show-Variable()
{
echo "Inside the function: $MyVar"
$MyVar='BLUE'
}
$MyVar = 'GREEN'
echo "Outside the function: $MyVar"
Show-Variable
echo "Outside the function: $MyVar"
Jest tutaj funkcja, która wyświetla wartość zmiennej zdefiniowanej początkowo na poziomie skryptu. Pytanie, czy ta zmienna będzie widoczna dla funkcji i czy rzeczywiście uda się ją zmienić? Czytaj dalej »