Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 10
  • Korištenje Powershell-a za pokretanje uobičajenih mrežnih naredbi. Što je Powershell? Dobivanje pomoći oko pojmova

Korištenje Powershell-a za pokretanje uobičajenih mrežnih naredbi. Što je Powershell? Dobivanje pomoći oko pojmova

Iskusni korisnici Windows 10 možda su čuli za PowerShell uslužni program naredbenog retka. Također, oni koji imaju iskustva s Windows 7 i 8.1 mogu biti upoznati s tim. Nakon godina korištenja aplikacije Windows naredbenog retka i .bat datoteka, vrijeme je da se upoznate s moćnijim alatom.

PowerShell je vrijedan dodatak popisu Windows alata, a njegova veličina može odbiti neke korisnike. Je li to skriptni jezik ili naredbena ljuska? Nema potrebe za brigom: unatoč golemim mogućnostima, svatko može savladati PowerShell.

Korak 1: instalacija

Prvo, trebamo sam uslužni program PowerShell. Ako koristite Windows 10, već imate instaliran PowerShell 5. Obljetnica ažuriranja sustava Windows 10 koristi verziju 5.1, ali razlika je suptilna. Windows 8 i 8.1 koriste PowerShell 4, što je također dovoljno. Instalacija PowerShell-a na Windows 7 neće predstavljati problem, ali još uvijek treba poduzeti nekoliko dodatnih koraka. Konkretno, trebate dodatno instalirati .Net Framework. Možete instalirati Windows Management Framework, koji uključuje PowerShell.

PowerShell ima dva sučelja. Napredni korisnici mogu se odlučiti za kompletno grafičko sučelje poznato kao Integrirano okruženje za skriptiranje (ISE). Početnicima je bolje koristiti PowerShell konzolu, jednostavno sučelje u stilu naredbenog retka Windows temeljeno na tekstu, ili čak DOS 3.2.

Da biste pokrenuli PowerShell kao administrator u sustavu Windows 10, kliknite gumb Start i pomaknite se prema dolje do Windows PowerShell na popisu aplikacija. U sustavu Windows 8.1 potražite Windows PowerShell u mapi System u sustavu Windows. U sustavu Windows 7 ljuska se nalazi u mapi Pribor. Kao obični korisnik, PowerShell se može pokrenuti na isti način korištenjem lijeve tipke miša umjesto desne.

Pretraživanje se može primijeniti na bilo kojoj verziji sustava Windows. Za praktičnost daljnje upotrebe, možete prikvačiti PowerShell na programsku traku.

Korak 2: stare Windows naredbe

Sintaksa naredbe Windows u PowerShell-u radi kao i obično. Na primjer, CD mijenja mape, red prikazuje popis svih datoteka i mapa unutar trenutne mape.

Ovisno o tome kako pokrećete PowerShell konzolu, možete početi na c: \ Windows \ system32 ili u c : \ Korisnici \ ... Primjer na snimci zaslona koristi naredbu cd ..(s razmakom) da biste se popeli jednu po jednu razinu, a zatim pokrenite naredbu red za prikaz popisa datoteka i mapa u direktoriju C: \.

Korak 3: instaliranje datoteka pomoći

Naredbe poput CD i red nisu aktivne PowerShell naredbe. To su takozvani aliasi - zamjene za stvarne PowerShell naredbe. Aliasi su zgodni za one s velikim iskustvom u naredbenom retku. Međutim, oni ne dotiču dubine PowerShell-a.

Da biste započeli s onim što PowerShell može učiniti, upišite Pomozite i naredbu koja vam je potrebna. Snimka zaslona prikazuje naredbu .

Tim Pomozite kaže da red je alias za naredbu PowerShell Get-ChildItem... Ako upišete get-childitem v PS C: \>, vidjet ćete isto kao i kada koristite naredbu red.

Kao što je navedeno na dnu snimke zaslona, ​​datoteke pomoći za PowerShell se ne instaliraju automatski. Da biste ih dobili, pokrenite PowerShell kao administrator i upišite ažuriranje-pomoć... Instalacija datoteka pomoći će potrajati nekoliko minuta, neki moduli mogu nedostajati - na primjer, u ovom slučaju pomoć za NetWNV i SecureBoot nisu instalirani. Kada je sve spremno, kompletan sustav pomoći će uvijek pružiti potrebne tragove.

Sada upišite naredbu dobiti pomoć i bilo koju naredbu koja vas zanima ("cmdlet" u PowerShell-u, na ruskom - cmdlet), bit će prikazan njen opis. Na primjer, get-help get-childitem daje popis opcija get-childitem... Također možete prikazati različite moguće opcije. na primjer

get-help get-childitem -primjeri

daje sedam detaljnih slučajeva korištenja get-childitem... Tim

get-help get-childitem -detaljno

uključuje ovih sedam primjera i detaljna objašnjenja svakog parametra u cmdletu get-childitem.

Korak 4: potražite pomoć s parametrima

Na snimci zaslona možda ste primijetili dva popisa ispod SINTAKSA za get-childitem... Imati dvije različite sintakse znači da možete koristiti dva načina za pokretanje cmdleta. Kako držati sintaksu odvojenom jednu od druge i što znače parametri? Odgovor je jednostavan ako znate trik.

Za pojedinosti o parametrima cmdlet-a get-childitem ili bilo što koristiti parametar -puna:

get-help get-childitem -full

Ovo vam daje popis onoga što možete učiniti s cmdletom i što će se dogoditi. Pogledajte snimku zaslona.

Pregled opisa parametara to otkriva get-childitem omogućuje dobivanje predmeta dijete(poput naziva podmape ili naziva datoteke) na određenom mjestu, sa ili bez podudaranja određenih znakova. Na primjer:

get-childItem “* .txt” -rekurziv

vraća popis datoteka "* .txt" u trenutnoj mapi i svim podmapama (zbog parametra -povratak). Dok

get-childitem "HKLM: \ Software"

vraća popis svih ključeva registra najviše razine HKEY_LOCAL_MACHINE \ Softver.

Ako ste ikada pokušali ući u registar pomoću naredbenog retka sustava Windows ili .bat datoteka, moći ćete cijeniti funkcionalnost ove opcije pristupa.

Korak 5: učenje imena

Postoji razlog zašto do sada prikazani cmdleti izgledaju slično: get-childitem, update-help, get-help koristiti jednu shemu glagol-imenica. Ovu konvenciju koriste svi PowerShell cmdleti, gdje se glagol pojavljuje ispred jedne imenice. Ovo će se svidjeti onima koji su svojedobno patili od nedosljednosti naziva naredbi na jezicima VB i VBA.

Pogledajte najčešće cmdlete:

set-location: postavlja trenutnu radnu lokaciju na određeno mjesto

get-content: dobiva sadržaj datoteke

get-item: dobiva datoteke i mape

kopija-stavka: kopira objekt s jednog mjesta na drugo

ukloniti-stavku: briše datoteke i mape

: pokreće procese na lokalnom ili udaljenom računalu

dobiti-uslugu: pokreće usluge na lokalnom ili udaljenom računalu

invoke-webrequest: dohvaća sadržaj s web stranice na internetu

Da biste vidjeli kako određeni cmdlet radi, upotrijebite dobiti pomoć kao u slučaju

get-help copy-item -full

Na temelju opisa u pomoći, možete vidjeti što cmdlet treba. Na primjer, ako želite kopirati sve datoteke i mape iz Dokumenti v c: \ temp, koristiti

copy-item c: \ korisnici \ \ dokumenti \ * c: \ temp

