Podstawy Zbiór wpisów od których warto zacząć przygodę z PowerShell

Analizowanie logów IIS za pomocą PowerShell

Analizowanie logów IIS za pomocą PowerShell

Zobacz jak szybko zmienić logi serwera Internet Information Services (IIS) w PSCustomObject. Dzięki temu dalsze analizowanie informacji o żądaniach do serwera IIS to czysta przyjemność 😉

Continue Reading

By

Read More

6 sposobów pobierania danych w PowerShell

6 sposobów pobierania danych w PowerShell

Większość automatyzacji, funkcji i skryptów PowerShell opiera się na danych wejściowych. Dane to procesujemy w najróżniejszy sposób – sprawdzamy, oczyszczamy, porównujemy, wzbogacamy, aby na wyjściu podjąć odpowiednie działania.

Najczęstszym sposobem wprowadzania danych do funkcji jest określanie wartości parametrów. Często jednak potrzebujemy danych z różnych źródeł w masowej ilości.

Dlatego poniżej 6 poleceń/skryptów PowerShell do pobierania danych z sześciu różnych lokalizacji.

Continue Reading

By

Read More

PowerShell podstawy – wstęp

powershell - podstawy

Windows PowerShell

Windows PowerShell to dojrzały język skryptowy oparty na .Net, którego od początku ogromną zaletą jest obiektowość, ale nie tylko. O tym dlaczego warto poznać PowerShell pisałem chociażby, tutaj – 9 powodów dlaczego warto (dobrze) znać PowerShell

Dlatego nie przedłużając zapraszam, do poznania podstawowych komendy i pojęć związanych z PowerShell, które wg mnie pozwalają na pierwsze kroki w interaktywnej pracy z tym rozwiązaniem.

Continue Reading

By

Read More

9 powodów dlaczego warto (dobrze) znać PowerShell

warto znać powershell

Prawdopodobnie, jeśli jesteś tutaj, to zastanawiasz się, czy warto inwestować swój czas w naukę PowerShell. 

Poniżej 9 punktów, które w mojej opinii przemawiają za tym, że warto.

Continue Reading

By

Read More

🎓Interpretowanie składni poleceń – wszystko co musisz wiedzieć!

Wiele poradników, książek, kursów o PowerShell zaczyna od podstawowych cmdletów takich jak Get-Command i Get-Help. Sam również polecam się z nimi zapoznać, jeśli zaczynasz naukę PowerShell.

Mimo że polecenia realizują inne zadania, to mają jedną wspólną rzecz. Dzięki jednemu i drugiemu poznasz składnie interesujących Cię poleceń.

polecenia PowerShell - interpretacja skladni poleceń
Continue Reading

By

Read More

🎓 Zasoby do nauki PowerShell na 2020 rok

Nowy rok jest zawsze dobrym momentem na nowe wyzwania, postanowienia, nawet jeśli głośno o nich nie mówimy. Jeśli w Twoim celem jest nauka PowerShell lub poszerzenie wiedzy na jego temat to ten post jest dla Ciebie.

Poniżej znajdziesz zebrane zasoby, które pomogą Ci uczyć się PowerShell w 2020 roku.

Continue Reading

By

Read More

Invoke-Command i błąd początkującego (ale nie tylko) 😐

Dzisiaj zacznę nietypowo. Spójrz na poniższy fragment kodu i odpowiedź na pytane. Czy to zadziała?

Jeśli od razu pomyślałeś, “nie ma mowy” to problem z przeniesieniem zmiennych lokalnych do poleceń zdalnych nie jest Ci obcy. Jeśli jednak miałeś wątpliwości (spoko, sporo osób je ma) to zapraszam Cię do wpisu, w którym wyjaśniam, dlaczego nie mogło to zadziałać.

Wszystkiemu winny jest…

Zakres sesji

Z zakresem sesji trzeba się zmierzyć, nie tylko używając Invoke-Command ale również Start-Job.

Lokalny skrypt jest wykonywany w zakresie innej sesji niż blok skryptu wykonany przez Invoke-Command lubStart-Job. Zdefiniowane zmienne $Path i $Desintation istnieją tylko w naszej (lokalnej) sesji. Natomiast w zdalnej po prostu ich nie ma, więc mają wartość $null.

Wykonaj poniższy przykład aby przekonać się, że to napisałem to prawda.

Działa to tak a nie inaczej, ponieważ PowerShell zakłada, że zmienne używane w zdalnych poleceniach zostaną tam zdefiniowane. Czyli PowerShell domyślnie oczekuje czegoś takiego.

Jest to jakieś rozwiązanie, jednak znacznie częściej będziesz chciał przekazać wartości z lokalnego skryptu (sesji) do sesji zdalnej. Co wtedy?

Zobacz 3 podejścia przeniesienia zmiennych lokalnych do poleceń zdalnych.

1. Zmienna automatyczna $args

Wykorzystaj parametr -ArgumentList polecenia Invoke-Command lub Start-Job do przekazania wartości zmiennych. Wartości te trafią (nie zawsze) do automatycznej zmiennej $args, którą wykorzystasz w bloku skryptu.

Zmienna $args jest tablicą, dlatego pierwszą wartość znajdziesz w $args[0], drugą w $args[1] i tak dalej.

2. Blok parametrów

Wykorzystaj w bloku skryptu, blok parametrów tak jak w skrypcie lub funkcji. Określ niezbędne parametry, których wartość następnie przekażesz podobnie jak wyżej, poprzez -ArgumentList.

Jeśli blok skryptu ma zadeklarowane parametry to zmienna automatyczna $args jest pomijana (stąd te nie zawsze), chyba że argumentów w -ArgumentList będzie więcej niż parametrów w bloku param().

3. Modyfikator zakresu `Using:`

Począwszy od PowerShell 3.0, sprawa uproszczono maksymalnie. Wystarczy skorzystać z modyfikatora zakresu Using:<nazwa zmiennej> aby przenieść zmienną lokalną do zdalnego polecenia.

W tym podejściu -ArgumentList jest kompletnie niepotrzebny. Tylko oznaczamy modyfikatorem w bloku skryptu, które zmienne lokalne zostaną użyte w zdalnej sesji.

Podsumowanie

We wpisie wyjaśniłem, dlaczego występuje problem z przeniesienia zmiennych lokalnych do poleceń zdalnych i jak sobie z nim radzić.

Ostatnia sprawa, jeśli nie musisz zapewniać kompatybilności z PowerShell 2.0 to wykorzystuj w pierwszej kolejności modyfikator sesji Using:.

Źródła:

By

Read More

× Close