Što je PowerShell? Kako otvoriti PowerShell, sve metode Što je Windows PowerShell

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima
73095

I proučavanje jelovnika Pokretanje sustava Windows 7 ili početni Windows zaslon 8 1, korisnici početnici često otkrivaju aplikacije čiju svrhu ne razumiju. Samo jedna takva aplikacija je PowerShell. Što je to PowerShell i ima li koristi? Pa kad se netko toga dosjetio i integrirao u Windowse, znači da ipak ima smisla. Usput, ovaj što je izmislio PowerShell je tvrtka Microsoft.


Dakle, . Ova je aplikacija prvenstveno namijenjena administratori sustava, i ovdje obični korisnici, osobito početnici, od toga neće imati gotovo nikakve koristi. PowerShell je moderna standardizirana ljuska naredbeni redak, pružajući veću fleksibilnost u upravljanju temeljenom na računalu operacijski sustav Windows. U biti, PowerShell je isti naredbeni redak, ali samo puno funkcionalniji.

Što može ovaj administrativni alat? Puno stvari. Uz njegovu pomoć administratori sustava i napredni korisnici mogu upravljati procesima, uslugama, pohranom datoteka, računima pa čak i poslužiteljima. Školjka vam također omogućuje trčanje vanjske naredbe, rad s objektima .NETO, COM I XML, izvoditi razne trikove i sl., stvarati i izvoditi vlastite scenarije. Usput, za pisanje skripti u sustavu Windows postoji posebna grafička konzola I.S.E., koji je svojevrsni dodatak glavnoj PowerShell ljusci.

Baš kao i konzola CMD, PowerShell ima vlastiti skup naredbi zvanih cmdleti. Uslužni program prepoznaje mnoge CMD naredbe, ali općenito se sintaksa jezika, definicije cmdleta i njihovi parametri razlikuju od onoga što su korisnici navikli vidjeti u uobičajenom retku za naredbe. Osim toga, poznate naredbe poput red , CD , kopirati itd., koje PowerShell savršeno razumije, zapravo su aliasi. Na primjer, naredba Dir , koristi se za gledanje sustav datoteka odgovara izvornom cmdlet-u Get-ChildItem. Pseudonimi, ili kako oni kažu, pseudonimi, služe isključivo radi praktičnosti.

Razumijevanje PowerShell za početnika, pogotovo ako nije upoznat s barem osnovama običnog naredbenog retka, neće biti lako. Ali nema toliko priručnika i referentnih knjiga koji su dovoljno jasni i lako razumljivi. Postoji dobar vodič koji je napisao Frank Koch, a preporučujemo ga da pročitate ako odlučite početi učiti PowerShell skriptni jezik. Pa, i naravno, vlastiti sustav pomoći ljuske.

Snažan je i opsežan, s mnogo konkretnih primjera. Vrlo je jednostavan za korištenje. Osnovne informacije o sustavu pomoći prikazuje cmdlet Dobiti pomoć. Cmdlet prikazuje popis svih dostupnih naredbi.

PowerShell ima niz načina izvršavanja koji određuju koju vrstu koda je dopušteno izvoditi. Sve to kontrolira ključ registra koji se nalazi u HKLM-u. postoje 4 drugačiji način rada pogubljenja:

ograničeno(Ograničeno): Zadana politika izvršavanja ne dopušta pokretanje skripti i dopušta samo pokretanje interaktivnih naredbi.

Sve potpisano(Svi potpisani): Omogućuje pokretanje svih skripti. Istina, sve skripte i konfiguracijske datoteke moraju biti potpisane od strane izdavača kojem vjerujete; Ovaj način vas izlaže riziku pokretanja potpisanih (ali zlonamjernih) skripti nakon što primite potvrdu povjerenja od izdavača.

Izbrisano potpisano(Daljinski potpisan): Lokalne skripte rade bez potpisa. Sve preuzete skripte moraju biti digitalno potpisane.

