Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Kako napisati i pokrenuti PowerShell skripte. Uvod u Windows PowerShell

Kako napisati i pokrenuti PowerShell skripte. Uvod u Windows PowerShell

Postoje stvari koje kao administratori radimo svaki dan. Windows mreža, ali ako se od nas traži da ih koristimo naredbeni redak, Za razliku od Linux administratori, za nas, Windows administratori, ovo bi bilo vrlo problematično. Windows je uvijek bio slab kada je riječ o alatima naredbenog retka. Po mom mišljenju, od tada se sve promijenilo dolaskom Windowsa Powershell. Korištenjem Powershell-a (ili PS-a drugim riječima) možete izvesti toliko različitih funkcija koje prije nismo mogli. U ovom ćemo se članku usredotočiti na to kako nam Powershell može pomoći u izvođenju nekih uobičajenih mrežne funkcije iz naredbenog retka. Nastavite čitati kako biste saznali više!

Što je Powershell?

Powershell se može instalirati funkcija Windows Server 2008: Da biste instalirali Powershell, morate instalirati značajku Powershell pomoću čarobnjaka za dodavanje značajki. Proces instalacije traje otprilike minutu, a nakon što je komponenta instalirana, imate pristup nevjerojatnom skriptnom jeziku naredbenog retka. Za razliku od drugih skriptnih jezika u sustavu Windows, Powershell je dizajniran isključivo za administratore sustava. Powershell koristi .NET i naredbe ("cmdlets" ili "command-lets") za rad. Kao korisnik PS-a, možete koristiti naredbe pojedinačno ili ih spojiti u lance kako biste izvršili više složeni zadaci.

Nakon što instalirate PS, moći ćete se pokrenuti Start -> Svi programi -> Windows Powershell 1.0, i pritisnite Windows PowerShell . U ovom trenutku trebali biste vidjeti plavi CLI prozor koji izgleda kao Slika 1.

Slika 1: Windows prozor Powershell naredba

Uvijek možete znati da radite u Powershell-u jer prozor "PS" uvijek ima sljedeći redak na početku:

PS C:\Korisnici\Administratori

Sada kada je powershell instaliran i njegov prozor otvoren, dopustite mi da vam pokažem neke uobičajene zadatke umrežavanja koji se mogu izvršiti u PS-u.

Navedite IP adrese vašeg poslužitelja

Da biste dobili popis IP adresa na svom Windows poslužitelj 2008 Server, morate koristiti sljedeću naredbu:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE - ComputerName . | Select-Object -Property IPAddress

Ovako izgledaju podaci nakon korištenja ove naredbe na mom Windows 2008 Serveru:

Slika 2: Ispis IP adresa pomoću Windows Powershell

Kao što možete vidjeti na slici, izvorni podaci nam pokazuju da imam jedan adapter s IP V4 adresom i IP V6 adresom na ovom Windows 2008 Serveru. Samo po sebi, to nije ništa iznenađujuće, ali razmislite o tome što možete učiniti s tim koristeći druge funkcije skriptiranja.

Kao što nas korisnički priručnik za powershell uči, dobiveni podaci su niz i možete vidjeti IP adresu samo slanjem ovih podataka u "Select-Object" (nakon onemogućavanja IPV6), otprilike ovako:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE - ComputerName . | Select-Object -ExpandProperty IPAddress

Slika 3: Ispis IP adresa SAMO uz Windows Powershell

Dobivanje popisa konfiguracije mrežnog adaptera pomoću Powershell-a

Za pregled osnovne konfiguracije vašeg mrežnog adaptera, možete koristiti sljedeću naredbu:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE "Naziv računala .

Iako je ovaj članak posvećen ispitivanju uporabe PS-a u Windows poslužitelj 2008, ovaj se uslužni program također može koristiti na Windows XP, Vista ili Server 2003. Ovdje je primjer izlaza iz naredbe koja se izvodi na mom radu Windows stanice XP:

Slika 4: PowerShell prikazuje konfiguraciju mrežni adapter na Windows XP

Testirajte svoje računalo koristeći PowerShell

Iako PS naredbeni redak još uvijek može učiniti sve uobičajeno Windows naredbe(na primjer testna anketa), jaka točka Stvar kod Powershell-a je da možete uzeti podatke koje primite i promijeniti ih s lakoćom.

Evo primjera kako se to može učiniti, a nalazi se u priručniku Windows korisnik Powershell. Ovaj primjer analizira rezultate Win32_PingStatus koristeći Select-Object. U ovom slučaju podaci jednostavno pokazuju vrijeme odgovora i statusni kod.

Ovo je naredba koja je korištena:

Get-WmiObject -Class Win32_PingStatus -Filter "Address="127.0.0.1"" - ComputerName . | Select-Object - Adresa svojstva, ResponseTime, StatusCode

A evo rezultata korištenja naredbe na mom Windows stroju:

Slika 5: PowerShell podaci koji prikazuju status ankete analiziran pomoću Select-Object

Podijelite mapu koristeći Windows Powershell

Bit ću iskren s tobom. Korištenje Powershell naredbi nije uvijek jednostavno kao korištenje postojećih Windows naredbi s kojima ste već upoznati. Evo primjera.

Sljedeća PS naredba će pružiti opći pristup u mapu u C:\temp kao "davidtemp" i pokrenite izvrsnu naredbu na njoj:

(Get-WmiObject -List -ComputerName . | Where-Object -FilterScript ($_.Name -eq "Win32_Share")).InvokeMethod("Create",("C:\temp","davidtemp",0.25, "Davidov Privremena mapa"))

S druge strane, možete jednostavno koristiti već isprobanu naredbu neto udio:

Neto udio davidtemp=C:\temp /remark:"Davidova privremena dijeljena mapa"

Slika 6: PowerShell podaci i tradicionalna naredba net share

Imajte na umu da naredba Powershell ne samo da nije radila, nego mi je dala užasnu pogrešku. Isprobao sam ovu naredbu na Windowsima XP i Vista i bio sam administrator sustava.

S druge strane tim neto udio vrlo jednostavno i uspjelo iz prve ruke. I dok vas pokušavam provesti kroz osnove Powershell-a, ne zaboravite da Powershell može koristiti tradicionalne Windows mrežne naredbe, koje su u mnogim slučajevima puno lakše za korištenje. Međutim, možete se naći u situaciji u kojoj ove tradicionalne naredbe ne rade sve što trebate, a tu u pomoć dolazi Powershell.

Ostale mrežne i složenije naredbe

Ako namjeravate koristiti samo najosnovnije naredbe mrežnog administratora u Powershellu, vjerojatno ćete se zbuniti i više ih nećete koristiti jer, kao i svaki drugi skriptni jezik, postoji krivulja učenja.

Međutim, nakon što prevladate krivulju učenja i naučite kako se služiti jezikom, imat ćete alat koji je vrlo učinkovit i može vam uštedjeti vrijeme.

Kao što ste mogli primijetiti iz prethodnih primjera, jedan od parametara za većinu Powershell naredbi je "ime računala". Kada stavimo točku (".") umjesto naziva računala, bit će lokalni domaćin(naše računalo). Međutim, također možemo zamijeniti bilo koju IP adresu ili ime Windows računalo u domeni, što nam daje mogućnost korištenja ovih naredbi ne samo na našem računalu, već i za stvaranje moćnih skripti u Powershellu koje se mogu koristiti na svim računalima na mreži.

Na primjer, ovdje je naredba koja prenosi IP adresu Dell računala preko LAN-a:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE - ComputerName DELL9400

Evo rezultata ove naredbe:

Slika 7: Powershell rezultati dobivanja IP adrese s udaljenog računala

A ovdje je veća slika koja prikazuje potrebne informacije:

Slika 8: Povećanje Powershell prozora s rezultatima za dobivanje IP adrese udaljenog računala

Dakle, prilika za rad udaljena računala je temeljna značajka Powershell-a, ali još jedna moćna značajka je mogućnost filtriranja podataka i kombiniranja podataka dobivenih korištenjem različitih naredbi.

Pogledajte sljedeći primjer:

"127.0.0.1","localhost","research.microsoft.com" | ForEach-Object -Process (Get- WmiObject -Class Win32_PingStatus -Filter ("Address="" + $_ + """) -ComputerName .) | Select-Object - Adresa svojstva, ResponseTime, StatusCode

U ovom primjeru dobiven je popis IP adresa i imena domena. Ovaj popis je proslijeđen "ForEach-Object". Za svaki od ovih “objekata” (IP adresa / imena domena), korišten je element "Get-WmiObject" PingStatus. Podaci testne ankete za svaki naziv domene zatim su prošli kroz "Select-Object", što je rezultiralo prikazom samo adresa, vremena odgovora i statusnih kodova.

Slika 9: Testna anketa korištenjem popisa prilikom kombiniranja i anketiranja podataka

Po mom mišljenju, ovaj primjer pokazuje neke od mogućnosti Powershell-a. Kao što vidite, možete usmjeravati i preusmjeravati ulaz i izlaz u različitim smjerovima kako biste postigli svoje administrativne ciljeve.

Što još trebate znati?

Zaključak

Windows Powershell je vrlo moćan uslužni program. Nemoguće je u ovom članku pokriti sve što možete učiniti s Powershellom, ali nadam se da sam vam uspio dati opću ideju o tome što Powershell može učiniti i potaknuti vas da dodatno istražite ovo područje. Svaki dan postoje nove knjige, tečajevi i puno materijala na Internetu o Powershell funkcijama koje mogu koristiti administratori Windows sustava. S obzirom na tako jaku privrženost Windows administratora grafičko sučelje, trebat će vremena da Powershell prihvate one tvrtke koje nemaju hitnu potrebu za tim alatom. Siguran sam da će administratori koristiti Powershell za izradu kraćih skripti koje mogu obavljati složenije zadatke. Nadam se da će Powershell postati sve popularniji u svijetu!

Posebna zahvala za Microsoft za pružanje oglednih naredbi u dokumentaciji korisničkog vodiča za Windows Powershell.

PowerShell je objektno orijentirani softverski mehanizam i skriptni jezik sa sučeljem naredbenog retka koji IT stručnjacima pruža veće mogućnosti za konfiguriranje operativnih sustava iz obitelji MS Windows. Jednostavno rečeno, to je svojevrsni univerzalni administrativni alat. U ovom će se članku raspravljati o osnovnim tehnikama pisanja skripti u PowerShell, koje vam omogućuju automatiziranje upravljanja vašim Windows okruženjem na jednostavan način.

PowerShell nudi i čisto konzolno sučelje i potpuno razvojno okruženje PowerShell ISE(Integrated Scripting Environment, ugrađeno okruženje za skriptiranje) za skripte. Za pokretanje sučelja naredbenog retka upišite powershell u izborniku Run (WinKey + R). PowerShell ISE se pokreće pomoću naredbe "PowerShell ISE" u istom izborniku.

ISE je poželjniji jer pruža više mogućnosti programeru zahvaljujući isticanju sintakse, automatskom dovršavanju koda i drugim značajkama svojstvenim mnogim "velikim" IDE-ima.

Pisanje i pokretanje skripti