Unosom ove naredbe vidjet ćete neke zanimljive značajke okruženja PowerShell. Na primjer, ako upišete kopija-i i pritisnite tipku Tab, PowerShell se popunjava Copy-Item... Ako neispravno upišete cmdlet i PowerShell ga ne može prepoznati, daje se potpuni opis onoga što je pošlo po zlu.

Isprobajte ovaj cmdlet:

invoke-webrequest askwoody.com

Primit ćete kratki popis zaglavlja, slika, poveznica i drugog sadržaja na web stranici. Obrati pozornost na dobiti pomoć na listi invoke-webrequest koji "vraća zbirku obrazaca, poveznica, slika i drugih važnih HTML elemenata" - upravo ono što bi trebalo biti prikazano na ekranu.

Nekoliko cmdleta pomaže u upravljanju samim PowerShellom:

get-command: popis svih dostupnih cmdleta

dobiti-glagol: popis svih dostupnih glagola

clear-host: brisanje zaslona glavnog programa

Različiti parametri omogućuju vam da smanjite naredbe i suzite raspon korisnih opcija. Na primjer, da biste vidjeli popis svih cmdlet-a koji rade sa Windows uslugama, upišite

get-command * -servis

Prikazat će se svi glagoli dostupni uz imenicu. servis... Evo popisa njih:

Get-Service

Nova usluga

Restart-Service

Resume-Service

Set-Servis

Start-Servis

Stop-Servis

Suspend-Service

Ove cmdlete možete kombinirati s drugima.

Korak 6: korištenje cijevi

Ako ste upoznati s naredbenim redkom sustava Windows ili batch datotekama, onda znate za preusmjeravanje i cijevi. Preusmjeravanje (> simbol) i cijevi (| simbol) uzimaju rezultat akcije i pričvršćuju ga negdje drugdje. Na primjer, možete preusmjeriti rezultat naredbe red u tekstualnu datoteku ili proslijedite rezultat naredbe ping timu pronaći za filtriranje zanimljivih rezultata poput

dir> temp.txt

ping askwoody.com | pronađite “packets”> temp2.txt

Ovdje u drugom timu pronaći tražeći niz pakete preuzeto s adrese askwoody.com naredbom ping i spaja sve podudarne retke u datoteku pod nazivom temp2.txt.

Prva od ovih naredbi izvrsno radi u PowerShellu. Za pokretanje druge naredbe potrebno vam je nešto poput

ping askwoody.com | paketi niza odabira | izvan datoteke temp2.txt

Korištenje preusmjeravanja i cijevi uvelike proširuje mogućnosti naredbenog retka sustava Windows: umjesto beskonačnog pomicanja prema dolje po zaslonu kako biste pronašli tekstualni niz, možete filtrirati Windows naredbe koje želite.

Powershell ima podršku za cijev, i nije ograničen na tekst. PowerShell vam omogućuje prosljeđivanje cijelog objekta iz jednog cmdleta u drugi, pri čemu je objekt kombinacija podataka (nazvanih svojstvima) i radnji (metoda) koje mogu koristiti te podatke.

Teški dio počinje kada poredate objekte. Objekti koje dostavlja jedan cmdlet moraju odgovarati vrsti objekata koje prima cmdlet. Tekst je vrlo jednostavna vrsta objekta, pa ako radite s tekstom, poravnavanje objekata je jednostavan zadatak. Ostali objekti nisu tako elementarni.

Kako ovo razumjeti? Koristite cmdlet dobiti-člana... Ako želite znati s kojom vrstom objekta rukuje cmdlet, prođite kroz njega dobiti-člana... Na primjer, ako pokušavate razumjeti procese koji se pokreću na računalu i suzili ste mogućnosti na cmdlete , evo kako saznati izlaz cmdlet-a:

get-proces | dobiti-člana

Izvođenje ovog cmdleta proizvodi dugačak popis svojstava i metoda za , ali na samom početku popisa možete vidjeti vrstu objekta koji stvara :

Naziv vrste: Sustav.Dijagnostika.Proces

Snimka zaslona u nastavku također prikazuje svojstva pod naslovom get-proces Handles, Ime, NPM, PM, SI, VM i Ws.

Ako želite manipulirati rezultatom da biste radili s ovim cmdletom (umjesto prikazivanja dugačkog popisa aktivnih procesa na monitoru), morate pronaći drugu naredbu koja prihvaća kao ulaz Sustav.Dijagnostika.Proces... Upotrijebite PowerShell da ponovno pronađete cmdlete koje želite:

get-command -Tip parametra Sustav.Dijagnostika.Proces

Ovaj cmdlet će vam dati popis cmdlet-a koji mogu rukovati Sustav.Dijagnostika.Proces.

Poznato je da nekoliko cmdleta prihvaća gotovo sve vrste podataka. Glavni među njima je ... Ovaj cmdlet petlja kroz svaki objekt cijevi, jedan po jedan, i na njega primjenjuje navedene kriterije odabira. Postoji poseban marker tzv $_ što vam omogućuje korištenje svake stavke u cijevi, jednu po jednu.

Recimo da želite dobiti popis svih procesa koji se izvode na računalu s nazivom "svchost", odnosno želite mapirati svojstvo Ime postupak svchost... Koristite naredbu:

get-proces | gdje-objekt ($ _. Naziv -eq “svchost”)

Cmdlet gleda svaki predmet Sustav.Dijagnostika.Proces, uspoređuje .Ime ovaj objekt sa "svchost"; ako ima podudaranja, oni se prikazuju na monitoru. Pogledajte snimku zaslona.

Korak 7: raščlanjivanje korisnih PowerShell naredbi

Do sada već znate dovoljno da biste mogli oštetiti svoje računalo, stoga budite oprezni. Pogledajmo, na primjer, najčešće tražene PowerShell naredbe.

Ove naredbe rade samo u sustavu Windows 10 i samo kada se PowerShell pokreće kao administrator. Osmišljeni su za ponovnu instalaciju unaprijed instaliranih Windows 10 aplikacija i mogu biti korisni onima koji su prvo deinstalirali te programe, a zatim ih odlučili vratiti. Naredba izgleda ovako:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Registrirajte “$ ($ _. InstallLocation) \ AppXManifest.xml”)

Ako pokrenete ovu naredbu, zanemarite upozorenja označena crvenom bojom, a kada je naredba dovršena, ponovno pokrenite računalo; svi predinstalirani programi u sustavu Windows 10 pojavit će se na svojim mjestima.

Ovako radi naredba. Get-AppXPackage provjerava sve pakete aplikacija u korisničkom profilu. Čak i ako deinstalirate aplikaciju, ona ostaje na popisu profila korisnika.

Cmdlet Get-AppXPackage vraća objekt Ime vrste Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage koji uključuje potpuno kvalificirani naziv paketa aplikacije i lokaciju odgovarajuće XML manifest datoteke. Ako pokrenete cmdlet get-appxpackage, vidjet ćete dugačak popis paketa aplikacija. Snimka zaslona prikazuje opis aplikacije Xbox.

Cmdlet Za svakoga kroz petlju prolazi kroz svaki objekt u AppXPackage slanjem ih u cmdlet Add-AppxPackage... Prema dobiti pomoć za Add-AppxPackage, postoje dva ključna prekidača:

  • Sklopka -Registar koristi se za registraciju postojećih instalacija paketa aplikacije, parametri se mogu postaviti Onemogući razvojni način i Registar
  • Sklopka -Onemogući razvojni način govori Windowsu da ponovno registrira postojeći paket aplikacije koji je onemogućen, neregistriran ili oštećen.