Neograničen(Neograničeno): Sve skripte i konfiguracijske datoteke primljene od komunikacijskih aplikacija, kao što su Microsoft Outlook, Internet Explorer, Outlook Express i Windows Messenger raditi nakon što potvrdite da razumijete da datoteka dolazi s Interneta; nikakav digitalni potpisi nije obavezno; Ovaj način vas izlaže riziku pokretanja nepotpisanih, zlonamjernih skripti.

Prema zadanim postavkama PowerShell koristi ograničeni način rada. U ovom načinu rada PowerShell radi samo kao interaktivna ljuska. Ne dopušta pokretanje skripti i učitava samo konfiguracijske datoteke koje je potpisao izdavač kojem vjerujete.

Ako dobijete neugodnu crvenu pogrešku, u većini slučajeva to je zato što pokušavate pokrenuti nepotpisanu skriptu. Najsigurniji način za rješavanje ovog problema je promijeniti politiku izvršavanja na neograničenu, pokrenuti skriptu i zatim se vratiti na ograničenu politiku.

Da biste promijenili politiku izvršavanja u neograničenu, pokrenite sljedeću naredbu u administrativnom PowerShell-u:

Set-ExecutionPolicy Unrestricted

Vidjet ćete zahtjev za potvrdu. Pritisni enter.

Sada možete pokrenuti preuzetu skriptu. Međutim, izlažete se ozbiljnom riziku, pa kada skripta završi s izvođenjem, svakako vratite politiku izvršavanja natrag u ograničeni način rada. To možete učiniti pomoću sljedeće naredbe:

Set-ExecutionPolicy Ograničeno

Još jednom ćete vidjeti zahtjev za potvrdu. Pritisni enter.

To je sve! Sretno ti!

Ima ih nekoliko na razne načine pokretanje skripte, u nastavku su glavni:

  1. Pokrenite PowerShell i u njoj pokrenite skriptu (unesite put do datoteke i naziv datoteke, npr. ovako: C:\Scripts\test.ps1 ili idite u mapu skripte naredbom cd C:\Scripts i pokrenite je s naredbom.\test.ps1) Školjka se može pronaći i pokrenuti na mnogo načina. Jedan način je kroz izbornik Start. Za Windows 7 - trebate ići na "Svi programi" - "Pribor" - " Windows PowerShell" i pokrenite ljusku "Windows PowerShell". Za Windows 10 - trebate pronaći grupu sa slovom "W" i u njoj ćete pronaći "Windows PowerShell".
  2. Pokrenite "Windows PowerShell ISE" je program - razvojno okruženje koje vam omogućuje uređivanje i ispravljanje pogrešaka u PowerShell skriptama, koje je također standardno dostupno uz sam PowerShell. Nakon što ga pokrenete, samo trebate kliknuti gumb "Otvori" ili otići na izbornik Datoteka - Otvori i odabrati željenu skriptu, zatim pritisnuti F5 ili gumb "Pokreni skriptu". Windows PowerShell ISE možete pronaći na istom mjestu kao ljuska PowerShell - u izborniku Start.
  3. Pokrenite standardni naredbeni redak i u njemu napiši:
    powershell -datoteka<имя_скрипта> (primjer: powershell -file myscript.ps1)

Ako dosad niste pokretali PowerShell skripte, vjerojatno ćete primiti sljedeću poruku: Ne mogu preuzeti datoteku<имя_скрипта>, budući da je izvršenje skripte zabranjeno za ovaj sustav. Upišite "get-help about_signing" za više informacija. To je zbog činjenice da iz sigurnosnih razloga i sprječavanja slučajnog izvršenja zlonamjerni kod, sve skripte moraju biti digitalno potpisane.

Kako dopustiti izvršavanje nepotpisane PowerShell skripte?

1. U PowerShell-u, prije pokretanja skripte, pokrenite naredbu da omogućite izvršavanje nepotpisanih skripti za trenutnu sesiju ljuske:

Set-ExecutionPolicy RemoteSigned -Scope proces

2. Prilikom pokretanja iz standardne naredbene linije koristite parametar -executionpolicy, tj. pokrenite skriptu ovako:

<имя_скрипта>

Obje metode postavljaju politiku samo za trenutnu sesiju, dok se sigurnosna politika za izvršavanje PowerShell skripti zapisana u registru neće mijenjati i ostat će ista. Ako želite promijeniti sigurnosnu politiku izvršavanja skripte na "trajnu", upotrijebite ovu metodu:

3. Dopusti pokretanje zauvijek: Pokrenite PowerShell kao administrator, zatim pokrenite naredbu:

Set-ExecutionPolicy RemoteSigned

Bilješka: Ako je skripta preuzeta s interneta, da biste izbjegli zahtjev za potvrdu pokretanja, morate koristiti Bypass umjesto RemoteSigned - potpuno gašenje sve zahtjeve i upozorenja.

Kako pokrenuti PowerShell skriptu u pozadini?

Da biste to učinili, samo upotrijebite parametar pokretanja -WindowStyle, koji može uzeti sljedeće vrijednosti: Normalno, Minimizirano, Maksimizirano i Skriveno. Dakle, za pokretanje nepotpisane skripte pozadina, trebate pokrenuti naredbu:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file<имя_скрипта>

Također možete dodati -NonInteractive ako želite, tako da skripta ne postavlja pitanja. Stoga će se skripta izvršiti nezapaženo od strane korisnika. Budite oprezni kada koristite ovu metodu.

Pokretanje skripte PowerShell s parametrima

Stvarno lansiranje treba izvesti kao da lansirate redovni program ili bat datoteka s parametrima. Na primjer, da biste pokrenuli skriptu s parametrima iz naredbenog retka, možete napisati sljedeću naredbu:

powershell -pravila izvršavanja RemoteSigned -datoteka<имя_скрипта>param1 param2 "drugi tekstualni parametar"

U samoj skripti ove parametre možete dobiti ovako:

Param ($var1, $var2, $var3) echo $var1, $var2, $var3

U PowerShell ISE, možete pokrenuti skriptu s parametrima na isti način koristeći naredbeno okno.

Kako pokrenuti PowerShell skriptu pomoću prečaca?

Ovaj se zadatak može izvršiti na dva načina:

  1. Napravite bat/cmd datoteku u koju ćete napisati naredbu za pokretanje skripte (pročitali ste gore navedene parametre)
  2. Stvorite prečac za PowerShell koji se nalazi u mapi c:\Windows\System32\WindowsPowerShell\v<версия>\ i u svojstvima prečaca u polju "Objekt" dodajte potrebne parametre.

Tako, na primjer, trčati powershell skripta Kada se korisnik prijavi, možete jednostavno stvoriti prečac kao što je opisano u paragrafu 2 i postaviti ga u startup. Također, stvaranje prečaca pomoću jedne od gore navedenih metoda omogućit će vam jednostavno pokretanje skripte kao administratora ili bilo kojeg drugog korisnika kao običnog programa.

PowerShell skriptni jezik je prilično moćan alat za rješavanje raznih problema, ali može se koristiti ne samo za dobre, već i za loše stvari, stoga ga koristite mudro ;)

U ovom članku ćemo pogledati takvu Microsoftovu tehnologiju kao 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.

Prije PowerShell-a postojali su ( i postoje) sljedeće alate za automatizaciju i administraciju usluga: Windows naredbeni redak i Windows Script Host. Ali ove tehnologije imaju nedostatke.

U ekipi Windows žice tu je i mogućnost obavljanja nekih administrativnih poslova te mogućnost snimanja algoritma radnji, spremanja kao skripte (bat datoteke), dok možete koristiti određene elemente programiranja, npr. koristiti varijable, kondicionali pa čak i nešto poput ciklusa.