Skripte se spremaju kao datoteke s nastavkom .ps1. Iako je PowerShell već dugo izvorni dio Windowsa, nećete moći lako pokretati njegove skripte. dvostruki klik. Da biste to učinili, morate kliknuti desni klik prema skripti i odaberite “Run in PowerShell”.

Postoje također politike sustava, ograničavajući izvršavanje skripti. Svoje trenutne postavke pravila možete provjeriti pokretanjem naredbe Get-ExecutionPolicy. Rezultat će biti jedna od sljedećih vrijednosti:

  • Ograničen- zabranjeno je izvršavanje skripti. Standardna konfiguracija;
  • Svi Potpisani- možete pokrenuti skripte koje je potpisao pouzdani programer; Prije pokretanja skripte, PowerShell će vas pitati za potvrdu;
  • RemoteSigned- možete pokrenuti vlastite skripte ili one koje je potpisao pouzdani programer;
  • Neograničen- možete pokretati bilo koje skripte.

Za početak morate promijeniti postavku pravila pokretanja u RemoteSigned pomoću naredbe Set-ExecutionPolicy:

Cmdlets

Cmdleti su naredbe s unaprijed definiranom funkcijom, poput uvjetne izjave u programskim jezicima. Imaju nekoliko ključnih značajki:

  • Postoje sistemski, korisnički i dodatni cmdleti;
  • rezultat izvršavanja cmdleta bit će objekt ili niz objekata;
  • Cmdleti mogu obraditi podatke i proslijediti ih drugim cmdletima pomoću cjevovoda;
  • cmdleti ne razlikuju velika i mala slova, tako da nema razlike između Get-ADUser, get-aduser i gEt-AdUsEr;
  • simbol se koristi kao separator; .

Svaki cmdlet sadrži glagol i imenicu odvojene crticom. Na primjer:

  • Get-Process- prikazati trenutne procese koji se odvijaju na računalu;
  • Get-Service- prikazati popis usluga i njihov status;
  • Get-Content- prikazati sadržaj navedene datoteke, na primjer Get-Content C:\Windows\System32\drivers\etc\hosts .

Ako je potrebno, možete ispisati sve dostupne cmdlete koristeći Get-Help-Category:

Također možete izraditi vlastite cmdlete.

Mogućnosti

Svaki cmdlet ima nekoliko parametara koji određuju kako radi. PowerShell ISE automatski predlaže sve dostupne opcije s prikazanom njihovom vrstom. Na primjer, Get-Service-NameW* vraća popis usluga čije ime počinje s W . Ako zaboravite koje parametre ima cmdlet koji ste unijeli, upotrijebite Get-Member. Na primjer, Get-Process | Get-Member:

Ako ne pronađete ono što vam je potrebno ili niste sigurni kako ispravno postaviti parametre, možete čak zatražiti primjere pomoću parametra -Examples:

Neki se cmdleti također mogu pozvati pomoću aliasa, na primjer, umjesto Get-Help možete jednostavno napisati Help.

Kada pišete velike skripte ili razvijate tim, možete koristiti komentare. Svaki komentar počinje znakom #, a blok komentara ograničen je na kombinacije znakova<# и #>na početku odnosno na kraju.

Pokretna traka

PowerShell Omogućuje razmjenu podataka između cmdleta pomoću cjevovoda. Na primjer:

  • GetService | SortObject -property Status - sortiranje trčanje usluga po statusu;
  • "Pozdrav svijete!" | Out-File C:\ps\test.txt - pisanje teksta u datoteku.

Može se koristiti više transportera. Na primjer, sljedeća skripta ispisuje imena svih usluga osim zaustavljenih:

Get-Service | WHERE ($_.status -eq “Izvodi se”) | ODABERITE ime za prikaz

Zaključak

Dakle, zahvaljujući ovom vodiču, početnici imaju ideju o tome što je PowerShell. Također smo pogledali opcije za promjenu politike izvršavanja skripte, što je cmdlet, kako razmjenjuju podatke pomoću cjevovoda i kako dobiti svojstva željenog objekta. Imajte na umu da ako imate bilo kakvih problema, možete koristiti Get-Help cmdlet.

Windows PowerShell 2.0 objavljen je u dio Windowsa 7 i Windows Server 2008 R2 kao sastavnu komponentu sustava. Osim toga, druga verzija dostupna je za druge sustave kao što su Windows XP SP3, Windows Server 2003 SP2, Windows Vista SP1 i Windows Server 2008.

Ako iz nekog razloga nemate instaliran PowerShell, ovdje je poveznica na kojoj možete preuzeti PowerShell, kao i saznati detaljne informacije o ovoj ljusci.

Windows PowerShell je izgrađen na Microsoft baza podataka NET Framework i integrirani s njim. Dodatno, PowerShell pruža praktičan pristup COM i ADSI, kao i mogućnost izvedbe redovne naredbe naredbenog retka za stvaranje jedinstvenog okruženja u kojem bi administratori mogli obavljati različite zadatke na lokalnoj i daljinski sustavi.

Rad s timovima

Programeri PowerShell-a opremili su ovu ljusku posebnim skriptnim jezikom izgrađenim u skladu sa standardom .NET Framework. Naredba u PowerShell-u se u izvorniku naziva cmdlet ili cmdlet. Cmdlet je sličan funkciji u tom smislu konkretan zadatak, na primjer, dohvaća sadržaj mape ili ažurira unos u registru i ima parametre koji mogu promijeniti rezultat naredbe.

PowerShell ima preko 100 ugrađenih naredbi. Također možete stvarati dodatne naredbe, ali trebali biste koristiti .NET standardni jezik kao što je Visual Basic.NET ili C#.