Crta " $ ($ _. InstallLocation) \ AppXManifest.x ml 'opisuje gdje se datoteka nalazi manifest.xml... Gledajući datoteke AppXManifest.xml, vidjet ćete složen popis ID-ova aplikacija, izvršnih datoteka i veliki broj vizuala povezanih s aplikacijom.

Nakon ponovnog pokretanja, svi dodani paketi aplikacija preuzimaju se i instaliraju iz Windows trgovine.

Prošlo je mnogo godina od izlaska sustava Windows 7 i Server 2008.

Programeri, administratori sustava i napredni korisnici pronašli su mnoge namjene za plavi prozor, slično naredbenom retku.

Korisnici početnici, uglavnom, ne znaju ni što je PowerShell (PS).

Ali skripte za PowerShell mogu automatizirati gotovo 100% radnji i skripti koje se izvršavaju u operacijskom sustavu putem naredbenog retka i grafičkog sučelja.

Upoznajmo se s glavnim značajkama ovog programa, obraćajući više pažnje na funkcije stvaranja i pokretanja skripti (mikroprograma).

Postoji bezbroj priručnika i dokumentacije za program, uključujući i ruski. Cilj članka- dati korisniku konceptualno znanje, ažurirati, a isplati li se upoznati interpretator i izvođenje skripti u njemu, svatko će odlučiti samostalno.

Što je Windows PowerShell?

PowerShell- tumač temeljen na .NET Frameworku, opremljen vlastitim skriptnim jezikom.

Prvi znači da radi u tekstualnom načinu: unesete naredbu i na ekranu vidite rezultat njezina izvršenja.

Kao što je to bilo u MS-DOS-u i starijim verzijama UNIX-a.

Drugi uvelike pojednostavljuje, ubrzava i automatizira administraciju, održavanje sustava, aplikacija, procesa i povezanih usluga od strane administratora i običnih korisnika.

U usporedbi s drugim tumačima, PS je drugačije:

  • integracija sa. - omogućuje vam stvaranje moćnih skripti ugrađivanjem programskog koda u njih;
  • svi vraćeni podaci su objekti, a ne tekstualni/string podaci, što podrazumijeva njihov prijenos u druge skripte i bilo kakvu obradu.

PowerShell verzija 2 ima sljedeće mogućnosti, od kojih ćemo neke detaljnije razmotriti:

  • Sposobnost predstavljanja naredbi kao cmdlet-a- pokreću se unutar interpretera, inače se naredba izvršava u zasebnom procesu.
  • Korištenje cjevovoda- namijenjeni su za prijenos podataka s jedne naredbe u drugu uz očuvanje njihove strukture i vrste.
  • Integrirani višenitni prijenos podataka preko mreže s postavljanjem prioriteta i obnovom veze.
  • Podrška za pozicione i imenovane parametre.
  • Pozadinski rad- asinkrono pozivanje naredbi i pokretanje skripti na udaljenim strojevima.
  • Postavljanje ograničenih sesija s udaljenim klijentima i izvršavanje skripti na njima.
  • Moduli- način organiziranja skripti kada postanu samostalne i izvode se u vlastitom spremniku bez utjecaja na okruženje modula.
  • Prisutnost rukovatelja pogreškama.
  • Grafičko okruženje za jezik: sintaksa, debugger, isticanje, automatsko dovršavanje naredbi uz Unicode i podršku za oznake.
  • Dodavanje prijelomnih točaka linijama, naredbe, operacije i varijable za otklanjanje pogrešaka skripte.
  • Blokirajte i pretplatite komentare.
  • Podrška za stvaranje aliasa za neke cmdletove koje se pretvaraju u redovite naredbe u vrijeme izvršenja.
  • Izrada ograničenih sesija, gdje možete izvršiti strogo određeni popis naredbi i još mnogo toga.

PowerShell izvorni kod dostupan svima: Svaki član zajednice može slobodno kreirati vlastita proširenja kako bi povećao funkcionalnost tumača naredbenog retka.

Možete početi svladavati integrirani skriptni jezik bez vještina programiranja.

Malo je vjerojatno da će biti moguće stvoriti složeni scenarij, ali gotovo svi će uspjeti izvesti sekvence primitivnih radnji.

Iako, bez poznavanja osnovnih koncepata PowerShell-a, malo je vjerojatno da ćete moći bilo što učiniti u prozoru ljuske. Počnimo s njima.

Cmdleti

Cmdleti- svojevrsne PS naredbe, iza kojih se kriju razne funkcije. Naredbe ugrađene u interpreter implementiraju se prema principu "glagol-imenica", na primjer Get-Process (dobivanje popisa procesa). Ovo rješenje omogućuje vam da shvatite bit naredbe već iz njenog naziva (na engleskom).

Neki od cmdlet-a podržavaju primanje/prijenos podataka i nizova informacija uz očuvanje njihove strukture i vrste. Radi kao cjevovod (o tome ćemo govoriti u sljedećem odjeljku). Bez obzira na to, cmdleti se pokreću i obrađuju objekte u strogom redoslijedu.

Za implementaciju cmdlet-a može se koristiti bilo koji podržani .NET API napisan na bilo kojem od .NET jezika.

Tako se korisniku daje pristup specifičnim funkcijama programa.

Cmdleti mogu pristupiti potrebnim informacijama izravno ili putem jedinstvenih staza (slova pogona i putevi direktorija).

Pomoću cmdleta možete raditi s datotečnim sustavom i objektima spremišta certifikata, instaliranim aplikacijama i uslugama.

Transporter

Prilikom izrade ne baš primitivnih skripti ili za izvođenje bilo kakvih operacija s podacima dobivenim kao rezultat rada skripte, ponekad morate izvršiti i neke radnje.

Za to postoji transporter. Kao u UNIX-u, spaja naredbe prosljeđivanjem izlaza jednog cmdleta na ulaz drugog, nepromijenjenog, čuvajući njegov tip.

Za to nije potreban nikakav spremnik ili raščlanjivanje informacija po znak.

Struktura prenesene informacije može uključivati ​​funkciju. Nakon završetka rada kombiniranih naredbi poziva se funkcija pretvaranja informacija u tekstualni oblik (pretvaranje podataka u nizove) pomoću oblikovanja teksta.

Skripte

Unatoč činjenici da ljuska može automatizirati mnoge radnje, naredbe morate unositi ručno, što nije baš zgodno.

Pogotovo kada se iste operacije moraju izvoditi kontinuirano.

A ne možete bez ljudskog faktora: tipkarske pogreške, pogreške, nehotično pritiskanje tipki prilikom pisanja redaka koda, ispravljanje ili ponovno upisivanje retka zahtijevaju jednostavniji stav.

Za obavljanje monotonih lanaca radnji u PS-u implementiraju se skripte - tekstualne datoteke s nizom naredbi razumljivih za tumača iznutra.

Skriptiranje u PowerShell-u dodatno će pojednostaviti i automatizirati rad i održavanje računala, osobito ako skripta sadrži račve, uvjete, logičke operacije i petlje.

Ali ovdje “nije sve zlato što blista”: pisanje vlastitog scenarija ili učitavanje gotovog scenarija (iako ga malo prilagodite vlastitim ciljevima) neće ići tako lako.

Ako uMicrosoftbilo je dopušteno, koliko nevolja napravio skripte zaPowerShell koje su napisali prevaranti i zlobnici u plaćeničke ili huliganske svrhe.

Za pokretanje u sustavu Windows PS, morate proći kroz njegovu kontrolu pokretanja.

Ako ne uspije, a skripta se treba izvršiti, morat ćete promijeniti konfiguraciju objekata odgovornih za sigurnosne makronaredbe.