Većina softverskih proizvoda ima sučelje konzole, tj. programom možemo upravljati pomoću naredbenog retka, uz uštedu resursa zbog nepostojanja troškova pokretanja grafičkog sučelja. Microsoft za poslužiteljski operativni sustav Windows poslužitelj izdaje čak i izdanja bez grafičkog sučelja ( Server Core, Windows Server 2016 ima čak i Nano Server), ali sve to nije dovoljno, jer su mogućnosti naredbenog retka ograničene, tj. Nećemo moći napisati neku složenu logiku da nešto automatiziramo, a čak i ako možemo, trebat će vremena i znanja.

Također, nedostatak naredbenog retka je što za potpuno upravljanje poslužiteljem koristimo razne konzolne pomoćne programe softverskih proizvoda, pa je korištenje naredbenog retka za administraciju zapravo teško, s gledišta činjenice da svi ti uslužni programi imaju različite sintaksu, parametre, metode korištenja i kako bi se ispunili tipični zadaci, tj. svaki dan, sve to morate imati u memoriji, a za obavljanje netipičnih zadataka morate prvo pročitati pomoć ili dokumentaciju.

Tehnologija Windows Script Host omogućuje obavljanje svih administrativnih zadataka kao naredbeni redak, uključujući njihovu automatizaciju pisanjem WSH skripti, ali ovdje već možemo koristiti punopravne programske jezike ( VBScript i JScript), tj. mogu se implementirati složena logika i algoritmi. Osim toga, uz pomoć WSH-a upravljamo softverskim proizvodima putem objektnog sučelja, drugim riječima, Windows Script Host puno je više “ hladnjak» nego naredbeni redak. Ali ovu tehnologiju također nije postao idealan alat za administriranje i automatiziranje ove administracije za administratore sustava, budući da je Windows Script Host zahtijevao poznavanje gore navedenih programskih jezika, što je administratorima sustava zapravo suvišno. Administratorima je potreban samo jednostavan alat za administraciju s mogućnošću programiranja nekih radnji i ne žele ulaziti 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 administratora sustava, kako u pogledu mogućnosti administracije i automatizacije, tako iu smislu praktičnosti i jednostavnosti korištenja, pa se pojavio Windows PowerShell.

Što je Windows PowerShell?

Windows PowerShell je Windows skriptni jezik i naredbena ljuska dizajnirana za administriranje i konfiguriranje Windows operativnih sustava. PowerShell je izgrađen na temelju CRL okvira 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 ima svojstva i metode koje možete koristiti za manipuliranje tim objektima.

U Windows PowerShell, Microsoft je razvio koncept cmdleta ( cmdleti), što je sustav imenovanja naredbi " Glagol-imenica». Ovaj sustav omogućuje administratorima sustava da brzo svladaju i pojednostave svoj rad s PowerShell-om.

S koristeći Windows PowerShell može:

  • Pristupite datotečnom sustavu;
  • Upravljanje registrom;
  • Upravljanje uslugama;
  • Upravljanje procesima;
  • Konfigurirajte operativni sustav;
  • Instalirajte softver;
  • Instalirajte uloge i komponente poslužitelja;
  • Administrirati i konfigurirati uloge i komponente poslužitelja;
  • Pisati i koristiti skripte za automatizaciju upravljanja i administracije;
  • Obavljanje drugih zadataka administratora sustava.

Windows PowerShell sadrži mnogo često korištenih uslužnih programa i naredbi koje možete pokrenuti iz naredbenog retka, kao što su ipconfig, ping i drugi. To je učinjeno kako bi se administratorima sustava olakšao prijelaz s naredbenog retka na PowerShell.

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

Za pojednostavljenje traženja željene naredbe, PowerShell ima poseban cmdlet Get-Command, s kojim možete pretraživati ​​i po glagolu i po imenici. Sve naredbe u Windows PowerShell grupirane su u module ( npr. Hyper-V, NetTCPIP), što također olakšava pronalaženje prave naredbe.

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

Get-Help Get-Command

Pomoć u Windows PowerShell može biti kratka, detaljna ( parametar -Detaljno), puni ( parametar -Pun), a također možete prikazati samo primjere ( parametar - Primjeri). Sljedeća naredba pokazat će samo primjere korištenja cmdleta Get-Command:

Get-Help Get-Command -Primjeri

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

