Powershell vodič za početnike: Naučite Powershell skriptiranje
Što je PowerShell?
Windows PowerShell je objektno orijentirani motor za automatizaciju i skriptni jezik. Osmišljen je uglavnom za IT profesionalce i administratore sustava za kontrolu i automatizaciju administracije Windows OS i druge aplikacije. Pruža uvjerljive nove koncepte za proširenje znanja koje ste stekli i skripti koje ste izradili unutar Windows Naredbeni redak i Windows Script Host okruženja.
Kombinira fleksibilnost skriptiranja, brzinu naredbenog retka i snagu administrativnog alata temeljenog na GUI-u. Omogućuje vam učinkovito rješavanje problema pomažući administratoru sustava da eliminira buduće sate ručnog rada. Proći ćemo kroz sve važne aspekte koje biste trebali znati da biste naučili PowerShell.
Ovo je potpuni vodič za osnove Powershell skriptiranja… počnimo!
Zašto koristiti Powershell?
Evo nekoliko važnih razloga za korištenje Powershell-a:
- Powershell nudi dobro integrirano iskustvo naredbenog retka za operativni sustav
- PowerShell omogućuje potpuni pristup svim vrstama u okviru .NET
- Vjeruju administratori sustava.
- PowerShell je jednostavan način za manipuliranje komponentama poslužitelja i radne stanice
- Namijenjen je administratorima sustava stvaranjem jednostavnije sintakse
- PowerShell je sigurniji od pokretanja VBScript ili drugim skriptnim jezicima
PowerShell povijest
PowerShell prva verzija 1.0 objavljena je 2006. Danas je PowerShell u verziji 7.2. Kako su godina i verzija prolazile, PowerShell-ove mogućnosti i hosting okruženja značajno su rasli.
Pogledajmo povijest Powershell-a po verzijama:
- PowerShell verzija 1 podržava lokalnu administraciju Windows poslužitelj 2003
- PowerShell 2.0 integriran je s Windows 7 i Windows Poslužitelj 2008 R2. Ova verzija podržava udaljeni rad i poboljšava mogućnosti PowerShell-a kao što su transakcije, pozadinski poslovi, događaji, otklanjanje pogrešaka itd.
- PowerShell 3.0 objavljen je kao interni dio Windows okvir upravljanja. Instaliran je na Windows 8 i Windows Server 2012. Možete dodavati i planirati poslove, povezivanje sesije, automatsko učitavanje modula itd.
- PowerShell 4.0 je isporučen s Windows 8.1 i Windows Poslužitelj 2012 R2. U ovoj verziji dodana je podrška za konfiguraciju željenog stanja, poboljšano otklanjanje pogrešaka, mrežna dijagnostika.
- PowerShell 5.0 objavljen je kao interni dio Windows okvir upravljanja 5. Značajke koje se nude u ovoj verziji su daljinsko otklanjanje pogrešaka, definicije klasa, .NET enumeracije, itd.
- Objavljen je PowerShell 7.2. Izgrađen je na .NET 6.0. Ova verzija nudi nove operatore, pojednostavljen i dinamičan prikaz pogrešaka, automatske obavijesti o novoj verziji itd.
Zatim ćemo u ovom vodiču za Powershell skriptiranje naučiti o značajkama Powershell-a.
Značajke Powershell-a
- Uklanjanje PowerShell-a: PowerShell omogućuje pozivanje skripti i cmdleta na udaljenom računalu.
- Pozadinski poslovi: Pomaže vam da asinkrono pokrenete skriptu ili cjevovod. Svoje poslove možete izvoditi ili na lokalnom računalu ili na više daljinski upravljanih strojeva.
- Transakcije: Omogući cmdlet i omogućuje razvojnim programerima izvođenje
- Večer: Ova naredba vam pomaže da slušate, prosljeđujete i djelujete na upravljačke i sistemske događaje.
- Mrežni prijenos datoteka: Powershell nudi izvornu podršku za prioritizirani, asinkroni, prigušeni prijenos datoteka između strojeva pomoću tehnologije Background Intelligent Transfer Service (BITS).
Kako pokrenuti PowerShell
Sada ćemo u ovom vodiču za Powershell skriptu naučiti kako pokrenuti Powershell Windows OS.
PowerShell je unaprijed instaliran u svim najnovijim verzijama Windows. Moramo pokrenuti PowerShell za to moramo slijediti navedene korake:
Korak 1) Potražite PowerShell u Windows. Odaberite i kliknite
Korak 2) Otvara se prozor Power Shell
PowerShell Cmdlet
Cmdlet koji se također naziva Command let is a je lagana naredba koja se koristi u okruženju PowerShell baze Window. PowerShell poziva te cmdlete u naredbenom retku. Pomoću PowerShell APIS-a možete stvoriti i pozvati naredbu cmdlet.
Cmdlet protiv naredbe
Cmdleti se razlikuju od naredbi u drugim okruženjima naredbene ljuske na sljedeće načine?
- Cmdleti su . NET Framework objekti klase Ne može se izvršiti zasebno
- Cmdleti se mogu konstruirati od samo nekoliko desetaka redaka koda
- Cmdleti ne upravljaju raščlanjivanjem, formatiranjem izlaza i prikazom pogreške
- Cmdlets proces radi na objektima. Dakle, tok teksta i objekti ne mogu se proslijediti kao izlaz za cjevovod
- Cmdleti se temelje na zapisima jer obrađuju jedan po jedan objekt
Većina funkcionalnosti PowerShell-a dolazi iz Cmdlet-a koji je uvijek u formatu glagol-imenica, a ne množine. Štoviše, Cmdlet vraća objekte, a ne tekst. Cmdlet je niz naredbi, koji se sastoji od više od jednog retka, pohranjenih u tekstualnu datoteku s nastavkom .ps1.
Cmdlet se uvijek sastoji od glagola i imenice, odvojenih crticom. Neki od glagola koji se koriste za učenje PowerShell-a su:
- Dobiti — Da dobijem nešto
- početni plan — Voditi nešto
- Van — Izbaciti nešto
- zaustaviti — Zaustaviti nešto što teče
- Postaviti — Nešto definirati
- Novo — Stvoriti nešto
PowerShell naredbe
Slijedi popis važnih PowerShell naredbi:
Dobiti pomoć: Pomoć o PowerShell naredbama i temama
Primjer: Prikaz informacija pomoći o naredbi Format-Table
Get-Help Format-Table
Get-Command: Dobijte informacije o svemu što se može pozvati
Primjer Powershell skripte: Za generiranje popisa cmdleta, funkcija instaliranih na vašem računalu
Get-Command
Get-Service: Pronalazi sve cmdlete s riječju "usluga".
Primjer: nabavite sve usluge koje počinju s "vm"
Get-Service "vm*"
Get- Član: Pokažite što se može učiniti s predmetom
Primjer: Dohvatite članove vm procesa.
Get-Service "vm*" | Get-Member
Ostale naredbe:
- Get Module Prikazuje pakete naredbi
- Get Content Ovaj cmdlet može uzeti datoteku i obraditi njezin sadržaj te učiniti nešto s njim
- Get- get Pronalazi sve cmdlete koji počinju s riječju 'get-
Primjer: Stvorite mapu
New-Item -Path 'X:\Guru99' -ItemType Directory
Izlaz:
Powershell vrste podataka
Posebne varijable
Posebna varijabla | Description |
---|---|
$Error | Niz objekata pogreške koji prikazuju najnovije pogreške |
$Host | Prikažite naziv trenutne hosting aplikacije |
$Profil | Pohranjuje cijeli put 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 vrijednost FALSE |
$Istina | Sadrži TRUE vrijednost |
PowerShell skripte
Powershell skripte su pohranjene u .ps1 datoteci. Prema zadanim postavkama ne možete pokrenuti skriptu dvostrukim pritiskom na datoteku. Ovo štiti vaš sustav od slučajnog oštećenja. Da biste izvršili skriptu:
Korak 1: kliknite desnom tipkom miša i kliknite "Pokreni s PowerShell".
Štoviše, postoji pravilo koje ograničava izvršavanje skripte. Ovu politiku možete vidjeti pokretanjem naredbe Get-ExecutionPolicy.
Dobit ćete jedan od sljedećih rezultata:
- Ograničen— Skripte nisu dopuštene. Ovo je zadana postavka, tako da će se prikazati prvi put kada pokrenete naredbu.
- Svi Potpisani— Možete pokrenuti skripte koje je potpisao pouzdani programer. Uz pomoć ove postavke, skripta će tražiti potvrdu da je želite pokrenuti prije izvršenja.
- RemoteSigned— Možete pokrenuti svoje skripte ili skripte koje je potpisao pouzdani programer.
- Neograničen— Možete pokrenuti bilo koju skriptu koju želite pokrenuti
Koraci za promjenu politike izvršenja
Korak 1) Otvorite povišeni PowerShell prompt. Desni klik na PowerShell i "Pokreni kao administrator"
Korak 2) Unesite sljedeće naredbe
- Get-ExecutionPolicy
- Politika izvršavanja skupa neograničena
- Unesite Y u upit
- Get-ExecutionPolicy
Prva PowerShell skripta
U bilježnicu zapišite sljedeću naredbu
Write-Host "Hello, Guru99!"
PowerShell skripte imaju ekstenziju ps1. Spremite datoteku kao FirstScript.ps1
U Powershellu pozovite skriptu pomoću naredbe
& "X:\FirstScript.ps1"
Što je PowerShell ISE?
The Windows PowerShell Integrated Scripting Environment (ISE) zadani je uređivač za Windows PowerShell. U ovom ISE-u možete pokretati naredbe, pisati testove i ispravljati skripte u GUI okruženju u bazi prozora. Možete uređivati više redaka, bojati sintaksu, dovršavati kartice, selektivno izvršavati i mnoge druge stvari.
Windows PowerShell ISE vam također omogućuje pokretanje naredbi u oknu konzole. Međutim, također podržava okna koja možete koristiti za simultani pregled izvornog koda vaše skripte i drugih alata koje možete uključiti u ISE.
Možete čak otvoriti više prozora skripte u isto vrijeme. Ovo je posebno korisno kada ispravljate pogreške u skripti koja koristi funkcije definirane u drugim skriptama ili modulima.
Ista skripta koju smo kreirali u notepadu, može se kreirati u ISE
- Zalijepite kod u uređivač
- Spremi skriptu
- Koristite F5 za pokretanje skripte
- Promatrajte izlaz u konzoli
Uzorak 2:
Sljedeći kod će dati Free Virtualna memorija u vašem stroju
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell Concepts
Sada ćemo u ovom vodiču za Powershell za početnike naučiti o važnim konceptima Powershell-a:
Cmdlets | Cmdlet je naredba za izgradnju napisana u .net jezicima kao što su VB ili C#. Omogućuje razvojnim programerima da prošire skup cmdleta učitavanjem i pisanjem dodataka PowerShell. |
Funkcije | Funkcije su naredbe koje su napisane u PowerShell jeziku. Može se razviti bez korištenja drugih IDE-a Visual Studio i programeri. |
Skripte | Skripte su tekstualne datoteke na disku s nastavkom .ps1 |
Aplikacije | Aplikacije su postojeći Windows programi. |
Što ako | Kaže cmdletu da se ne izvrši, već da vam kaže što bi se dogodilo da se cmdlet pokrene. |
potvrditi | Uputite cmdlet da zatraži upit prije izvršavanja naredbe. |
verbalan | Omogućuje višu razinu detalja. |
Otkloniti neispravnost | Upućuje cmdlet da pruži informacije o otklanjanju pogrešaka. |
ErrorAction | Upućuje cmdlet da izvrši određenu radnju kada dođe do pogreške. Dopuštene radnje nastavak, zaustavljanje, tiho - nastavak i upit. |
ErrorVariable | Određuje varijablu koja sadrži informacije o pogrešci. |
OutVariable | Govori cmdletu da koristi određenu varijablu za čuvanje izlaznih informacija |
VanBuffer | Upućuje cmdlet da zadrži određeni broj objekata prije pozivanja sljedećeg cmdleta u cjevovodu. |
Prednosti korištenja PowerShell skripte
- PowerShell skripte su stvarno moćne i mogu učiniti mnogo stvari u manje redaka.
- Varijable su deklarirane u obliku $
- Varijable se mogu koristiti za držanje izlaza naredbi, objekata i vrijednosti.
- “Tip” varijable ne mora biti naveden.
PowerShell vs. Naredbeni redak
PowerShell | Command Prompt |
---|---|
PowerShell se duboko integrira s Windows OS. Nudi interaktivno sučelje naredbenog retka i skriptni jezik. | Naredbeni redak je zadano sučelje naredbenog retka koje pruža Microsoft. To je jednostavna win32 aplikacija koja može komunicirati i razgovarati s bilo kojim win32 objektom u Windows operacijski sustav. |
PowerShell koristi ono što je poznato kao cmdleti. Može se pozvati ili u runtime okruženju ili skriptama za automatizaciju. | Nema takvih značajki u naredbenom retku. |
PowerShell ih smatra objektima. Dakle, izlaz se može proslijediti kao ulaz u druge cmdlete kroz cjevovod. | Naredbeni redak ili čak *nix ljuska, izlaz generiran iz cmdleta nije samo tok teksta već zbirka objekata. |
PowerShell je vrlo napredan u pogledu značajki, mogućnosti i unutarnjeg funkcioniranja. | Naredbeni redak vrlo je jednostavan. |
Primjene Powershell-a
Danas je PowerShell postao idealan izbor za IT administratore budući da olakšava upravljanje operacijama i naporima u velikim korporativnim mrežama. Na primjer, pretpostavimo da upravljate velikom mrežom koja sadrži više od četiri stotine poslužitelja. Sada želite implementirati novo sigurnosno rješenje. Ovo sigurnosno rješenje ovisi o određenoj usluzi koja se mora izvoditi na tim poslužiteljima.
Sigurno se možete prijaviti na svaki poslužitelj i vidjeti je li ta usluga instalirana i pokrenuta ili ne. Međutim, sigurno je potrebno puno ljudskih pogrešaka jer vaše osoblje treba potrošiti mnogo vremena na ovaj neproduktivni proces.
Međutim, ako koristite PowerShell, ovaj zadatak možete izvršiti za samo nekoliko minuta. To je zato što se cijela operacija izvodi s jednom skriptom koja prikuplja informacije o uslugama koje se izvode na poslužiteljima.
Rezime
- Windows PowerShell je objektno orijentirani mehanizam za automatizaciju i skriptni jezik
- Powershell nudi dobro integrirano iskustvo naredbenog retka za operativni sustav
- PowerShell prva verzija 1.0 objavljena je 2006
- PowerShell omogućuje pozivanje skripti i cmdleta na udaljenom računalu
- PowerShell je unaprijed instaliran u svim najnovijim verzijama Windows
- Cmdlet je lagana naredba koja se koristi u Window bazi PowerShell okruženja
- Get, Start, Out, Stop, Set, New važne su PowerShell naredbe
- Boolean, Byte, Chat, Decimal, Decimal, Long važne su vrste podataka PowerShell-a
- $Error. $Host, $Profile, $PID, $PSUICulture, $NULL neke su posebne varijable koje se koriste u PowerShell-u
- The Windows PowerShell Integrated Scripting Environment (ISE) je zadani uređivač za PowerShell
- PowerShell se duboko integrira s Windows OS dok je naredbeni redak zadano sučelje naredbenog retka koje pruža Microsoft
- PowerShell je postao idealan izbor za IT administratore jer olakšava rad i napor upravljanja u velikim korporativnim mrežama