Prije korištenja skripti

Prilikom rada VBS-a javljaju se brojni problemi kojih su se PowerShell programeri u potpunosti riješili, ako se ne snizi sigurnost skriptiranja kako bi se zadovoljili zahtjevi korisnika za skriptiranjem ili kako bi se riješili problemi vezani uz razinu sigurnosti operacijskog sustava.

Pokretanje preuzete skripte na korisnikovom stroju jednostavan je i učinkovit način distribucije zlonamjernog softvera ili krađe osobnih podataka od strane kibernetičkih kriminalaca.

Sve se događa zbog elementarnog neznanja sadržaja datoteke skripte (ps1) te želja da brzo riješe svoje probleme na račun rada drugih. Objekti koji kontroliraju razinu sigurnosti skriptiranja stvaraju okruženje u kojem je nemoguće pokrenuti skriptu.

Namjerno pokretanje makronaredbi događa se nakon promjene razine sigurnosti, ako korisnik da zeleno svjetlo, shvati što radi i sa sigurnošću zna što se nalazi u datoteci *.ps1.

Zbog neugodnosti konfiguriranja zaštite za osobe koje trebaju implementirati i izvršiti vlastite skripte, moguće je promijeniti konfiguraciju.

Ovdje možete smanjiti zaštitu na minimum i razumno manevrirati između mogućnosti otvaranja rupa za prodor i praktičnosti rada s PowerShell-om.

Ljuska ima tri razine sigurnosti:

  • datoteke s ekstenzijom ps1 sustav ne identificira kao izvršni i označen kao nepoznat ili tekst (otvorite dvostrukim klikom u uređivaču teksta koji se prema zadanim postavkama koristi na računalu);
  • ljuska vam omogućuje izvršavanje skripti nakon što navedete puni put do njih, datoteke skripte u trenutnom direktoriju se ne pretražuju, što onemogućuje izvršavanje makronaredbi koje se nalaze u trenutnom direktoriju;
  • pokretanje ugrađene skripte Politike izvršavanja odgovoran za dodavanje potrebnih skripti na popis dopuštenih skripti.

Nemojte ni razmišljati o promjeni konfiguracije, spuštajući ga barem na drugu razinu, bez upoznavanja s osnovamaPowerShellsve dok ne počnete barem površno shvaćati sadržaj *.p.s1.

Tu je i koncept politike izvršavanja koja je dizajnirana da spriječi slučajno izvršavanje skripti. Postoji čak pet postavki pravila pokretanja:

  • ograničeno - instaliran prema zadanim postavkama, izvršavaju se samo skripte potpisane od strane Microsofta koje omogućuju dobivanje informacija o hardverskoj i softverskoj ljusci računala;
  • potpisane izbrisane datoteke- sve makronaredbe se mogu izvršiti, ali datoteke poslane poštom moraju biti potpisane;
  • digitalno potpisan iz pouzdanog izvora- sve potpisane skripte se izvršavaju;
  • neograničen- pokretanje bilo koje makronaredbe;
  • zaobići- namijenjeni su programerima koji kreiraju vlastiti sigurnosni sustav, a ne koriste onaj koji je predstavljen u ljusci.

Možete provjeriti trenutno stanje politike pokretanja pomoću naredbe "Get-ExecutionPolicy".Bez obzira na sigurnosnu politiku, korisnik neće moći pokrenuti skriptu koja sadrži naredbe za čije izvršavanje nema dovoljne privilegije.

Pokretanje PowerShell-a

Vrijeme je da prijeđemo s teorije na praksu. Dakle, da biste izvršili skripte, morate dobiti digitalni potpis ili (druga opcija je jednostavnija).

Postoji nekoliko načina za pozivanje prozora PowerShell.

Predstavlja se u dva oblika:

  • klasična konzola;

  • PowerShell ISE - dodaje podršku za kartice, sintaksu, pomoć u kontekstu, kontekst te glavne i izbornike, što uvelike olakšava rad u interpretatoru.

Početak

Najlakši način nazvati PS je putem Start.

  1. Otvorite izbornik(u sustavu Windows 7 kliknite "Svi programi").
  2. Idite na Windows PowerShell direktorij i kliknite na željenu ikonu.

Riža. 6 - Pokretanje PS-a kroz dijaloški okvir Pokreni

Win + X

U sustavu Windows 10 PS se može pozvati iz WinX izbornika. Činjenica je da po defaultu, klikom na naredbu "naredbena linija" otvorite CMD. Može se zamijeniti PowerShell-om.

Otvorite "Svojstva" trake zadataka, na kartici "Navigacija" stavite kvačicu pored jedine opcije i spremite postavke.

PowerShell možete pozvati kroz naredbeni redak tako što ćete u njega napisati "powershell" ili pokrenuti izvršnu datoteku duž putanje:% WINDIR% \ Sustav32 \ WindowsPowerShell \ v1.0 za 32-bitne sustave i at% WINDIR% \ syswow64 \ WindowsPowerShell \ v1.0 za 64-bitni Windows bilo kojeg izdanja.

Riža. 8 - Pokrenite PS iz direktorija u kojem je pohranjena njegova izvršna datoteka

Učenje PowerShell - knjige i resursi

Ovaj članak otvara niz postova posvećenih PowerShell... Da, vrijeme je za naredbeni redak!

Ukratko - što je PowerShell?

  • PowerShell - Shell naredbenog retka
  • PowerShell naredbe se izvode u cjevovodu
  • PowerShell je proširiv za različite tehnologije
  • i što je najvažnije, svladavanjem PowerShell-a postat ćete vještiji administrator.

Zašto PowerShell?

Dvije su stvari vrijedne pažnje. Prije svega, PowerShell sadrži skriptni jezik; to je vrlo kompaktan jezik sa samo dvadesetak ključnih riječi. Ali u stvarnosti PowerShell, kao što je gore spomenuto, je ljuska naredbenog retka, slično kao cmd.exe ili UNIX Bash ljuska.

Druga točka: Microsoft obeshrabruje praksu korištenja konzola s GUI-om na poslužiteljima. Stvar je u tome da poslužitelji mogu osigurati učinkovito funkcioniranje grafičkih sučelja samo po cijenu degradiranja performansi poslužitelja. Ali korištenje grafičkog sučelja na klijentima, čak i ako su ti klijenti spojeni na poslužitelj, i danas je u redu. Dakle u novijim verzijama Windows Server sve su funkcije dostupne prvenstveno putem PowerShell-a, a tek onda (a neke uopće nisu dostupne) putem poslužiteljskog GUI-ja.

PowerShell možete preuzeti s TechNet-a - ali dostupan je iz kutije u modernim operativnim sustavima MS Winodws.

Za lakši početak učenja Windows PowerShell-a, predstavljam vam izbor različitih materijala. Započnimo popis s video tečajem iz daleke 2009. godine:

  • Pisanje prve skripte i upoznavanje sa Windows PowerShellom

Internetski resursi:

  • Ovladavanje PowerShellom - powershell.com