Svaka opcija naredbe je kombinacija glagola i imenice. To je zato što je Microsoft želio koristiti dosljednu shemu imenovanja kako bi PowerShell bio lakši za učenje i proširenje. Glagol označava radnju koja se vrši, a imenica vrstu predmeta na kojem će se radnja izvršiti. Na primjer, naredba Get-ChildItem čita popis stavki u trenutnom radnom direktoriju ili spremniku, kao što je registar. Da biste izvršili naredbu, morate je unijeti u naredbeni redak linija PowerShell i pritisnite enter. Rezultat naredbe bit će prikazan odmah ispod unesene naredbe.

Riža. 1. Naredba Get-ChildItem

Naredbe za dobivanje pomoći

PowerShell dolazi sa skupom datoteka za pomoć i prvo moramo naučiti kako raditi s tim materijalima za pomoć. Da biste saznali koje su naredbe dostupne u PowerShell-u, koristite naredbu Get-Command. Slika 2 prikazuje rezultat ove naredbe, ovo je popis naredbi. Ovaj popis prikazuje nazive naredbi i sintaksu, ali ne opisuje što svaka naredba radi.

Slika 2. Get-Command

Za dobivanje ovih informacija možete koristiti naredbu Get-Help. Ako unesemo samo Get-Help, dobit ćemo pomoć za njega samog.

Riža. 3. Get-Help naredba

Kao što možete vidjeti iz pomoći za naredbu Get-Help, da biste dobili pomoć za određenu naredbu, trebate unijeti naziv naredbe odmah nakon Get-Help. Pogledajmo pomoć za naredbu Get-Command koju već poznajemo. Da bismo to učinili, unosimo:

Riža. 4. Naredba pomoći. Get-Help Get-Command

Get-Command in u ovom slučaju je parametar naredbe Get-Help, a poput parametara naredbe u naredbenom retku cmd.exe, parametri naredbe PowerShell pružaju informacije koje su naredbe potrebne za obavljanje posla.

Sada da vidimo kako to sve funkcionira. Pogledajmo primjer. Jedan od tipični zadaci Administrator sustava je čitati tekstualne datoteke. Pogledajmo popis cmdleta koji počinju s Get (Get-Help, Get-Command itd.). Da bismo to učinili, koristit ćemo Get-Help i navesti Get kao parametar:

Riža. 5. Get-Help Get Command

Dobili smo popis naredbi koje počinju s Get. Za rad s datotekama koristit ćemo naredbu Get-Content. Pogledajmo informacije pomoći o naredbi Get-Content. Da bismo to učinili, unosimo:

Riža. 6. Naredba Get-Help Get-Content

Kao što je prikazano na slici 6, naredba Get-Help Get-Content vraća opis naredbe Get-Content i informacije o njezinoj sintaksi. Iz ove pomoći saznali smo da naredba Get-Content vraća sadržaj elementa, koji u ovom slučaju ukazuje na bilo koju vrstu datoteke na sustavu. U prošlosti je administrator možda morao koristiti naredbu For za rad sa skupnim datotekama ili File-SystemObject u Windows skripti Domaćin skripte(WSH), ali u PowerShellu trebate samo pokrenuti naredbu Get-Content. Da biste dobili detaljnije informacije o sintaksi, trebate dodati parametar -full naredbi:

Riža. 7. Get-Help Get-Content -puna naredba

Imajte na umu da parametar -full nije primarna vrijednost. Parametri ovog tipa se nazivaju parametrima prekidača, jer se čini da mijenjaju liniju ponašanja naredbi.

Slika 7 prikazuje neke informacije koje vraća ova naredba. Administrator će morati pomicati ili promijeniti veličinu prozora na svom računalu kako bi se sav sadržaj mogao vidjeti. Odjeljak PARAMETERS pomoći opisuje parametre koji se mogu dodati naredbi da bi se promijenio rezultat koji vraća. Imajte na umu dva važne točke kod parametara: Potreban?(obavezno engleski) i Položaj?(Položaj engleski).

stavak Potreban?(Obavezno) označava je li ovaj parametar potreban ili ne. Kada je potrebna varijabla? (Obavezno) je istina, parametar mora biti uključen u naredbu. Što ako je varijabla potrebna? (Potreban engleski) je postavljeno na false, tada je ovaj parametar opcijski i može se izostaviti kada se koristi naredba.

Značenje Položaj?(Pozicija) omogućuje vam da procijenite treba li parametru dati ime ili se na njega može referencirati po položaju. Kada je varijabla Pozicija? (Pozicija) je dodijeljena vrijednost imenovana, što znači da kada se pozivate na ovaj parametar, morate navesti njegovo ime. Kada je vrijednost varijable Position? (Pozicija) je izražena kao broj; parametar se može nazvati njegovim imenom ili jednostavno naznačiti vrijednošću parametra na njegovoj ispravnoj poziciji.

Na primjer, kao što je prikazano na slici 8, kada izvršavate naredbu Get-Content, trebate navesti parametar -Path; pogledajmo ovaj parametar detaljnije.

Riža. 8. Parametar - Put

U varijabli Potreban? vrijedan vrijednosti pravi, to znači da je ovaj parametar potreban za naredbu Get-Content. U varijabli Položaj? Vrijednost je 1, što znači da ne morate navesti naziv parametra prilikom unosa, samo ga trebate unijeti odmah nakon naziva naredbe (1. pozicija).

Riža. 9. Naredba Get-Content E:01.txt

Gdje je E:01.txt parametar -Path

Riža. 10. Datoteka E:01.txt.

