Vodič za Powershell za početnike
⚡ Pametni sažetak
PowerShell Scripting je objektno orijentirani automatizacijski mehanizam izgrađen na .NET frameworku. Kombinira cmdlete, skripte i skriptni jezik kako bi pomogao IT administratorima u automatizaciji Windows, upravljati uslugama i povezivati udaljene strojeve iz jedne naredbene linije.

Što je PowerShell?
Windows PowerShell je objektno orijentirani automatizacijski mehanizam i skriptni jezik. Namijenjen je IT stručnjacima i sistemskim administratorima kojima je potrebna kontrola i automatizacija administracije Windows i druge aplikacije. PowerShell proširuje koncepte naučene u Windows Naredbeni redak i Windows Script Host s novim objektima, cmdletima i moćnim cjevovodom.
Kombinira fleksibilnost skriptiranja, brzinu naredbenog retka i dubinu GUI administratorskog alata. Pomoću njega administratori mogu učinkovito rješavati probleme i eliminirati sate ručnog rada. Ovaj vodič vodi vas kroz osnove koje su vam potrebne za učenje PowerShella od nule.
Zašto koristiti PowerShell?
Najvažniji razlozi za korištenje PowerShella su:
- Nudi dobro integrirano iskustvo naredbenog retka za operativni sustav.
- Pruža potpuni pristup svim vrstama u .NET frameworku.
- Vjeruju mu sistemski administratori u svim poduzećima.
- Omogućuje vam manipuliranje komponentama poslužitelja i radne stanice pomoću nekoliko redaka.
- Namijenjeno administratorima sustava s čistom sintaksom glagola i imenice.
- Sigurnije od trčanja VBScript ili drugi naslijeđeni skriptni jezici.
PowerShell povijest
PowerShell 1.0 prvi je put objavljen 2006. godine. PowerShell je sada u verziji 7.2 i novijoj. Kako su se izdanja isporučivala, njegove su mogućnosti i okruženja za hosting značajno rasle.
Povijest PowerShella po verzijama:
- PowerShell 1.0 — podržana lokalna uprava Windows 2003 poslužitelj.
- PowerShell 2.0 — integrirano s Windows 7 i Windows Server 2008 R2. Dodani su udaljeni rad, transakcije, pozadinski poslovi, događaji i otklanjanje pogrešaka.
- PowerShell 3.0 — isporučuje se s Windows 8 i Windows Server 2012 kao dio Windows Okvir za upravljanje. Dodani su zakazani poslovi, povezivanje sesija i automatsko učitavanje modula.
- PowerShell 4.0 — isporučuje se s Windows 8.1 i Windows Server 2012 R2. Dodana je konfiguracija željenog stanja, poboljšano otklanjanje pogrešaka i dijagnostika mreže.
- PowerShell 5.0 — dio Windows Management Framework 5. Dodano je udaljeno otklanjanje pogrešaka, definicije klasa i .NET nabrajanja.
- PowerShell 7.2 — izgrađeno na .NET 6.0. Dodaje nove operatore, dinamičke prikaze pogrešaka i automatske obavijesti o verzijama.
Značajke PowerShella
- Udaljeno upravljanje PowerShellom: pozivanje skripti i cmdleta na udaljenom računalu.
- Pozadinski poslovi: asinkrono izvršavati skripte ili cjevovode na lokalnom računalu ili mnogim udaljenim računalima.
- Transakcije: Omogućite cmdletima i programerima izvođenje grupiranih operacija koje se mogu zajedno potvrditi ili poništiti.
- Evening: osluškivati, prosljeđivati i djelovati na upravljačke i sistemske događaje.
- Mrežni prijenos datoteka: izvorna podrška za prioritetni, asinhroni, ograničeni prijenos datoteka između računala putem usluge Background Intelligent Transfer Service (BITS).
Kako pokrenuti PowerShell
PowerShell je unaprijed instaliran na svakoj novijoj verziji WindowsPokrenite ga na sljedeći način.
Korak 1) Potražite PowerShell u Windows, a zatim ga odaberite i kliknite.
Korak 2) Otvara se PowerShell prozor.
Cmdlet protiv naredbe
A cmdlet (izgovara se „command-let“) je lagana naredba koja se koristi u PowerShell okruženju. PowerShell poziva cmdlete na promptu, a možete stvoriti vlastite pomoću PowerShell API-ja. Cmdleti se razlikuju od tradicionalnih shell naredbi na sljedeće načine:
- Cmdleti su . NET Framework objekti klase; ne mogu se izvršavati kao samostalne izvršne datoteke.
- Cmdleti se mogu napisati u samo desetak redaka koda.
- Parsiranje, formatiranje izlaza i prikaz grešaka obrađuje runtime, a ne sam cmdlet.
- Cmdleti rade s objektima, tako da i tekstualni tokovi i objekti mogu teći kroz cjevovode.
- Cmdleti se temelje na zapisima i obrađuju jedan objekt istovremeno.
Većina PowerShell funkcionalnosti isporučuje se putem cmdleta, koji uvijek koriste obrazac imenovanja glagol-imenica (uvijek jednina). Cmdleti vraćaju objekte, a ne tekst. rukopis — za razliku od cmdleta — je niz naredbi pohranjenih u tekstualnoj datoteci s .ps1 produženje.
Uobičajeni glagoli koje ćete koristiti za učenje PowerShella uključuju:
- Dobiti — dohvatiti nešto.
- Start — pokrenuti nešto.
- Van — iznijeti nešto.
- zaustaviti — zaustaviti nešto što je u pogonu.
- Postaviti — definirati nešto.
- Novo — stvoriti nešto.
Važne PowerShell naredbe
Dobiti pomoć: pogledajte pomoć za PowerShell naredbe i teme.
Primjer: prikaz pomoći za Format-Table naredba.
Get-Help Format-Table
Get-Command: dobiti informacije o bilo čemu što se može pozvati.
Primjer: generiranje popisa cmdleta i funkcija instaliranih na računalu.
Get-Command
Get-Service: pronalazi sve usluge na stroju.
Primjer: dohvatite svaku uslugu čije ime počinje s „vm“.
Get-Service "vm*"
Pridruži se članu: pokazati što se može učiniti s objektom.
Primjer: popis članova vm servisa koje vraća Get-Service.
Get-Service "vm*" | Get-Member
Ostali korisni cmdleti:
Get-Module— prikaz instaliranih paketa naredbi.Get-Content— pročitati datoteku i obraditi njezin sadržaj.Get-*zamjenski znak — navedite sve cmdlete koji počinju s „Get-“.
Primjer: stvaranje mape.
New-Item -Path 'X:\Guru99' -ItemType Directory
Izlaz:
Vrste podataka PowerShella
PowerShell podržava standardne .NET tipove podataka tako da bilo koju vrijednost možete čisto pohraniti u varijablu.
Posebne varijable
PowerShell nudi niz ugrađenih posebnih varijabli. Najkorisnije su navedene u nastavku.
| Posebna varijabla | Description |
|---|---|
| $Error | Niz objekata pogrešaka koji predstavljaju najnovije pogreške. |
| $Host | Prikazuje naziv trenutne aplikacije za hosting. |
| $Profil | Pohranjuje punu putanju korisničkog profila za zadanu ljusku. |
| $PID | Pohranjuje identifikator procesa. |
| $PSUICulture | Sadrži naziv trenutne kulture korisničkog sučelja. |
| $NULL | Sadrži praznu ili null vrijednost. |
| $False | Sadrži logičku vrijednost FALSE. |
| $Istina | Sadrži logičku vrijednost TRUE. |
PowerShell skripte
PowerShell skripte se pohranjuju u .ps1 datoteke. Prema zadanim postavkama, ne možete pokrenuti skriptu dvostrukim klikom na nju - ova zaštita štiti sustav od slučajne štete. Za izvršavanje skripte kliknite je desnom tipkom miša i odaberite "Pokreni s PowerShellom".
Pravila izvršavanja kontroliraju koje se skripte smiju izvršavati. Pogledajte trenutna pravila pomoću Get-ExecutionPolicyMoguće vrijednosti uključuju:
- Ograničen — skripte nisu dopuštene. Ovo je zadana postavka.
- Svi Potpisani — pokreću se samo skripte koje je potpisao pouzdani programer, a svaka zahtijeva potvrdu.
- RemoteSigned — pokreću se vaši vlastiti skripti, plus potpisani skripti iz pouzdanih izvora.
- Neograničen — može se pokrenuti bilo koja skripta (koristite štedljivo).
Koraci za promjenu pravila izvršenja:
Korak 1) Otvorite PowerShell upit s povišenim privilegijama tako da desnom tipkom miša kliknete PowerShell i odaberete Pokreni kao administrator.
Korak 2) Izvršite naredbe u nastavku.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- ući
Yna upit za potvrdu. Get-ExecutionPolicy
Prva PowerShell skripta
Otvorite Notepad i upišite:
Write-Host "Hello, Guru99!"
Spremite datoteku s a .ps1 proširenje - na primjer, FirstScript.ps1.
U PowerShellu pokrenite skriptu sa:
& "X:\FirstScript.ps1"
Što je PowerShell ISE?
The Windows Integrirano okruženje za skriptiranje PowerShella (ISE) je zadani uređivač za PowerShell. U ISE-u možete pokretati naredbe, pisati testove i ispravljati skripte u grafičkom okruženju temeljenom na prozoru. Podržava uređivanje više redaka, bojanje sintakse, dovršavanje tabulatorom, selektivno izvršavanje i još mnogo toga.
PowerShell ISE također nudi konzolnu ploču koja izravno pokreće naredbe, dok bočne ploče prikazuju izvor vaših skripti i sve alate priključene na ISE. Možete otvoriti više prozora skripti odjednom - korisno prilikom otklanjanja pogrešaka u skriptama koje ovise o funkcijama definiranim u drugim skriptama ili modulima.
Ponovno stvorite raniji skript u ISE-u:
- Zalijepite kod u editor.
- Spremi skriptu.
- Pritisnite F5 da biste ga pokrenuli.
- Promatrajte izlaz u oknu konzole.
Uzorak 2: Sljedeći skript prikazuje besplatno virtualna memorija na stroju.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Sljedeći koncepti čine vokabular svakodnevnog rada s PowerShellom.
| Koncept | Description |
|---|---|
| Cmdlets | Ugrađene naredbe napisane u .NET jezicima kao što su VB ili C#. Programeri proširuju skup učitavanjem ili pisanjem PowerShell snap-inova. |
| Funkcije | Naredbe napisane u samom PowerShell jeziku, bez potrebe za IDE-om, kao što je Visual Studio. |
| Skripte | Tekstualne datoteke na disku s .ps1 produženje. |
| Aplikacije | Postojeći Windows programi koji se pozivaju iz ljuske. |
| Što ako | Naređuje cmdletu da se ne izvrši, već da opiše što bi se dogodilo ako bi se to dogodilo. |
| potvrditi | Upućuje cmdlet da prije izvršavanja prikaže upit. |
| verbalan | Pruža višu razinu operativnih detalja. |
| Otkloniti neispravnost | Daje uputu cmdletu da emitira informacije za otklanjanje pogrešaka. |
| ErrorAction | Definira što cmdlet radi u slučaju pogreške. Dopuštene vrijednosti: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Imenuje varijablu koja sadrži informacije o pogrešci. |
| OutVariable | Naređuje cmdletu da pohrani svoj izlaz u određenu varijablu. |
| VanBuffer | Sadrži određeni broj objekata prije nego što ih pošalje niz cjevovod. |
Prednosti korištenja PowerShell skripti
- PowerShell skripte su moćne i koncizne - možete postići mnogo u samo nekoliko redaka.
- Varijable se deklariraju s
$<variable>sintaksa. - Varijable mogu sadržavati izlaz naredbi, objekte i primitivne vrijednosti.
- Tip varijable ne mora biti eksplicitno naveden.
PowerShell u odnosu na naredbeni redak
| PowerShell | Command Prompt |
|---|---|
| Duboko integriran s WindowsNudi interaktivnu komandnu liniju i potpuni skriptni jezik. | Zadano sučelje naredbenog retka koje pruža MicrosoftJednostavna Win32 aplikacija koja komunicira s drugim Win32 objektima. |
| Koristi cmdlete koji se mogu pozvati interaktivno ili putem skripti za automatizaciju. | Nema cmdleta. |
| Tretira izlaz kao objekte tako da može teći u drugi cmdlet kroz cjevovod. | Izlaz je običan tok teksta, a ne objekti. |
| Napredan u značajkama, mogućnostima i unutarnjoj arhitekturi. | Osnovna ljuska, prikladna za naslijeđene batch zadatke. |
Primjene PowerShella
PowerShell je postao standardni izbor za IT administratore jer dramatično smanjuje napor u velikim korporativnim mrežama. Zamislite da upravljate s više od četiristo poslužitelja i uvodite novo sigurnosno rješenje koje ovisi o određenoj usluzi koja se izvodi na svakom hostu.
Ručna prijava na svaki poslužitelj je spora i sklona greškama. Jedna PowerShell skripta može pregledati svaki poslužitelj u nekoliko minuta, izvijestiti koji hostovi već pokreću uslugu, pa čak i omogućiti je na ostalima. Skripta jednom bilježi namjeru i pouzdano je primjenjuje na cijelom posjedu.
