Programi:

  • Preglednik skripti za Windows PowerShell ISE... Ovaj dodatak omogućuje vam da lako pronađete potrebne skripte u TechNet centru za skripte prema navedenim kriterijima i parametrima. Uz to, sadrži i poseban modul Script Analyzer, koji nakon analize predlaže poboljšanja/promjene koje povećavaju učinkovitost napisane skripte. Ovaj se modul može dobiti iz paketa Windows PowerShell ISE koji je dio Windows OC-a. Kvaka je u tome što Windows Server i PowerShell ISE zahtijevaju aktivaciju. Sama licenca je plaćena, ali ne očajavajte. Imat ćete oko 180 dana za testiranje ovog proizvoda.
  • Dell PowerGUI - Omogućuje vam da pojednostavite izradu vlastitih PowerShell skripti tako da jednostavno odaberete potrebne cmdlete koji su prikladni za vaš zadatak i povučete ih i ispustite gdje god želite. Idealno za sve koji tek koriste PowerShell, ali s osnovnim razumijevanjem koncepata. PowerGUI je uređivač jednostavan za korištenje koji će vjerojatno poboljšati vaše razumijevanje sastavljanja složenijih i sofisticiranih skripti, pogotovo ako ste najbolji u vizualnom upijanju informacija.

Jedan od najosnovnijih izvora znanja je izvrsna programska pomoć:

Nadam se da će vam ovaj popis resursa pomoći u učenju PowerShell... Koje ste knjige i prakse koristili? Ostavite svoj odgovor u komentarima i sretno u svladavanju novih znanja! 😉

Postoje stvari koje radimo svaki dan kao Windows mrežni administratori, ali kada bi se od nas tražilo da ih radimo pomoću naredbenog retka, za razliku od Linux administratora, to bi bilo prilično problematično za nas Windows administratore. Windows je uvijek bio slab kada su u pitanju alati naredbenog retka. Po mom mišljenju, sve se promijenilo pojavom Windows Powershella. Uz pomoć Powershell-a (ili drugim riječima PS-a) možete izvoditi toliko različitih funkcija koje prije nismo mogli. U ovom članku ćemo se usredotočiti na to kako nam Powershell može pomoći u izvođenju nekih uobičajenih mrežnih funkcija 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 funkciju Powershell pomoću čarobnjaka za dodavanje funkcija. Proces instalacije traje oko minutu, a nakon što je komponenta instalirana, imate pristup nevjerojatnom jeziku skriptiranja naredbenog retka. Za razliku od drugih skriptnih jezika u sustavu Windows, Powershell je dizajniran isključivo za administratore sustava. Powershell u svom radu koristi .NET i naredbe ("cmdlets" ili "command-lets"). Kao korisnik PS-a, možete koristiti naredbe pojedinačno ili ih povezati za postizanje složenijih zadataka.

Nakon što instalirate PS, trebali biste moći pokrenuti Start -> Svi programi -> Windows Powershell 1.0 i pritisnite Windows PowerShell... U ovom trenutku trebali biste imati plavi CLI prozor koji izgleda kao onaj prikazan na slici 1.

Slika 1: Windows Powershell naredbeni prozor

Uvijek možete reći da radite u Powershell-u, jer PS prozor 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 mrežne zadatke koji se mogu obaviti u PS-u.

Navedite IP adrese vašeg poslužitelja

Da biste dobili popis IP adresa na vašem Windows 2008 poslužitelju, trebate upotrijebiti sljedeću naredbu:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE - ComputerName. | Odaberite-Objekt-Svojstvo IPAdresa

Ovako izgledaju podaci nakon upotrebe ove naredbe na mom Windows 2008 poslužitelju:

Slika 2: Popis IP adresa pomoću Windows Powershell-a

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

Kao što nas uči korisnički priručnik za powershell, rezultirajući podaci su niz i IP adresu možete vidjeti samo slanjem ovih podataka na "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 adrese SAMO uz Windows Powershell

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

Da biste vidjeli osnovnu konfiguraciju vašeg mrežnog adaptera, možete koristiti sljedeću naredbu:

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

Iako se ovaj članak fokusira na korištenje PS-a u sustavu Windows Server 2008, ovaj se uslužni program također može koristiti u sustavu Windows XP, Vista ili Server 2003. Evo primjera izlaza iz naredbe koja se izvodi na mojoj radnoj stanici Windows XP:

Slika 4: PowerShell prikazuje konfiguraciju mrežnog adaptera u sustavu Windows XP

Testirajte prozivanje računala pomoću PowerShell-a

Iako PS Command Prompt još uvijek može izvršiti sve normalne Windows naredbe (kao što je probno ispitivanje), snaga Powershell-a je u tome što možete s lakoćom preuzeti unos i modificirati ga.

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

Evo naredbe koja je korištena:

Get-WmiObject -Class Win32_PingStatus -Filter "Adresa =" 127.0.0.1 "" - Naziv računala. | Select-Object -Adresa svojstva, ResponseTime, StatusCode

A evo i rezultata korištenja naredbe na mom Windows računalu:

Slika 5: PowerShell podaci pokazuju status ankete raščlanjene s Select-Object

Dopusti dijeljenje mape pomoću Windows Powershell-a

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

Sljedeća PS naredba dijelit će mapu u C: \ temp kao "davidtemp" i primijeniti izvrsnu naredbu na nju:

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

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

Neto udio davidtemp = C: \ temp / napomena: "David" s Temp dijeljena mapa "

Slika 6: PowerShell podaci i tradicionalna naredba Net Share

Imajte na umu da naredba Powershell nije samo propala, već mi je donijela strašnu pogrešku. Isprobao sam ovu naredbu u sustavima Windows XP i Vista i bio sam administrator sustava.

S druge strane, zapovijed neto udio vrlo jednostavno i uspjelo je iz prvog pokušaja. Dok vas pokušavam naučiti kako raditi s Powershellom, imajte na umu da Powershell može koristiti tradicionalne mrežne naredbe sustava Windows, koje su u mnogim slučajevima mnogo 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 dolazi Powershell.

Druge mreže i složenije naredbe

Ako ćete koristiti samo najosnovnije naredbe mrežne administracije u Powershell-u, mogli biste se zbuniti i više ih nećete koristiti, jer kao i svaki drugi skriptni jezik, ovdje morate naučiti.

Međutim, nakon što prevladate poteškoće u učenju i naučite koristiti ovaj jezik, imat ćete alat koji je vrlo učinkovit i koji vam može uštedjeti vrijeme.

Kao što ste možda primijetili iz prethodnih primjera, jedan od parametara za većinu Powershell naredbi je "ime računala". Kada stavimo točku (".") Umjesto imena računala (ime računala), to će biti lokalni host (naše računalo). Međutim, također možemo zamijeniti bilo koju IP adresu ili naziv Windows računala u domeni, što nam daje mogućnost korištenja ovih naredbi ne samo na našem računalu, već i stvaranje moćnih skripti u Powershell-u koje se mogu primijeniti na svim računalima u mreži.

Na primjer, evo naredbe 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 evo i veće slike koja prikazuje informacije koje su vam potrebne:

Slika 8: Povećanje prozora Powershell rezultata dohvaćanja IP adrese udaljenog računala

Dakle, sposobnost rada s udaljenim računalima glavna je značajka Powershella, 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 ("Adresa =" "+ $ _ +" "") -ComputerName.) | Select-Object -Adresa svojstva, ResponseTime, StatusCode

U ovom primjeru dobivena je lista IP adresa i naziva domena. Ovaj popis je proslijeđen na "ForEach-Object". Za svaki od ovih "objekata" (IP adresa / nazivi domena) korišten je element PingStatus "Get-WmiObject". Podaci testne ankete za svaki naziv domene zatim su proslijeđeni kroz Select-Object, što je rezultiralo prikazivanjem samo adresa, vremena odgovora i statusnih kodova.

Slika 9: Testiranje anketiranja s popisom pri kombiniranju i prozivanju podataka

Po mom mišljenju, ovaj primjer pokazuje neke od Powershellovih mogućnosti. Kao što vidite, možete usmjeravati i preusmjeravati ulaz i izlaz u različitim smjerovima dok postižete svoje ciljeve administracije.