Ako vrijednost parametra sadrži razmake, vrijednost mora biti unutar navodnika.

U odjeljku za pomoć OPCIJE Iza svakog naziva parametra slijede informacije u uglastim zagradama (< >). Ove informacije označavaju vrstu podataka koja treba biti vrijednost parametra. Kao što je prikazano na slici 8, vrijednost parametra -Path mora biti niz. Ako je naznačeno ime tipa uglate zagrade(niz), to znači da se niz nizova može koristiti kao vrijednost parametra. Ako koristite parametre prekidača, kao što je parametar -Full, koji ne prihvaćaju vrijednosti, vrsta podataka bit će navedena kao .

Riža. 11. Parametar -Pun

Još jedna PowerShell funkcija vrijedna pažnje koja ima veze s parametrima je funkcija automatsko dovršenje unos kombinacije “parametar-naziv”. Korisnik samo treba unijeti dovoljno slova da sastavi naziv parametra kako bi se mogao razlikovati od ostalih parametara. Da, tim Get-Help Get-Content -full je ekvivalentna naredbi Get-Help Get-Content -ful. U odjeljku za pomoć BILJEŠKE Postoje i primjeri kako se ova ili ona naredba može koristiti. Slika 12 prikazuje 3 primjera korištenja naredbe Get-Help.

Riža. 12. Primjeri korištenja naredbe Get-Help

Zatražite pomoć s konceptima

PowerShell dolazi sa skupom datoteka pomoći koje pružaju preglede različitih koncepata. Svaka datoteka počinje znakovima " oko_" i završava nazivom odjeljka. Za pregled abecednog popisa odjeljaka about, pokrenite naredbu:

Riža. 13. Naredba Get-Help about*

Da biste vidjeli informacije o određenoj temi, jednostavno morate uključiti vrijednost parametra puno ime teme. Na primjer, pogledajmo pomoć o aliasima. Da biste to učinili, pokrenite naredbu:

Riža. 14. Get-Help about_aliases naredba

Slika 14 prikazuje neke podatke pomoći koji se dobivaju kao rezultat naredbe Get-Help about_aliases. Kao što vidimo, datoteka pomoći pruža pregled radnji usmjerenih na stvaranje i upravljanje aliasima u PowerShellu.

Korištenje aliasa

Neki nazivi naredbi mogu biti prilično dugi, a to može biti neugodno ako morate stalno iznova unositi naredbe s tipkovnice. Srećom, programeri PowerShell-a uključili su mogućnost korištenja aliasa za označavanje naredbi. Alias ​​je alternativno ime koje je obično mnogo kraće od stvarnog naziva naredbe. PowerShell uključuje niz ugrađenih aliasa, uz koje korisnici mogu kreirati vlastite aliase.

Da biste vidjeli pseudonime dostupne tijekom trenutne sesije, trebate pokrenuti naredbu Get-Alias ​​​​:

Riža. 15. Naredba Get-Alias ​​​​

Trenutna sesija odnosi se na trenutnu vezu s PowerShell procesorom. Na početku PowerShell korisnik započinje novu radnu sesiju; ova sesija se nastavlja sve dok korisnik ne zatvori PowerShell, čime prekida vezu. Uz sve ugrađene pseudonime i njihove pridružene naredbe, Get-Alias ​​​​prikazuje sve pseudonime stvorene tijekom trenutne sesije, kao i pseudonime definirane u profilima, koji su korisnički definirane konfiguracijske postavke učitane u PowerShell svaki put kada se ljuska je pokrenut.

Ako trebate vidjeti pseudonime povezane s određenom naredbom, budite precizniji s naredbom Get-Alias ​​​​. Na primjer, da biste vidjeli pseudonime povezane s Get-ChildItem, pokrenite naredbu:

Riža. 16. Get-Alis -definicija Naredba Get-ChildItem

Kao što je prikazano na slici 16, PowerShell uključuje tri aliasa za naredbu Get-ChildItem: gci, ls i dir. Možete koristiti bilo koji od njih umjesto naziva naredbe. Dakle, svaka od sljedeće četiri naredbe ispisuje sadržaj direktorija C::

Riža. 17. Naredbe Get-ChildItem c: i dir c:

Ako želimo stvoriti vlastiti alias u PowerShell-u, tada će nam pomoći naredba Set-Alias ​​​​. Kreirajmo alias za naredbu Get-Help. Koristimo kraticu hlp. Naredba koja nam treba izgledat će ovako:

Riža. 18. Set-Alias ​​​​hlp Naredba Get-Help i stvoreni hlp alias

Zatim, kad god trebate pokrenuti naredbu Get-Help, možete koristiti alias hlp. Ovaj alias možete koristiti dok sesija ne završi (to jest, dok ne zatvorite PowerShell). Imajte na umu da prilikom definiranja pseudonima ne postoji opcija za uključivanje parametara; možete koristiti samo naziv naredbe. Ako želite definirati vezu na naredbu i njene parametre, trebali biste kreirati posebna funkcija.

Zaključak

Saznali ste za to, iznesite sve dostupne naredbe u PowerShell i kako prikazati informacije pomoći za svaku od ovih naredbi. Samo naprijed i proučite što ti timovi rade. Eksperimentirajte sa raznih parametara i naučite stvarati i koristiti pseudonime i uskoro ćete tečno govoriti PowerShell.