Verzije Windows PowerShell

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

U sustavu Windows Server 2008 PowerShell 1.0 došao je kao komponenta koju je također trebalo instalirati.

Počevši od Windows 7 i Windows Server 2008 R2, PowerShell dolazi kao sastavna komponenta sustava ( oni. unaprijed instaliran, nema potrebe za instaliranjem). Ispod je tablica korespondencije između verzije PowerShell-a i verzije operacijskog 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 svakim nova verzija PowerShell postaje sve moćniji alat za administraciju; za usporedbu, prvi PowerShell imao je oko 130 cmdlet-a, a PowerShell 5.0 sada ima preko 600!

Znati Trenutna verzija PowerShell može koristiti svojstvo 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 skriptni programski jezik. Koristi se za pisanje naredbi za kontrolu svih komponenti operacijskog sustava Windows u Windows PowerShell i za pisanje skripti za automatizaciju administrativnih zadataka u Windows PowerShell Integrated Scripting Environment (ISE). Iako je PowerShell jezik stvoren za administrativne zadatke, on je potpuni skriptni programski jezik, budući da ima programske konstrukcije koje su prisutne u svakom programskom jeziku, kao što su: uvjeti, petlje, rukovanje pogreškama, rad s varijablama, objektima i nizovi.

Jezik PowerShell ima jedinstvenu sintaksu za pisanje naredbi i strukturu imenovanja za te naredbe temeljenu na 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 skripti u PowerShell-u. Ova ljuska ima iste mogućnosti kao naredbeni redak, kao što su: pohranjivanje povijesti izvršenja naredbi, postavljanje izgled ljuska, dovršavanje naredbi kombinacijom tipki Ctrl+C, kao i mnoge druge značajke koje nisu dostupne u ljusci naredbenog retka, na primjer tako divna značajka kao što je “ isticanje sintakse» ( uveden 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 upisujući 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 skupini W) -> Windows PowerShell.

Primjer pokretanja PowerShell-a u sustavu Windows Server 2016

Snimka zaslona PowerShell-a u sustavu Windows Server 2016

Cmdlets u PowerShell

Cmdlet (cmdlet) - Ovo Windows tim PowerShell, s kojim možete komunicirati s objektima operativnog sustava kako biste njima upravljali. Ove su naredbe dio jezika PowerShell. Cmdleti su izgrađeni prema principu " Glagol-imenica", odvojene crticom (-); drugim riječima, prvo označavamo što treba učiniti, a crticom označavamo što treba učiniti. Na primjer, cmdlet Get-Help, gdje je Get glagol koji znači " Dobiti", a Pomoć je imenica " Pomozite" u kontekstu PowerShell " Prikaži – Pomoć" PowerShell cmdleti vraćaju rezultate kao objekte, što je jedna od glavnih razlika u odnosu na Windows Command Prompt, u ​​kojem naredbe vraćaju samo tekst na zaslon.

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

  • Dodaj – dodavanje podataka;
  • Jasno – jasno;
  • Omogućiti – omogućiti;
  • Isključi – isključi;
  • Novo – stvoriti;
  • Ukloniti – ukloniti;
  • Set – set;
  • Početak - početak;
  • Stani – stani;
  • Izvoz – izvoz;
  • Uvoz – uvoz;
  • I još mnogo toga.

Potpuni popis cmdlet-a u Windows PowerShell-u može se vidjeti pomoću posebnog Get-Command cmdleta. Na primjer, pokrenite ga s -CommandType cmdlet parametrom, kao rezultat toga, popis cmdleta bit će prikazan na vašem zaslonu.

Get-Command -CommandType cmdlet

Kao što ste već shvatili, cmdleti imaju parametre pomoću kojih možemo specificirati radnje cmdleta. Parametri mogu biti obavezni ili izborni; na primjer, cmdlet Get-Command nema obavezne parametre.

Slika u nastavku prikazuje način pretraživanja cmdleta prema glagolu ( Parametar glagola). U ovom smo slučaju prikazali popis cmdleta koji mogu ponovno pokrenuti nešto.