Što još trebate znati?

Zaključak

Windows Powershell je vrlo moćan uslužni program. Nemoguće je u ovom članku opisati sve što možete učiniti s Powershellom, ali nadam se da sam vam uspio dati opću sliku mogućnosti ovog uslužnog programa i potaknuti vas na daljnja istraživanja u ovom području. Svaki dan na internetu postoje nove knjige, tečajevi i hrpa materijala o Powershell funkcijama koje mogu koristiti administratori sustava Windows. S obzirom na snažnu privrženost Windows administratora GUI-u, trebat će vremena da Powershell usvoje tvrtke koje nemaju jaku potrebu za alatom. Siguran sam da će administratori koristiti Powershell za izradu kraćih skripti koje se mogu nositi sa složenijim zadacima. Hope Powershell nastavlja rasti u popularnosti diljem svijeta!

Posebno zahvaljujemo Microsoftu na pružanju primjera naredbi u dokumentaciji korisničkog vodiča za Windows Powershell.

U ovom članku ćemo pogledati takvu tehnologiju iz Microsofta kao što je Windows PowerShell, razgovarat ćemo o tome što je PowerShell, što su cmdleti i cjevovod, kako pisati skripte i module, a također ćemo se dotaknuti drugih jednako važnih i korisnih značajki Windows PowerShell-a.

Što je stvorilo Windows PowerShell?

Prije nego što je postojao PowerShell ( i postojati) sljedeće alate za automatizaciju i administriranje usluga: Windows naredbeni redak i Windows Script Host. Ali ove tehnologije imaju nedostatke.

Naredbeni redak Windows također ima mogućnost obavljanja nekih administrativnih zadataka i mogućnost snimanja algoritma radnji, spremanja kao skripte (bat-file), dok možete koristiti neke programske elemente, na primjer, koristiti varijable, uvjetne i čak nešto poput petlji.

Većina softverskih proizvoda ima sučelje konzole, t.j. možemo upravljati programom pomoću naredbenog retka, uz uštedu resursa zbog nepostojanja troškova rada grafičkog sučelja. Microsoft čak izdaje negrafička izdanja za operativni sustav Windows Server ( Server Core, Windows Server 2016 čak ima i Nano Server), ali sve to nije dovoljno, budući da su mogućnosti naredbenog retka ograničene, t.j. ne možemo napisati neku složenu logiku da nešto automatiziramo, a ako možemo, onda će nam trebati vremena i znanja.

Također, nedostatak naredbenog retka je što za potpuno upravljanje poslužiteljem koristimo razne konzolne uslužne programe softverskih proizvoda, te je stoga zapravo teško koristiti naredbeni redak za administraciju, s gledišta činjenice da svi ovi uslužni programi imaju različitu sintaksu, parametre, metode korištenja itd. radi obavljanja tipičnih zadataka, t.j. svakodnevno morate sve to čuvati u memoriji, a za obavljanje netipičnih zadataka prvo morate pročitati pomoć ili dokumentaciju.

Tehnologija Windows Script Host omogućuje vam obavljanje svih administrativnih zadataka kao naredbenog retka, uključujući njihovu automatizaciju pisanjem WSH skripti, ali ovdje već možemo koristiti punopravne programske jezike ( VBScript i JScript), tj. možete implementirati složenu logiku i algoritme. Osim toga, uz pomoć WSH-a, upravljamo softverskim proizvodima kroz objektno sučelje, drugim riječima, Windows Script Host je mnogo " hladnjak»Nego naredbeni redak. Ali ova tehnologija također nije postala onaj idealan alat za administraciju i automatizaciju ove administracije za administratore sustava, budući da je Windows Script Host zahtijevao poznavanje gore navedenih programskih jezika, što je zapravo suvišno administratorima sustava. Administratorima je potreban samo jednostavan administrativni alat s mogućnošću programiranja nekih radnji, a ne žele se upuštati u objektne modele softverskih proizvoda u programskim jezicima VBScript i JScript.

Kao rezultat toga, Microsoft je trebao razviti administrativni alat za administratore sustava koji bi 100 posto zadovoljio sve potrebe sistemskih administratora u pogledu administrativnih i automatiziranih mogućnosti i upotrebljivosti, tako je nastao Windows PowerShell.

Što je Windows PowerShell?

Windows PowerShell Je skriptni jezik i Windows naredbena ljuska dizajnirana za administraciju i konfiguraciju operacijskih sustava Windows. PowerShell je izgrađen na vrhu CRL-a i .NET Frameworka, a za razliku od naredbenog retka koji prihvaća i vraća tekst, Windows PowerShell radi s objektima. Svaki objekt u PowerShell-u ima svojstva i metode koje možete koristiti za manipuliranje tim objektima.

U sustavu Windows PowerShell, Microsoft je razvio koncept cmdleta ( cmdleti), što je sustav imenovanja naredbi “ Glagol-imenica". Ovaj sustav omogućuje administratorima sustava da brzo nauče i pojednostave rad s PowerShellom.

Uz Windows PowerShell možete:

  • Pristup datotečnom sustavu;
  • Upravljanje registrom;
  • Upravljanje uslugama;
  • Upravljati procesima;
  • Konfigurirajte operativni sustav;
  • Instalirajte softver;
  • Instalirajte uloge i komponente poslužitelja;
  • Administriranje i konfiguriranje uloga i komponenti poslužitelja;
  • Pisati i koristiti skripte za automatizaciju upravljanja i administracije;
  • Obavljati druge zadatke administratora sustava.

Windows PowerShell sadrži mnoge često korištene uslužne programe i naredbe retka za naredbe, kao što su ipconfig, ping i drugi. To je učinjeno kako bi se olakšao prijelaz administratora sustava s naredbenog retka na PowerShell.

Također, radi praktičnosti, mnoge najčešće korištene naredbe i uslužni programi u PowerShellu imaju sinonime ( Alias), na primjer cls je sinonim za Clear-Host cmdlet, dir je sinonim za Get-ChildItem ( potpuni popis sinonima može se vidjeti pokretanjem Get-Alias ​​cmdleta).

Kako biste lakše pronašli potrebnu naredbu, PowerShell ima poseban Get-Command cmdlet pomoću kojeg možete pretraživati ​​i glagol i imenicu. Sve naredbe u Windows PowerShell-u grupirane su u module ( npr. Hyper-V, NetTCPIP), što također olakšava pronalaženje naredbe koju želite.

Nakon što je tražena naredba pronađena, možete pogledati upute za rad s ovom naredbom, tj. Pomoć, za tu svrhu postoji poseban cmdlet Get-Help, na primjer, sljedeća naredba će prikazati pomoć za Get-Command cmdlet:

Get-Help Get-Command

Pomoć za Windows PowerShell može biti kratka, detaljna ( parametar -Detaljno) dovršeno ( parametar -Full), i samo primjeri ( parametar - Primjeri). Sljedeća naredba će pokazati samo primjere kako koristiti cmdlet Get-Command:

Get-Help Get-Command -Primjeri

PowerShell pomoć se može ažurirati, tj. može se ažurirati naredbom Update-Help.

Windows PowerShell verzije

Prva verzija PowerShell-a 1.0 pojavila se 14. studenog 2006. i izdana je kao zasebna distribucija koja se mogla instalirati na sljedeće verzije operacijskih sustava Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 i Windows Vista.

U sustavu Windows Server 2008, PowerShell 1.0 isporučen je kao komponenta koju je također trebalo instalirati.