Danas su gotovo svi administratori upoznati s Windows PowerShell. Mnogi su ga ljudi preuzeli, eksperimentirali s njim i rješavali nestandardne zadatke koji se ponekad izvode u Windows naredbenoj ljusci putem cmd.exe. Međutim, PowerShell je mnogo više od samo DOS-ove naredbene ljuske. To je okruženje za naredbeni redak i skriptiranje temeljeno na Microsoftu.NET Common Language Runtime (CLR) i .NET Framework. U PowerShell-u radite s .NET objektima. Strukture mapa koje vidite ili usluge kojima pristupate u biti su instance objekata koje te mape i usluge predstavljaju; To je razlika između dotičnog proizvoda i drugih naredbenih ljuski koje mogu samo obraditi tekst. Stoga je PowerShell mnogo moćniji i učinkovitiji od tradicionalnih naredbenih ljuski.

Kako bismo pomogli čitateljima da iskoriste sve pogodnosti ovog instrumenta, pripremio sam niz članaka koji objašnjavaju kako riješiti razne probleme s koristeći PowerShell. U prvoj "lekciji" opisat ću kako početi koristiti PowerShell i kako pokrenuti osnovne naredbe. Također ću objasniti kako dobiti informacije o pomoći u PowerShell-u prilikom kreiranja ovih naredbi i kako koristiti pseudonime u naredbama.

Prvi koraci

PowerShell se trenutačno ne isporučuje uz Windows, ali to će se promijeniti počevši od Windows Servera 2008. Veze na resurse za preuzimanje PowerShell-a i informacije o PowerShell-u dostupne su na web stranici Windows PowerShell (www.microsoft.com/powershell). Prije preuzimanja PowerShell-a morate imati instaliran .NET Framework 2.0 na vašem sustavu. Postupak PowerShell instalacije ne oduzima puno vremena i nije teško. Samo trebate biti sigurni da je verzija PowerShell-a koju instalirate kompatibilna s onom koju koristite. operacijski sustav. Microsoft izdaje verzije za Windows Server 2008 beta 3, Windows Vista, Windows XP SP2 i Windows Server 2003. Za ovaj sam članak koristio verziju PowerShell za Windows XP.

Nakon dovršetka instalacije PowerShell-a, možete odmah započeti. Da biste pokrenuli PowerShell, odaberite Svi programi iz izbornika Start, a zatim odaberite Windows stavke PowerShell 1.0 i Windows PowerShell. Kada se pojavi prozor PowerShell, naredbeni redak prikazuje trenutni radna mapa(na mom sustavu ovo je direktorij C). Sada možete početi pisati i izvršavati PowerShell naredbe.

Rad s timovima

Programeri PowerShell-a opremili su ovu ljusku posebnim skriptnim jezikom izgrađenim u skladu sa standardom .NET Framework. PowerShell cmdlet sličan je funkciji po tome što obavlja određeni zadatak, kao što je dohvaćanje sadržaja mape ili ažuriranje unosa u registru.

PowerShell ima preko 100 ugrađenih naredbi. Možete stvoriti dodatne naredbe, ali morate koristiti standardni .NET jezik kao što je Visual Basic .NET ili C#. U člancima o PowerShellu govorit ćemo samo o ugrađenim naredbama. Svaka opcija naredbe je kombinacija glagola i imenice; To se objašnjava činjenicom da je Microsoft želio koristiti jedinstvenu shemu imenovanja i time olakšati učenje i proširivanje PowerShell-a. Glagol označava radnju koju treba izvršiti, a imenica vrstu predmeta na koji će radnja biti usmjerena. Na primjer, naredba Get-ChildItem čita popis stavki u trenutnom radnom direktoriju ili spremniku, kao što je registar. Da biste pokrenuli naredbu, morate je upisati u PowerShell naredbeni redak i pritisnuti enter. Rezultati se prikazuju ispod naredbenog retka. To je sve što trebate znati o izvršavanju osnovnih naredbi.

Vjerojatno nije u svim slučajevima poznato postoji li naredba za rješavanje zadatka koju treba izvršiti, a ponekad može biti teško zapamtiti naziv pojedine naredbe. Popis svih naredbi možete pogledati pokretanjem Get-Command. Zaslon 1 prikazuje dio ovog popisa; tamo možete vidjeti nazive naredbi i sintaksu, ali ne i opis što točno odgovarajuća naredba radi. Za dobivanje ovih informacija možete koristiti naredbu Get-Help.

Naredbe za dobivanje pomoći

PowerShell se isporučuje sa skupom datoteka pomoći kojima korisnik može pristupiti izravno iz naredbenog prozora PowerShell pomoću naredbe Get-Help. Za dobivanje referentne informacije o određenoj naredbi, trebate koristiti naredbu Get-Help s parametrom -name. Nakon ovog parametra morate navesti naziv naredbe o kojoj želite dobiti informacije. Poput parametara naredbe procesora cmd.exe, parametri naredbe PowerShell pružaju informacije koje su naredbe potrebne za obavljanje posla. Ali za razliku od parametara naredbe u cmd.exe (koji mogu započeti crticom, kosom crtom ili uopće nemaju vodeći znak), parametri naredbe PowerShell uvijek počinju crticom, dodatno potvrđujući dosljednost sheme imenovanja PowerShell-a.

Sada da vidimo kako to sve funkcionira. Pogledajmo primjer. Jedan od tipičnih zadataka administratora sustava je čitanje tekstualnih datoteka. Nakon što pogledate popis naredbi koje nudi naredba Get-Command, zaključujete da naredba Get-Content može izvršiti ovaj zadatak, ali niste sigurni. Za prikaz informacija pomoći o naredbi Get-Content, morate pokrenuti sljedeću naredbu:

Get-Help -name Get-Content