Tim

Get-Command -Verb Restart

Za traženje cmdleta prema imenici, morate koristiti parametar Imenica. Na primjer, u nastavku imamo popis cmdleta koji rade s uslugama.

Tim

Get-Command - Noun Service

Ako ne pronađete željeni cmdlet po punom nazivu, možete koristiti masku u formatu *Text*.

Cjevovod u PowerShell-u

Jedan od glavnih Značajke sustava Windows PowerShell može koristiti cjevovod prilikom izvršavanja naredbi.

Pokretna traka– ovo je prijenos rezultata cmdleta kroz okomitu crtu (|) na drugi cmdlet. U isto vrijeme, kao što se sjećate, u PowerShell cmdleti rade s objektima i vraćaju objekte; prema tome, objekti se također prenose duž cjevovoda.

Uz pomoć pokretne trake možete obavljati složene zadatke na jednostavan i na prikladan način a da ne moram pisati složeni algoritmi i skripte.

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

Tim

Get-ChildItem -Path "C:\Windows\System32" -File | Sortiraj-Duljina objekta -Silazno | Odaberi objekt - prvi 1

  • Get-ChildItem – cmdlet za dobivanje objekata u navedenom direktoriju;
  • Sort-Object je cmdlet za sortiranje objekata, u našem slučaju sortiramo po veličini datoteke ( duljina -Silazni);
  • 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).

Sve cmdlete su odvojene jedna od druge vertikalna linija. Rezultat svakog cmdleta prosljeđuje se kao ulaz u drugi cmdlet, 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 pokretanja poslova u pozadini, što je mehanizam pomoću kojeg možete pokrenuti naredbu ( na primjer, za čije dovršenje treba puno vremena) u pozadini, tj. nakon pokretanja vraćate se na trenutnu sesiju i možete nastaviti s radom bez čekanja da naredba završi. Ova prilika Trebat će vam kada trebate pokrenuti naredbu za koju je potrebno dosta vremena da se završi, a kao što znate, za to vrijeme PowerShell sesija je blokirana dok se naredba ne završi, a vi trebate nastaviti s radom.

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

Windows PowerShell ima sljedeće cmdlete za rad s pozadinskim poslovima:

  • Start-Job – pokretanje pozadinskog zadatka;
  • Stop-Job – zaustavljanje pozadinskog zadatka
  • Get-Job – pregled popisa pozadinskih zadataka;
  • Receive-Job – pregled rezultata pozadinskog zadatka;
  • Remove-Job – uklanjanje pozadinskog zadatka;
  • Wait-Job – pomaknite pozadinski zadatak u prvi plan kako biste pričekali da završi.

Za rad u pozadini morate napisati naredbu Start-Job i u vitičaste zagrade() naredba ili skup naredbi koje se izvršavaju u pozadini.

Na primjer, izvedimo neki zadatak ( prikazati popis usluga) u pozadini, a zatim pogledajte popis pozadinski poslovi i prikazati rezultat našeg zadatka na ekranu ( oni. popis usluga).

Pokrenite zadatak u pozadini

Start-Job (Get-Service)

Gledamo popis zadataka koji se izvode u pozadini

Prikaz rezultata Job1

Prijemni posao Posao1

Kao što vidite, sada imamo zadatak sa statusom " Završeno", tj. već je završeno ( Get-Service jednostavno radi brzo).

Kako biste vidjeli rezultat pozadinskog zadatka, tj. Get-Service cmdlet, izvršili smo naredbu Receive-Job i proslijedili joj naziv posla ( također je moguća vrijednost identifikatora). Kao rezultat, prikazali smo popis usluga.

Daljinsko upravljanje pomoću PowerShell-a

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