Počevši od Windows 7 i Windows Server 2008 R2, PowerShell se isporučuje kao sastavni dio sustava ( oni. unaprijed instaliran, nema potrebe za instaliranjem). Ispod je tablica korespondencije između verzije PowerShell i verzije operativnog sustava Windows ( oni. koja je verzija PowerShell-a instalirana prema zadanim postavkama na kojoj verziji sustava Windows):

PowerShell verzija Windows verzije
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

Sa svakom novom verzijom PowerShell postaje sve moćniji administrativni alat, za usporedbu, prvi PowerShell je imao oko 130 cmdleta, a u PowerShell 5.0 ih ima već više od 600!

Trenutnu verziju PowerShell-a možete saznati korištenjem svojstva PSVersion ugrađene varijable $PSVersionTable, na primjer, pokrenite sljedeću naredbu:

$ PSVersionTable.PSVersion

Ili pokrenite cmdlet

Get-Variable -Name PSVersionTable -ValueOnly

gdje će vrijednost PSVersion biti verzija PowerShell-a.

PowerShell jezik

PowerShell Je objektno orijentirani programski jezik za skriptiranje. Koristi se za pisanje naredbi za upravljanje svim komponentama operacijskog sustava Windows u Windows PowerShell i za pisanje skripti za automatizaciju administrativnih zadataka u Windows PowerShell Integriranom Scripting Environmentu (ISE). Iako je PowerShell stvoren za administrativne zadatke, on je punopravni programski jezik za skriptiranje, budući da ima programske strukture koje su prisutne u svakom programskom jeziku, kao što su: uvjeti, petlje, rukovanje pogreškama, rad s varijablama, objektima, nizovima.

PowerShell ima jedinstvenu sintaksu za pisanje naredbi i strukturu za imenovanje ovih naredbi prema principu " Glagol-imenica", što ovaj jezik čini intuitivnim i za programere i za administratore sustava.

Windows PowerShell

Windows PowerShell Je okruženje za izvršavanje naredbi i skripte PowerShell. Ova ljuska ima iste mogućnosti kao i naredbeni redak, kao što su: pohranjivanje povijesti izvršenja naredbi, prilagođavanje izgleda ljuske, dovršavanje izvršavanja naredbi s tipkovnim prečacem Ctrl + C, kao i mnoge druge značajke koje nisu dostupna u ljusci naredbenog retka, na primjer, tako divna značajka kao što je " isticanje sintakse» ( pojavio u PowerShell 5.0).

Postoji nekoliko načina za pokretanje PowerShell-a, na primjer:

  • Iz naredbenog retka upisivanjem PowerShell;
  • Kroz dijaloški okvir " Izvršiti» ( tipkovnički prečac Win + R), također upisivanjem PowerShell;
  • U sustavu Windows 7 - Start -> Svi programi -> Pribor -> Windows PowerShell -> Windows PowerShell;
  • U sustavu Windows 8.1 ili Windows Server 2012 R2 - Start -> Svi programi -> Alati sustava -> Windows PowerShell;
  • U sustavu Windows 10 ili Windows Server 2016 - Start -> Svi programi -> Windows PowerShell direktorij ( u grupi W) -> Windows PowerShell.

Primjer pokretanja PowerShell-a na Windows Serveru 2016

Snimka zaslona PowerShell-a u sustavu Windows Server 2016

PowerShell cmdleti

Cmdlet (cmdlet) Naredba je Windows PowerShell koju možete koristiti za interakciju s objektima operacijskog sustava kako biste njima upravljali. Ove su naredbe dio jezika PowerShell. Cmdleti su izgrađeni na principu " Glagol-imenica", odvojeno crticom (-); drugim riječima, prvo označavamo što treba učiniti, a crticom - preko čega. Na primjer, cmdlet Get-Help, gdje je Get glagol koji znači " Primiti", A pomoć je imenica" Pomozite"U kontekstu PowerShell-a" Prikaži - Pomoć". PowerShell cmdleti vraćaju rezultate kao objekte, što je jedna od glavnih razlika u odnosu na naredbeni redak Windowsa, u kojem naredbe vraćaju samo tekst na zaslon.

Osim cmdleta za primanje podataka (Get), postoje i takve vrste cmdleta kao što su:

  • Dodaj - dodavanje podataka;
  • Očistiti - očistiti;
  • Omogućiti - omogućiti;
  • Onemogućiti - onemogućiti;
  • Novo - stvoriti;
  • Ukloniti - ukloniti;
  • Set - set;
  • Start - start;
  • Zaustaviti - stati;
  • Izvoz - izvoz;
  • Uvoz - uvoz;
  • I još mnogo toga.

Za potpuni popis cmdlet-a u Windows PowerShell-u upotrijebite namjenski Get-Command cmdlet. Na primjer, pokrenite ga s parametrom cmdlet -CommandType, kao rezultat toga, vidjet ćete popis cmdleta na ekranu.

Get-Command -CommandType cmdlet

Kao što ste već shvatili, cmdlet imaju parametre s kojima možemo konkretizirati radnje cmdleta. Parametri mogu biti obvezni i neobavezni, na primjer, Get-Command cmdlet nema potrebne parametre.

Slika ispod prikazuje način traženja cmdleta pomoću glagola ( parametar Glagol). U ovom slučaju imamo popis cmdlet-a koji mogu ponovno pokrenuti nešto.

Tim

Get-Command -Glagol Restart

Da biste tražili cmdlet po imenici, morate koristiti parametar Noun. Na primjer, ispod smo dobili popis cmdlet-a koji rade s uslugama.

Tim

Get-Command -Noun Service

Ako niste pronašli traženi cmdlet pod punim imenom, možete koristiti masku u formatu * Text *.

PowerShell cjevovod

Jedna od glavnih značajki Windows PowerShell-a je njegova sposobnost korištenja cjevovoda prilikom izvršavanja naredbi.

Transporter Je usmjeriti izlaz cmdleta kroz cijev (|) do drugog cmdleta. Istodobno, kao što se sjećate, u PowerShell cmdletima rade s objektima i vraćaju objekte, odnosno objekti se također prosljeđuju duž cjevovoda.

Koristeći cjevovod, možete obavljati složene zadatke na jednostavan i praktičan način bez potrebe za pisanjem složenih algoritama i skripti.

Na primjer, saznajmo naziv najveće datoteke u direktoriju C: \ Windows \ System32 ( jednostavan primjer cjevovoda).

Tim

Get-ChildItem -Put "C: \ Windows \ System32" -Datoteka | Sortiraj-Duljina objekta-Silazno | Odaberite-Objekat-Prvi 1

  • Get-ChildItem - cmdlet za dobivanje objekata u navedenom direktoriju;
  • Sort-Object - cmdlet za sortiranje objekata, u našem slučaju sortiramo po veličini datoteke ( dužina -Silazna);
  • Select-Object je cmdlet za odabir željenih svojstava objekta, u našem slučaju prikazujemo standardna polja i samo prvi objekt, tj. velika datoteka ( parametar -Prvi 1).

Svi cmdleti su međusobno odvojeni okomitim trakama. Izlaz svakog cmdleta prosljeđuje se na ulaz drugog cmdleta, tj. prvo dobivamo sve objekte u navedenom direktoriju, zatim sortiramo rezultat i na kraju odabiremo prvi objekt.

Pozadinsko izvršavanje zadataka