Kao što prikazuje slika 2, ova naredba vraća opis naredbe i informacije o sintaksi. Naredba vraća sadržaj elementa, koji u ovom slučaju ukazuje na bilo koju vrstu datoteke na sustavu. U prošlosti je administrator možda morao koristiti naredbu For za rad sa skupnim datotekama ili objektom File-SystemObject u skripti Windows Script Host (WSH), ali u PowerShellu jednostavno morate pokrenuti naredbu Get-Content. Da biste dobili detaljnije informacije o sintaksi, naredbi trebate dodati parametar -full.

Get-Help -name Get-Content -full

Imajte na umu da opcija -full ne prihvaća odgovarajuću vrijednost. Parametri ovog tipa se nazivaju parametrima prekidača, jer se čini da mijenjaju liniju ponašanja naredbi.

Slika 3 prikazuje neke informacije koje vraća ova naredba. Administrator će morati pomicati ili promijeniti veličinu prozora na svom računalu kako bi se sav sadržaj mogao vidjeti. Odjeljak PARAMETERS sadrži informacije potrebne za uključivanje parametara u naredbu. Zabilježite dvije važne kategorije informacija za svaki parametar: Obavezno i ​​Pozicija.

Obavezne informacije označavaju je li parametar obavezan ili neobavezan. Kada je varijabla Required istinita, parametar mora biti uključen u naredbu. Ako je varijabla Required postavljena na false, ovaj parametar nije obavezan.

Vrijednost kategorije položaja omogućuje vam da procijenite treba li parametru dati ime ili se na njega može referencirati po položaju. Kada je varijabla Position postavljena na named, to znači da kada se pozivate na ovaj parametar, morate navesti njegovo ime. Kada je vrijednost varijable Position izražena kao broj, na parametar se može pozivati ​​njegovim imenom ili jednostavno navođenjem vrijednosti parametra na njegovoj ispravnoj poziciji.

Na primjer, kao što prikazuje Slika 3, naredba Get-Content zahtijeva parametar -path. Međutim, vrijednost ovog parametra može se navesti na prvoj poziciji bez unosa naziva parametra, kao u sljedećem primjeru:

Get-Content c:sample.txt

Ako vrijednost parametra sadrži razmake, vrijednost mora biti unutar navodnika.

U odjeljku PARAMETRI iza svakog naziva parametra slijede informacije u uglastim zagradama (). Ove informacije označavaju vrstu podataka koja treba biti vrijednost parametra. Kao što slika 3 pokazuje, vrijednost parametra -path mora biti niz. Ako iza niza riječi slijedi niz zagrada (), to znači da se niz nizova može koristiti kao vrijednost parametra.

Ako koristite parametre prekidača koji ne prihvaćaju vrijednosti, podaci će biti tipa read. S ovim tipom podataka, na primjer, definiran je parametar -force naredbe Get-Content. Ovaj parametar nadjačava ograničenja koja bi mogla spriječiti izvršenje naredbe. Otkazivanje se događa samo kada je parametar uključen u naredbu.

Još jedna značajka PowerShell-a vrijedna pažnje koja se odnosi na parametre je značajka koja automatski dovršava kombinaciju naziva parametra. Korisnik samo treba unijeti dovoljno slova da sastavi naziv parametra kako bi se mogao razlikovati od ostalih parametara. Da, tim

Get-Content c:sample.txt -force

je ekvivalentna naredbi

Get-Content c:sample.txt -fo

Uz informacije o parametrima potrebnim za izradu naredbi, datoteka pomoći za naredbu Get-Content uključuje primjere koji ilustriraju kako koristiti naredbu, korisne preporuke u odjeljku Bilješke i izvori, gdje dodatne informacije. Lijepo je primijetiti da su datoteke pomoći dostupne za sve naredbe - postoje čak i datoteke pomoći koje opisuju uobičajene koncepte.

Zatražite pomoć s konceptima

PowerShell dolazi sa skupom datoteka pomoći koje pružaju preglede različitih koncepata. Svaka datoteka počinje znakovima "about_" i završava nazivom odjeljka. Za pregled abecednog popisa odjeljaka about, pokrenite naredbu

Da biste vidjeli informacije o određenoj temi, jednostavno trebate uključiti puni naziv teme u vrijednost parametra. Na primjer, da biste pročitali datoteku kontrole protoka, morate pokrenuti naredbu

Get-Help about_flow_control

Slika 4 prikazuje neke od podataka koji se mogu generirati kao rezultat. Kao što vidimo, datoteka sadrži pregled radnji usmjerenih na implementaciju kontrole protoka podataka u PowerShell skriptama.

Korištenje aliasa

Neki nazivi naredbi mogu biti prilično dugi, a to može biti neugodno ako morate stalno iznova unositi naredbe s tipkovnice. Srećom, programeri PowerShell-a uključili su mogućnost korištenja aliasa za označavanje naredbi. Alias ​​je alternativno ime koje je obično mnogo kraće od stvarnog naziva naredbe. PowerShell uključuje niz ugrađenih aliasa, uz koje korisnici mogu kreirati vlastite aliase.

Da biste vidjeli pseudonime dostupne tijekom trenutne sesije, trebate pokrenuti naredbu Get-Alias ​​​​. Trenutna sesija odnosi se na trenutnu vezu s PowerShell procesorom. Na pokretanje PowerShell-a korisnik započinje novu sesiju; ova sesija se nastavlja sve dok korisnik ne zatvori PowerShell, čime prekida vezu. Uz sve ugrađene pseudonime i njihove pridružene naredbe, Get-Alias ​​​​prikazuje sve pseudonime stvorene tijekom trenutne sesije, kao i pseudonime definirane u profilima, koji su korisnički definirane konfiguracijske postavke učitane u PowerShell svaki put kada se ljuska je pokrenut. Profile ćemo pogledati u jednom od sljedećih članaka.