Postoji nekoliko načina daljinskog upravljanja:

  • Pomoću parametra –Naziv računala (mnogi timovi to imaju). Drugim riječima, prosljeđujete ime računala na kojem želite izvršiti naredbu kao parametar. Metoda ima nedostatak što je ograničena na izvršenje jedne naredbe;
  • Korištenje sesija. Cmdlet Unesite PSSession (interaktivna sesija). Na taj se način povezujete s udaljeno računalo a sve naredbe koje upišete u PowerShell bit će izvršene na udaljenom računalu na isti način kao da ste naredbe upisali izravno na udaljenom računalu. Metoda također ima nedostatak što je sesija ograničena na jedno računalo;
  • Korištenje cmdleta Invoke-Command. Pomoću ovu metodu Možete pokrenuti naredbe ili skripte na jednom računalu ili na više njih.

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

Unesite-PSSession ServerName

Skripte, funkcije i moduli u Windows PowerShell

Ako ste napisali algoritam, najvjerojatnije ćete ga htjeti spremiti kako biste ga koristili u budućnosti. Windows PowerShell ima mehanizam skriptiranja za tu svrhu.

Bit ovog mehanizma je sljedeća: napišete skup naredbi koje trebate i spremite ga kao skriptu - jednostavno je tekstualna datoteka s produžetkom.PS1.

Zatim, da biste pokrenuli ovu skriptu, jednostavno je pokrenite u PowerShell-u. U tom slučaju trebate navesti punu stazu do datoteke skripte ili otići u direktorij sa skriptom i pozvati je po imenu.

Važno!

Prema zadanim postavkama, pokretanje skripti u sustavu Windows je zabranjeno! Za pregled pravila izvršavanja skripte pokrenite cmdlet Get-ExecutionPolicy. Kao rezultat, vratit će trenutnu politiku, na primjer:

  • Ograničeno – izvršenje bilo koje skripte je blokirano ( zadana vrijednost);
  • AllSigned – dopušteno je izvršavanje skripti koje imaju digitalni potpis;
  • RemoteSigned – dopušteno je izvršavanje lokalnih skripti, sve preuzete skripte moraju imati digitalni potpis;
  • Neograničeno - dopušteno je izvršavanje bilo koje skripte ( ne preporučuje se jer nije sigurno!).

Da biste omogućili pokretanje skripti, 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 skripti, učiniti ih obaveznima ili postaviti zadanu vrijednost.

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

Da biste to učinili, morate navesti ključna riječ Funkciju, a zatim u vitičastim zagradama () napišite algoritam za ovu funkciju, tj. skup naredbi ( na primjer, neki često korišteni postupak: kreirajte korisnika s određenim pravima, očistite određene direktorije i tako dalje). Zatim sve to trebate spremiti u skriptu, ali samo s nastavkom .psm1, budući da će ta datoteka već biti modul.

To nije sve, ova datoteka mora biti smještena u direktorij gdje PowerShell traži module. Postoji nekoliko takvih imenika ( poseban direktorij u korisničkom profilu, direktorij u kojem je instaliran PowerShell), mogu se pogledati u varijable okoline PowerShell. Da biste to učinili, pokrenite sljedeću naredbu

Get-ChildItem Env:\PSModulePath | Format-Tablica -Automatska veličina

Nakon što postavite modul koji ste napisali u poseban direktorij, možete pristupiti svojim funkcijama kao uobičajenim PowerShell naredbama.

Windows PowerShell integrirano skriptno okruženje (ISE)

Kako bi bilo prikladno pisati skripte, funkcije i, sukladno tome, module, Microsoft je razvio poseban grafički program Integrirano okruženje za skriptiranje(ISE) - Integrirano okruženje za skriptiranje. Vrlo je prikladno raditi u ovom programu, a također ima moćnu funkcionalnost ( stvaranje višestrukih kartica sa skriptama, izlazno područje, ugrađeni program za ispravljanje pogrešaka i više).

Možete ga pokrenuti ovako:

  • 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 skupini W) -> Windows PowerShell ISE.

Bilješka! ISE neće raditi dalje Windows sustav Poslužitelj instaliran u verziji Server Core.

Snimka zaslona PowerShell integriranog skriptnog okruženja (ISE) u sustavu Windows Server 2016

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



reci prijateljima