Windows PowerShell ima mogućnost izvršavanja zadataka u pozadini, to je mehanizam s kojim možete pokrenuti naredbu ( na primjer, za čije izvođenje je potrebno mnogo vremena) u pozadini, t.j. nakon pokretanja, vraćate se na trenutnu sesiju i možete nastaviti s radom bez čekanja da se naredba završi. Ova će vam značajka trebati kada trebate pokrenuti naredbu za koju je potrebno dugo vremena da se pokrene, ali kao što znate, tijekom tog vremena sesija PowerShella je blokirana dok naredba ne završi, a vi morate nastaviti s radom.

Možete upravljati svim zadacima koji se izvode u pozadini, na primjer, pogledati popis zadataka, zaustaviti zadatak, izbrisati zadatak i, naravno, pogledati rezultat zadatka.

Windows PowerShell pruža sljedeće cmdlete za rad s pozadinskim poslovima:

  • Start-Job - pokretanje pozadinskog zadatka;
  • Stop-Job - zaustavi pozadinski zadatak
  • Get-Job - pogledajte popis pozadinskih zadataka;
  • Receive-Job - pogledajte rezultat izvršavanja pozadinskog zadatka;
  • Remove-Job - ukloniti pozadinski zadatak;
  • Wait-Job - donesite pozadinski zadatak na početak kako biste čekali njegov završetak.

Da biste radili u pozadini, morate napisati naredbu Start-Job, au vitičastim zagradama () naredbu ili skup naredbi koje se moraju izvršiti u pozadini.

Na primjer, pokrenimo neki zadatak ( prikaži popis usluga) u pozadini, zatim pogledajte popis pozadinskih poslova i prikažite rezultat našeg posla ( oni. popis usluga).

Izvođenje zadatka u pozadini

Početak-Posao (Dobivanje-usluga)

Gledamo popis zadataka koji se izvršavaju u pozadini

Prikaz rezultata zadatka Job1

Posao primanja1

Kao što vidite, imamo zadatak sa statusom “ Dovršeno", tj. već je izvršeno ( samo Get-Service radi brzo).

Da bismo vidjeli rezultat pozadinskog zadatka, t.j. cmdlet Get-Service, pokrenuli smo naredbu Receive-Job i prenijeli joj naziv posla ( moguća je i vrijednost identifikatora). Kao rezultat toga, prikazali smo popis usluga.

PowerShell daljinsko upravljanje

Windows PowerShell nije dizajniran samo za lokalnu upotrebu, već i za daljinsko izvršavanje naredbi. Ova značajka je neophodna kako biste mogli upravljati udaljenim računalima sa svog radnog mjesta, tj. pokrenite PowerShell naredbe.

Postoji nekoliko načina za daljinsko upravljanje:

  • Korištenje parametra – Ime računala (mnogi timovi imaju). Drugim riječima, kao parametar prosljeđujete ime računala na kojem želite pokrenuti naredbu. Metoda ima nedostatak, jer je ograničena na izvršenje jedne naredbe;
  • Kroz sjednice. Cmdlet Enter-PSSession (interaktivna sesija). Na taj način se povezujete s udaljenim računalom i sve naredbe koje upišete u PowerShell izvršit će se na udaljenom računalu na isti način kao da upisujete naredbe izravno na udaljenom računalu. Metoda također ima nedostatak što je sesija ograničena na jedno računalo;
  • Korištenje cmdleta Invoke-Command... Koristeći ovu metodu, možete pokrenuti naredbe ili skripte na jednom računalu ili na nekoliko.

Na primjer, za povezivanje s udaljenim računalom ( u primjeru ispod Ime poslužitelja) u interaktivnoj sesiji pokrenite sljedeću naredbu:

Unesite-PSSession ServerName

Skripte, funkcije i moduli u Windows PowerShell

Ako ste napisali određeni algoritam, najvjerojatnije ćete ga htjeti spremiti kako biste ga koristili u budućnosti. Windows PowerShell nudi mehanizam za skriptiranje u tu svrhu.

Bit ovog mehanizma je sljedeća, napišete skup naredbi koje su vam potrebne i spremite ga kao skriptu - ovo je jednostavna tekstualna datoteka s ekstenzijom .PS1.

Zatim, da biste izvršili ovu skriptu, jednostavno je pokrenite u PowerShell-u. U tom slučaju trebate ili navesti puni put do datoteke skripte ili otići u direktorij sa skriptom i nazvati je imenom.

Važno!

Prema zadanim postavkama, skriptiranje je zabranjeno u sustavu Windows! Da biste vidjeli politiku izvršavanja skripte, pokrenite cmdlet Get-ExecutionPolicy... Kao rezultat, vratit će valjanu politiku, na primjer:

  • Ograničeno - izvođenje bilo koje skripte je blokirano ( zadano);
  • AllSigned - dopušteno je izvršavanje digitalno potpisanih skripti;
  • RemoteSigned - dopušteno je izvršavanje lokalnih skripti, sve preuzete skripte moraju biti digitalno potpisane;
  • Neograničeno - dopuštene su sve skripte ( ne preporučuje se jer nije sigurno!).

Da biste omogućili skriptiranje, morate koristiti cmdlet Set-ExecutionPolicy s jednim od gore navedenih parametara.

Na primjer, da biste dopustili pokretanje lokalnih skripti, pokrenite sljedeću naredbu i prihvatite promjene pritiskom na Y.

Set-ExecutionPolicy RemoteSigned

Parametre možete proslijediti u skriptu, učiniti ih obaveznim ili postaviti zadanu vrijednost.

Windows PowerShell pruža mehanizam za stvaranje vlastitih funkcija, koje se, poput ugrađenih cmdleta, mogu koristiti u PowerShellu.

Da biste to učinili, morate odrediti ključnu riječ Function, a zatim u vitičastim zagradama () napisati algoritam za rad ove funkcije, tj. skup naredbi ( na primjer, neki uobičajeni postupak: kreiranje korisnika s određenim pravima, brisanje određenih direktorija i tako dalje). Zatim sve to trebate spremiti u skriptu, ali samo s ekstenzijom .psm1, jer će ova datoteka već biti modul.

To nije sve, ovu datoteku treba smjestiti u direktorij u kojem PowerShell traži module. Postoji nekoliko takvih imenika ( poseban direktorij u korisničkom profilu, direktorij gdje je instaliran PowerShell), mogu se vidjeti u varijablama okruženja PowerShell. Da biste to učinili, pokrenite sljedeću naredbu

Get-ChildItem Env: \ PSModulePath | Format-Table -AutoSize

Nakon što stavite modul koji ste napisali u poseban direktorij, možete pristupiti svojim funkcijama poput uobičajenih PowerShell naredbi.

Windows PowerShell integrirano okruženje za skriptiranje (ISE)

Kako bi bilo prikladno pisanje skripti, funkcija i, sukladno tome, modula, Microsoft je razvio poseban grafički program Integrirano okruženje za pisanje skripti(ISE) je integrirano okruženje za skriptiranje. Vrlo je prikladno raditi u ovom programu, osim toga, ima moćnu funkcionalnost ( stvaranje mnogih kartica sa skriptama, izlazno područje, ugrađeni program za ispravljanje pogrešaka i još mnogo toga).

Možete ga započeti na sljedeći način:

  • U sustavu Windows 7 - Start -> Svi programi -> Pribor -> Windows PowerShell -> Windows PowerShell ISE;
  • U sustavu Windows 10 ili Windows Server 2016 - Start -> Svi programi -> Windows PowerShell direktorij ( u grupi W) -> Windows PowerShell ISE.

Bilješka! ISE neće raditi na Windows Serveru koji pokreće Server Core.

Snimka zaslona integriranog okruženja za skriptiranje (ISE) u sustavu Windows Server 2016

To je sve za mene, nadam se da vam je materijal bio koristan! Sretno!

Vrhunski povezani članci