Ako trebate vidjeti pseudonime povezane s određenom naredbom, budite precizniji s naredbom Get-Alias ​​​​. Na primjer, za prikaz pseudonima povezanih s Get-ChildItem, pokrenite naredbu

Get-Alias ​​​​|
Where-Object($_.definition`
– podudaranje "Get-ChildItem")

Ova naredba uključuje nekoliko elemenata, o kojima ću detaljno raspravljati u sljedećim lekcijama. Za sada, sve što trebate znati je ovo: Izlaz naredbe Get-Alias ​​​​šalje se naredbi Where-Object, gdje se filtriraju svi rezultati koji ne odgovaraju Get-ChildItem. Ako želite vidjeti pseudonime dodijeljene drugoj naredbi, zamijenite naziv Get-ChildItem s nazivom te naredbe.

Kao što pokazuje slika 5, PowerShell uključuje tri aliasa za naredbu Get-ChildItem: gci, ls i dir. Možete koristiti bilo koji od njih umjesto naziva naredbe. Dakle, svaka od sljedeće četiri naredbe ispisuje sadržaj C:Windows direktorija:

Get-ChildItem c:windows
dir c:windows
ls c:prozori
gci c:prozori

Za stvaranje pseudonima unutar trenutne sesije upotrijebite naredbu Set-Alias ​​​​. Na primjer, da biste stvorili cnt alias za pozivanje Get-Contenta, pokrenite naredbu

Set-Alias ​​​​cnt Get-Content

Tada možete koristiti alias cnt kad god trebate pokrenuti naredbu Get-Content. Ovaj alias možete koristiti dok sesija ne završi (to jest, dok ne zatvorite PowerShell). Imajte na umu da prilikom definiranja pseudonima ne postoji opcija za uključivanje parametara; Može se koristiti samo naziv naredbe. Ako želite definirati referencu na naredbu i njene parametre, trebali biste izraditi posebnu funkciju.

Izgledi

Dakle, u prvoj lekciji sam vas upoznao s temeljnim komponentama potrebnim za početak istraživanja i korištenja PowerShell naredbi, koje se sastoje od jedne ili više naredbi. U budućim člancima govorit ću o tome kako koristiti ove naredbe, kao i kako stvoriti skripte koje vam omogućuju korištenje svih dostupnih u Značajke PowerShell-a. Za sada samo počnite raditi s timovima. Koristite PowerShell datoteku pomoći za stvaranje naredbi i istraživanje pojedinačnih koncepata. Eksperimentirajte s različitim opcijama i naučite kako stvoriti i koristiti aliase. Neće proći dugo prije nego što budete spremni koristiti PowerShell za obavljanje svojih dnevnih zadataka.

Robert Sheldon ([e-mail zaštićen]) - tehnički savjetnik i autor velika količina knjige o Microsoft Windows tehnologijama i bazama podataka

Napomena: Opisuje mogućnosti Windows PowerShell i kako se razlikuje od tradicionalnih ljuski i skriptnih jezika. Glavni PowerShell koncepti(vrste naredbi, struktura cmdleta, aliasi naredbi). Raspravlja o značajkama sustava pomoći PowerShell

PowerShell možete preuzeti s Microsoftove stranice otvaranjem stranice http://microsoft.com/powershell, gdje se nalaze poveznice na instalacijsku datoteku Najnovija verzija i pakete dokumentacije za različiti jezici. Nakon pokretanja preuzete datoteke, slijedite upute čarobnjaka za instalaciju. U 32-bitnim verzijama Windows ljuska PowerShell je instaliran prema zadanim postavkama u . Na 64-bitnim verzijama sustava Windows, 32-bitna verzija PowerShell instalirana je u direktoriju %SystemRoot%\SystemWow64\WindowsPowerShell\v1.0, i 64-bitni Windows verzija PowerShell je instaliran u direktoriju %SystemRoot%\System32\WindowsPowerShell\v1.0.

Vrste PowerShell naredbi

PowerShell podržava četiri vrste naredbi: cmdlete, funkcije, skripte i vanjske izvršne datoteke.

Prva vrsta je takozvani cmdlet. Ovaj izraz se trenutno koristi samo unutar PowerShell-a. Cmdlet je .NET klasa izvedena iz osnovne klase Cmdlet; Cmdleti su razvijeni pomoću paketa PowerShell Software Developers Kit (SDK). Jedna osnovna klasa Cmdlet osigurava dosljednu sintaksu za sve cmdlete i automatizira analizu parametara naredbenog retka i opis sintakse cmdleta za ugrađenu pomoć.

Ova vrsta naredbe kompajlira se u biblioteku dinamičkih veza (DLL) i učitava u PowerShell proces kada se ljuska pokrene (to jest, sami cmdleti se ne mogu pokretati kao aplikacije, ali sadrže izvršne objekte). Budući da se kompilirani kod učitava u proces ljuske, ovaj tip naredbe se izvršavaju najučinkovitije. Cmdleti su analogni interni timovi tradicionalne školjke.

Sljedeća vrsta naredbi su funkcije. Funkcija je blok PowerShell koda koji ima naziv i ostaje u memoriji do kraja trenutne sesije ljuska. Funkcije, poput cmdleta, podržavaju imenovane parametre. Sintaksa funkcije se analizira jednom kada se deklarira.

Skripta je blok PowerShell koda pohranjen u vanjska datoteka sa ps1 ekstenzijom. Sintaksa skripte se analizira svaki put kada se pokrene.

Posljednja vrsta naredbi su vanjske izvršne datoteke, koje operacijski sustav izvršava na normalan način.

Najbolji članci na temu