IT Akademia
Panel / ๐ŸชŸ Administracja Windows โ€” wnetrze i diagnostyka / Lekcja 6/8

PowerShell dla admina: obiekty, pipeline, remoting

โฑ 28 min ยท poziom 4/5
๐Ÿ“œ Wprowadzenie โ€” od historii do szczegolu 2006-dzis

PowerShell powstal z frustracji: administrowanie Windows przez klikanie nie dawalo sie zautomatyzowac ani powtorzyc. Jeffrey Snover w 'Monad Manifesto' (2002) zaproponowal powloke, w ktorej pipeline przekazuje obiekty, nie tekst โ€” i to zmienilo wszystko. Dzis kazde powazne zadanie admina Windows (i chmury) da sie zapisac jako skrypt.

Ta lekcja idzie dalej niz podstawy PowerShella z modulu Local IT (stad poziom 4). Od ogolnej filozofii obiektowego pipeline'u zejdziemy do konkretu, ktory skaluje administracje na cala flote: praca na obiektach i ich wlasciwosciach, filtrowanie i formatowanie oraz remoting (PSRemoting), czyli wykonywanie polecen na dziesiatkach zdalnych maszyn naraz.

Po tej lekcji bedziesz umiec:

PowerShell to nie 'ladniejszy cmd'. To powloka OBIEKTOWA: przez potok plyna obiekty .NET z wlasciwosciami i metodami, a nie strumien tekstu do parsowania. To zmienia wszystko.

Obiekty zamiast tekstu

W bashu `ps | grep` filtruje TEKST i musisz go rozcinac. W PowerShell `Get-Process` zwraca OBIEKTY procesow โ€” filtrujesz po wlasciwosci, sortujesz po liczbie, bez parsowania kolumn.

Get-Process |
  Where-Object CPU -gt 100 |
  Sort-Object CPU -Descending |
  Select-Object Name, Id, CPU -First 5

W konsoli wyglada to tak โ€” zauwaz, ze `Test-NetConnection` zwraca obiekt z polem `TcpTestSucceeded : True`, ktore mozesz od razu sprawdzic w warunku, bez parsowania:

Windows PowerShell
PS C:\> Get-Service -Name WinRMStatus Name DisplayName------ ---- -----------Running WinRM Zdalne zarzadzanie WindowsPS C:\> Test-NetConnection dc01 -Port 389ComputerName : dc01TcpTestSucceeded : TruePS C:\> _

Konwencja Verb-Noun i odkrywanie

Odruch eksperta: nie wiesz, co ma obiekt? `... | Get-Member`. To zamienia zgadywanie w wiedze o dostepnych polach i akcjach.

Execution policy โ€” to NIE zabezpieczenie

**Execution Policy** (Restricted/RemoteSigned/AllSigned/Bypass) ogranicza URUCHAMIANIE skryptow, ale to bariera przed przypadkiem, nie granica bezpieczenstwa (latwo obejsc). `RemoteSigned` (skrypty z sieci musza byc podpisane) to rozsadny domyslny kompromis.

Remoting โ€” jeden-do-wielu

**WinRM** napedza PowerShell Remoting. `Invoke-Command -ComputerName srv01,srv02 -ScriptBlock { Get-Service Spooler }` wykonuje kod na wielu maszynach naraz i zwraca OBIEKTY z kazdej. `Enter-PSSession` daje interaktywna sesje na jednym hoscie.

WMI/CIM โ€” inwentaryzacja i telemetria

**CIM** (nowoczesny nastepca WMI) daje dostep do setek klas systemowych: `Get-CimInstance Win32_LogicalDisk` (dyski), `Win32_OperatingSystem` (wersja/uptime), `Win32_Product` (aplikacje). To zrodlo danych do skryptow inwentaryzacyjnych i monitoringu.

Roznica od cmd: `Get-CimInstance` zwraca obiekt z polami liczbowymi (FreeSpace w bajtach), wiec mozesz od razu liczyc i porownywac, zamiast parsowac tekst z `dir`/`wmic`.
โœ… W skrocie
  • PowerShell przekazuje OBIEKTY .NET, nie tekst โ€” filtruj po wlasciwosciach (Where-Object), nie grep.
  • Potok: zrodlo -> Where-Object -> Sort-Object -> Select-Object.
  • Odkrywanie: Get-Member (pola/metody), Get-Help -Examples, Get-Command -Noun.
  • Skala: Invoke-Command -ComputerName ... (WinRM) uruchamia na wielu hostach; CIM = inwentaryzacja.

๐ŸŽฏ Cwiczenia podsumowujace

Gotowe? Oznacz lekcje jako ukonczona
Postep zapisuje sie automatycznie.
โ† Poprzednia Nastepna โ†’