Šta je powershell u Windows 7. Osnove Windows PowerShell-a. Komande u PowerShell-u

Zdravo svima! Danas kratka napomena na temu, kako otvoriti powershell kao administrator. Da vas podsjetim da je PowerShell moćan programski i administrativni jezik iz Microsofta, svake godine raste, sve velika količina cmdlete i funkcionalnost. U suštini, to je zamjena za Windows Command Prompt. U nastavku ćemo razmotriti metode koje vam omogućavaju da ga otvorite i konfigurirate.
.

Metode za otvaranje PowerShell dodatka

Powershell se jako dobro razvija i sa izdavanjem Windows 10 već je dobio verziju 5, ali naša tema je drugačija. Dakle, kako otvoriti powershell? Sve je jednostavno ako u Windows XP, onda ništa. Pošto se isporučuje zasebno, u svim narednim izdanjima dolazi kao ugrađena komponenta. Većina univerzalna metoda otvorite powershell ovim klikom

Win+R i unesite powershell

Pritiskom na enter pokreće se PowerShell konzola, jedini problem je što se neće otvoriti kao administrator. I kao rezultat toga, mnoge komande neće biti izvršene; u nastavku ćemo vidjeti kako to učiniti u ime administratora.

Kako pokrenuti windows powershell kao administrator u Windowsima 8.1 i Windows 7

Možete otvoriti Windows Powershell preko Start. U Windows 8.1, Windows 2012 R2, idite na Sistemske alatke - Windows i kliknite desnim tasterom miša i izaberite Pokreni kao administrator.

U Windows 7 i Windows 2008 R2 to izgleda ovako Start > Pribor > Windows PowerShell

Također možete kreirati prečicu u stavci zadatka i desnim klikom na nju odabrati odgovarajuću stavku

Bilo bi zgodno kada bi se PowerShell uvijek otvarao kao administrator, hajde da ga implementiramo. Ovo se radi na isti način u svim verzijama Windowsa. Otvaranje kontrolne table

Kliknite desnim tasterom miša na njega i izaberite Svojstva. Možete odmah vidjeti putanju do datoteke gdje se nalazi u sistemu.

Kliknite na dugme "Napredno". Vidjet ćete dodatna svojstva. gdje trebate označiti polje Pokreni kao administrator.

Sve je vrlo jednostavno. Siguran sam da sada nećete imati pitanje kako da otvorite Windows Powershell. Još jedna korisna stvar je promjena fonta u prozoru Powershell-a.

Kako otvoriti PowerShell iz kontekstnog menija dugmeta Start u Windows 10

Microsoft sve više stavlja naglasak na komandna linija prema svom jakom jeziku (PowerShell), i to je logično, budući da su njegove mogućnosti za upravljanje operativnim sistemima Windows porodica, su gotovo neograničeni, ako ne i više, nego u grafičkom interfejsu. Počevši od Windows verzije 10 1709, u kontekstualnom meniju, PowerShell, zamenio je uobičajeni cmd za sve. Kliknite desnim tasterom miša na dugme Start u Windows 10 i iz kontekstnog menija izaberite odgovarajuću stavku:

  1. Windows PowerShell
  2. Windows PowerShell (administrator) je upravo režim sa maksimalnim pravima u Windows 10.

Pokrenite Windows PowerShell koristeći Search u Windows 10

Na Windows 10 i starijim verzijama možete pronaći PowerShell koristeći redovna pretraga, postoji poseban odjeljak za ovo. Kliknite pored dugmeta Start, ikonu lupe. U obrazac za pretragu koji se otvori unesite riječ PowerShell. Tražit ćete sve opcije, među kojima ćete pronaći ljusku. Ako kliknete desnim tasterom miša na njega, možete ga otvoriti kao administrator.

Pokretanje Windows PowerShell-a iz menija Start u operativnom sistemu Windows 10

Da biste otvorili PowerShell iz menija Start, otvorite ga i pronađite stavku Windows PowerShell, ona će biti u obliku fascikle, otvorite je i pokrenite odgovarajuću verziju.

Ako kliknete desnim tasterom miša, možete pokrenuti Vershel shell kao administrator s administratorskim pravima.

Dodatne i generičke metode pokretanja ljuske

Postoje i vrlo specifične metode za otvaranje ljuske sa moćnim jezikom iz Microsofta. Najnespretniji, lako ga je pronaći izvršnu datoteku i pokrenite ga direktno sa lokacije na sistemu. Idemo na vaš Windows 10 sljedećim putem:

C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

Kao rezultat toga, vidjet ćete fasciklu sa prečicama koje su prisutne u Start meniju, možete ih pokrenuti.

Također možete pokrenuti originalnu izvršnu datoteku, koja se nalazi duž putanje:

C:\Windows\System32\WindowsPowerShell\v1.0

A desnim klikom na njega možete ga preuzeti kao administrator, sa maksimalnim pravima.

Također možete pokrenuti Windows PowerShell iz prozora komandne linije; da biste to učinili, jednostavno unesite čarobnu riječ u njega i pritisnite Enter.

Pa, da vas podsjetim i na metodu pokretanja novog zadatka iz dodatka “Task Manager”. Otvorite "Task Manager", odaberite stavku menija "Datoteka - Pokreni novi zadatak"

U prozoru koji se pojavi unesite PowerShell.

Pa, posljednja metoda koja mi je poznata je pokretanje PowerShell-a putem Windows Explorer 10, da biste to učinili, otvorite Explorer, odaberite stavku menija "Datoteka - pokrenite Windows PowerShell", postojat će oba načina.

Šta je PowerShell ISE

Verovatno ste primetili da je PowerShell ISE prečica svuda i želite da znate šta je to. Ukratko, ovo je posebna ljuska u kojoj možete pisati skripte i scenarije u PowerShell-u, koristeći svu raznolikost cmdlet-a koje vam Microsoft nudi.

Powershell promjena fonta je vrlo jednostavna, idite na karticu Font u svojstvima, gdje možete podesiti veličinu od 5 do 72.

Također možete doći do svojstava iz samog prozora uslužnog programa, kliknite na ikonu u gornjem lijevom uglu i odaberite svojstva

Ovdje su postavke fonta malo drugačije, a kako se mijenjaju, mijenja se i veličina konzole.

Na kartici Boje možete postaviti boju fonta u Powershell-u i samom prozoru. Tako što ćete ga, na primjer, učiniti crnim, poput komandne linije.

Također savjetujem da ako ste aktivni korisnik konzole, postavite veličinu bafera ne na 50 komandi, već barem na 100.

Hvala vam na pažnji. Ovo su metode za otvaranje Power Shell konzole u Windowsu. Materijal sajta

Mnogi korisnici znaju za komandni redak, ali vrlo malo njih je čulo za Windows PowerShell. U određenom smislu, PowerShell je alat koji ima za cilj da zamijeni komandnu liniju i pruži moćnije mogućnosti za upravljanje Windows operativnim sistemom. U ovom članku ćemo pokušati jasno objasniti šta je ovo alat, zašto je toliko moćan i ko ga najčešće koristi.

Šta je PowerShell?

Za bolje razumijevanje, prvo moramo razumjeti šta je školjka. U računarstvu, ljuska je korisnički interfejs koji omogućava pristup raznim uslugama. operativni sistem. Ljuska može biti bazirana na komandnoj liniji ili može uključivati ​​grafički korisnički interfejs (GUI).

Windows PowerShell je ljuska koju je razvio Microsoft za potrebe automatizacije zadataka i upravljanja konfiguracijom. Ova moćna ljuska je bazirana na .NET frameworku i uključuje ljusku komandne linije i jezik za skriptiranje.

Takođe može postojati Windows PowerShell ISE na vrhu standardne ljuske komandne linije. ISE djeluje kao integrirano okruženje za skriptiranje - grafičko korisničko sučelje koje vam omogućava da kreirate različite skripte bez potrebe da unosite sve komande u komandnoj liniji.

Prva verzija PowerShell-a objavljena je u novembru 2006. za Windows XP. Windows Server 2003 i Windows Vista. Najnovija je verzija 4.0, koja je objavljena u oktobru 2013. Podrazumevano dolazi sa Windows 8.1 i Windows Server 2012 R2.

Šta možete učiniti sa PowerShell-om?

Microsoft je razvio Windows PowerShell kao alat koji pomaže u automatizaciji i brzom rješavanju mnogih zamornih administrativnih zadataka. Na primjer, možete koristiti PowerShell da vidite sve USB uređaje instalirane na jednom ili više računara na mreži ili možete postaviti zadatak koji oduzima mnogo vremena za rad u pozadini dok radite druge poslove. Takođe možete identifikovati i prekinuti procese koji ne reaguju ili filtrirati određene informacije o računarima na vašoj mreži i izvesti ih u HTML formatu.

Mogućnosti PowerShell-a omogućavaju vam da pojednostavite i automatizujete dugotrajne i ponavljajuće zadatke kreiranjem skripti i kombinovanjem više komandi zajedno.

Ako ste mrežni administrator, PowerShell će vam biti vrlo koristan kada radite sa njim Aktivni direktorij. Uzimajući u obzir da alat sadrži stotine prilagodljivih komandi zvanih cmdlet, vjerovatnoća da vam PowerShell može pomoći da postanete produktivniji je vrlo velika.

Kako pokrenuti PowerShell na Windows 8.1?

Ako nemate PowerShell pločicu na početnom ekranu ili prečicu na radnoj površini, možete je otvoriti pomoću pretrage - ovo je jedan od jednostavne načine. Pritisnite +Q, upišite "powershell", a zatim pritisnite Enter.

PowerShell možete otvoriti i iz odjeljka Aplikacije na početnom ekranu: idite na Početni ekran i pomaknite kursor u donji lijevi ugao, odmah ispod posljednje pločice u prvoj koloni. Kliknite na ikonu sa strelicom usmjerenom prema dolje. Zatim kliknite na ikonu PowerShell u odjeljku "Uslužni programi".

Da biste otvorili PowerShell pomoću dijaloga Pokreni, pritisnite +R, upišite "powershell" i pritisnite Enter.

Kako pokrenuti PowerShell na Windows 7?

U operativnom sistemu Windows 7 alat možete pronaći tako što ćete potražiti "powershell" u meniju Start.

PowerShell možete otvoriti i kroz Start meni u odjeljku Pribor.

Očigledno, gornja komanda u prozoru Run radi i u Windowsu 7.

Ko obično koristi PowerShell?

Bez ikakve sumnje, PowerShell je izbor mnogih IT administratora. I to s dobrim razlogom, jer alat uvelike pojednostavljuje operacije upravljanja i uvelike smanjuje količinu posla korporativne mreže.

Recimo da upravljate velikom mrežom koja sadrži preko pet stotina servera i morate implementirati novo sigurnosno rješenje koje ovisi o nekom servisu koji treba da radi na tim serverima. Naravno, možete se povezati sa svakim serverom i vidjeti da li je potrebna usluga instalirana i radi li se na njima. Međutim, u ovom slučaju, malo je vjerovatno da će vaš menadžment biti zadovoljan, jer će vam trebati previše vremena da završite zadatak.

WITH koristeći PowerShell možete obaviti ovaj posao u roku od nekoliko minuta jer se cijela operacija može obaviti s jednom skriptom koja će prikupiti informacije o servisima koji rade na navedenim serverima i sačuvati ih kao tekstualnu datoteku, npr.

PowerShell vam omogućava da uradite mnogo više nego što se može pokriti u jednom članku, pa ako ste zaista zainteresovani, toplo preporučujemo da kupite i pročitate jednu od mnogih knjiga koje pokrivaju moć ovog alata.

Ugodan dan!

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

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

U timu Windows strings Postoji i mogućnost obavljanja nekih administrativnih zadataka i mogućnost zapisivanja algoritma radnji, spremanja kao skripte (bat fajl), dok možete koristiti određene programske elemente, na primjer, koristiti varijable, uslovne konstrukcije, pa čak i nešto kao petlje.

Većina softverskih proizvoda ima interfejs konzole, tj. možemo upravljati programom koristeći komandnu liniju, uz uštedu resursa zbog nedostatka troškova rada GUI. Microsoft čak izdaje izdanja bez grafičkog interfejsa za operativni sistem Windows Server servera ( Server Core, Windows Server 2016 čak ima i Nano Server), ali sve to nije dovoljno, jer su mogućnosti komandne linije ograničene, tj. Nećemo moći da napišemo neku složenu logiku da nešto automatizujemo, a čak i ako možemo, biće potrebno vreme i znanje.

Također, nedostatak komandne linije je što za potpuno upravljanje serverom koristimo razne konzolne uslužne programe softverskih proizvoda, pa je stoga korištenje komandne linije za administraciju zapravo teško, sa stanovišta činjenice da svi ovi uslužni programi imaju različite sintakse, parametara, metoda upotrebe i radi obavljanja tipičnih zadataka, tj. svakodnevno, sve ovo morate držati u memoriji, a za obavljanje netipičnih zadataka prvo morate pročitati pomoć ili dokumentaciju.

Windows Script Host tehnologija vam omogućava da sve administrativne zadatke obavljate kao komandna linija, 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 preko objektnog interfejsa, drugim riječima, Windows Script Host je mnogo više “ hladnjak» nego komandna linija. Ali ovu tehnologiju također nije postao onaj idealan alat za administraciju i automatizaciju ove administracije za sistem administratori, budući da je Windows Script Host zahtijevao poznavanje gore navedenih programskih jezika, što je zapravo suvišno za sistem administratore. Administratorima je potreban samo jednostavan administrativni alat sa 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, Microsoft je morao da razvije administrativni alat za sistem administratore koji bi 100 posto zadovoljio sve potrebe sistem administratora, kako u pogledu mogućnosti administracije i automatizacije, tako i u smislu pogodnosti i lakoće korišćenja, tako se pojavio Windows PowerShell.

Šta je Windows PowerShell?

Windows PowerShell je Windows skriptni jezik i komandna školjka dizajnirana za administraciju i konfiguraciju Windows operativnih sistema. PowerShell je izgrađen na vrhu CRL okvira i .NET Framework-a, a za razliku od komandne linije, koja prihvata i vraća tekst, Windows PowerShell radi sa objektima. Svaki objekat u PowerShell-u ima svojstva i metode koje možete koristiti za manipulisanje tim objektima.

Na Windows-u Microsoft PowerShell razvio koncept cmdleta ( cmdlete), što je sistem imenovanja naredbi " Glagol-imenica" Ovaj sistem omogućava administratorima sistema da brzo savladaju i pojednostave rad sa PowerShell-om.

WITH koristeći Windows PowerShell može:

  • Pristupite sistemu datoteka;
  • Upravljanje registrom;
  • Upravljanje uslugama;
  • Upravljanje procesima;
  • Konfigurišite operativni sistem;
  • Instalirajte softver;
  • Instalirajte serverske uloge i komponente;
  • Administriranje i konfigurisanje uloga i komponenti servera;
  • Pisati i koristiti skripte za automatizaciju upravljanja i administracije;
  • Obavljajte druge zadatke administratora sistema.

Windows PowerShell sadrži mnoge često korišćene uslužne programe i komande koje možete pokrenuti iz komandne linije, kao što su ipconfig, ping i drugi. Ovo je učinjeno kako bi se olakšao prelazak sistemskih administratora sa komandne linije na PowerShell.

Takođe, radi praktičnosti, mnoge često korišćene komande i uslužni programi u PowerShell-u imaju sinonime ( Alias), na primjer cls je sinonim za Clear-Host cmdlet, dir je sinonim za Get-ChildItem ( puna lista sinonime možete pogledati pokretanjem Get-Alias ​​cmdleta).

Da bi pojednostavio pretragu željene komande, PowerShell ima posebnu cmdlet Get-Command, pomoću koje možete pretraživati ​​i po glagolu i po imenici. Sve komande u Windows PowerShell-u grupisane su u module ( npr. Hyper-V, NetTCPIP), što takođe olakšava pronalaženje prave komande.

Nakon što je tražena naredba pronađena, možete pogledati upute za rad sa ovom komandom, 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-u može biti kratka, detaljna ( parametar -Detaljno), pun ( parametar -Puna), a možete prikazati i samo primjere ( parametar - Primjeri). Sljedeća naredba će prikazati samo primjere korištenja Get-Command cmdleta:

Get-Help Get-Command -Primjeri

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

Windows PowerShell verzije

Prva verzija PowerShell-a 1.0 pojavila se 14. novembra 2006. i izdata je kao posebna distribucija koja se mogla instalirati na sljedeće verzije Windows operativnih sistema: Windows XP servisni paket 2, Windows Server 2003 servisni paket 1 i Windows Vista.

U Windows Serveru 2008, PowerShell 1.0 je došao kao komponenta koja je takođe morala biti instalirana.

Počevši od Windows 7 i Windows Server 2008 R2, PowerShell dolazi kao integralna komponenta sistema ( one. unapred instaliran, nema potrebe da ga instalirate). Ispod je tabela korespondencije između verzije PowerShell-a i verzije operativnog sistema Windows ( one. koja verzija PowerShell-a je instalirana prema zadanim postavkama na kojoj verziji Windows-a):

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 administrativni alat; za poređenje, prvi PowerShell je imao oko 130 cmdleta, a PowerShell 5.0 sada ima preko 600!

Znati trenutna verzija U PowerShell-u možete 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 PowerShell verzija.

PowerShell jezik

PowerShell je objektno orijentirani skriptni programski jezik. Koristi se za pisanje komandi za kontrolu svih komponenti Windows operativnog sistema u Windows PowerShell-u, kao i za pisanje skripti za automatizaciju administrativnih zadataka u integrisanom okruženju Windows skripte PowerShell (ISE). Iako je PowerShell jezik kreiran za administrativne zadatke, on je punopravni programski jezik za skriptiranje, budući da ima programske konstrukcije koje su prisutne u svakom programskom jeziku, kao što su: uslovi, petlje, rukovanje greškama, rad sa varijablama, objektima i nizovi.

PowerShell jezik ima jedinstvenu sintaksu za pisanje naredbi i strukturu imenovanja za ove komande zasnovanu na principu “ Glagol-imenica", šta on radi dati jezik intuitivno i za programere i za sistem administratore.

Windows PowerShell

Windows PowerShell je okruženje za izvršavanje naredbi i skripti u PowerShell-u. Ova ljuska ima iste mogućnosti kao i komandna linija, kao što su: pohranjivanje historije izvršenja naredbi, postavljanje izgled ljuska, dovršavanje naredbi kombinacijom tipki Ctrl+C, kao i mnoge druge funkcije koje nisu dostupne u ljusci komandne linije, na primjer tako divna funkcija kao što je " isticanje sintakse» ( uveden u PowerShell 5.0).

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

  • Iz komandne linije upisivanjem PowerShell;
  • Kroz dijaloški okvir " Izvrši» ( prečica na tastaturi Win+R), takođe kucajući PowerShell;
  • U Windows 7 - Start->Svi programi -> Pribor -> Windows PowerShell -> Windows PowerShell;
  • U Windows 8.1 ili Windows Server 2012 R2 - Start->Svi programi -> Sistemski alati -> Windows PowerShell;
  • U Windows 10 ili Windows Server 2016 - Start->Svi programi -> Windows PowerShell direktorij ( u grupi W) -> Windows PowerShell.

Primjer pokretanja PowerShell-a u Windows Serveru 2016

Snimak ekrana PowerShell-a u Windows Serveru 2016

Komande u PowerShell-u

Cmdlet (cmdlet) - Ovo Windows tim PowerShell, sa kojim možete komunicirati sa objektima operativnog sistema kako biste njima upravljali. Ove naredbe su dio jezika PowerShell. Cmdleti su izgrađeni po principu “ Glagol-imenica", odvojeno crticom (-); drugim riječima, prvo označavamo šta treba učiniti, a crticom označavamo šta treba učiniti. Na primjer, Get-Help cmdlet, gdje je Get glagol koji znači " Get", a pomoć je imenica " Upomoć"u kontekstu PowerShell-a" Prikaži – Pomoć" PowerShell cmdlet komande vraćaju rezultate kao objekte, što je jedna od glavnih razlika u odnosu na Windows komandnu liniju, u kojoj komande vraćaju samo tekst na ekran.

Pored cmdlet-a za dobijanje podataka (Get), postoje i tipovi cmdlet-a kao što su:

  • Dodaj – dodavanje podataka;
  • Jasno – jasno;
  • Omogućiti – omogućiti;
  • Onemogućiti – isključiti;
  • Novo – kreiraj;
  • Ukloniti – ukloniti;
  • Set – set;
  • Start - start;
  • Stop – stop;
  • Izvoz – izvoz;
  • Uvoz – uvoz;
  • I još mnogo toga.

Potpuna lista cmdlet-a u Windows PowerShell-u može se vidjeti pomoću posebnog Get-Command cmdleta. Na primjer, pokrenite ga s parametrom cmdlet -CommandType, kao rezultat, lista cmdlet-a će biti prikazana na vašem ekranu.

Get-Command -CommandType cmdlet

Kao što ste već shvatili, cmdlet-i imaju parametre pomoću kojih možemo specificirati akcije cmdlet-a. Parametri mogu biti obavezni ili opcioni; na primjer, Get-Command cmdlet nema potrebne parametre.

Slika ispod pokazuje način traženja cmdleta po glagolu ( Glagolski parametar). U ovom slučaju, prikazali smo listu cmdlet-a koji mogu ponovo pokrenuti nešto.

Tim

Get-Command -Glagol Restart

Da biste tražili cmdlet po imenici, morate koristiti parametar Noun. Na primjer, ispod imamo listu cmdlet-a koji rade sa uslugama.

Tim

Get-Command -Noun Service

Ako ne pronađete cmdlet koji vam je potreban puno ime Možete koristiti masku u *Text* formatu.

Pipeline u PowerShell-u

Jedan od glavnih Windows funkcije PowerShell može koristiti cjevovod prilikom izvršavanja naredbi.

Konvejer– ovo je prijenos rezultata cmdleta preko vertikalne trake (|) na drugi cmdlet. U isto vrijeme, kao što se sjećate, u PowerShell cmdletima rade s objektima i vraćaju objekte; u skladu s tim, objekti se također prenose duž cjevovoda.

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

Na primjer, hajde da saznamo ime najveće datoteke u direktoriju "C:\Windows\System32" ( jednostavan primjer cjevovoda).

Tim

Get-ChildItem -Path "C:\Windows\System32" -File | Sortiraj-Dužina objekta -Descending | Odaberite-Objekat-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 ( 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. veliki fajl (parametar -Prvi 1).

Svi cmdleti su međusobno odvojeni okomitom trakom. Rezultat svakog cmdleta se prosljeđuje 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 koji je potrebno mnogo vremena da se završi) u pozadini, tj. nakon pokretanja, vraćate se na trenutnu sesiju i možete nastaviti sa radom bez čekanja da se naredba završi. Ova prilika Trebat će vam kada treba da pokrenete naredbu za koju je potrebno dosta vremena da se završi, a kao što znate, za to vrijeme je PowerShell sesija blokirana dok se naredba ne završi, a vi morate nastaviti sa radom.

Možete upravljati svim zadacima koji se izvršavaju u pozadini, na primjer, pregledati listu zadataka, zaustaviti zadatak, izbrisati zadatak i, naravno, pogledati rezultat zadatka.

Windows PowerShell ima sljedeće cmdlete za rad sa poslovima u pozadini:

  • Start-Job – pokretanje pozadinskog zadatka;
  • Stop-Job – zaustavi pozadinski zadatak
  • Get-Job – pogledajte listu pozadinskih zadataka;
  • Receive-Job – pogledajte rezultat pozadinskog zadatka;
  • Remove-Job – uklanjanje pozadinskog zadatka;
  • Wait-Job – premjestite pozadinski zadatak u prvi plan kako biste čekali da se završi.

Da biste radili u pozadini, potrebno je da napišete naredbu Start-Job, au vitičastim zagradama () komandu ili skup naredbi koje želite pokrenuti u pozadini.

Na primjer, pokrenimo neki zadatak ( prikaži listu usluga) u pozadini, a zatim pogledajte listu pozadinske poslove i prikažemo rezultat našeg zadatka na ekranu ( one. spisak usluga).

Pokrenite zadatak u pozadini

Start-Job (Get-Service)

Gledamo listu zadataka koji se izvršavaju u pozadini

Prikaz rezultata Job1

Posao primanja1

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

Da biste vidjeli rezultat pozadinskog zadatka, tj. Get-Service cmdlet, izvršili smo naredbu Receive-Job i prenijeli joj ime posla ( moguća je i vrijednost identifikatora). Kao rezultat toga, prikazali smo listu usluga.

Daljinsko upravljanje pomoću PowerShell-a

Windows PowerShell je dizajniran ne samo za lokalnu upotrebu, već i za daljinsko izvršavanje naredbi. Ova funkcija je neophodna kako biste mogli da kontrolišete udaljene računare sa svog radnog mesta, tj. pokrenite PowerShell komande.

Postoji nekoliko načina daljinski upravljač:

  • Korištenje parametra –ComputerName (mnogi timovi ga imaju). Drugim riječima, kao parametar prosljeđujete ime računara na kojem želite da izvršite naredbu. Ovaj metod ima nedostatak što je ograničen na izvršenje jedne komande;
  • Korištenje sesija. Cmdlet Enter-PSSession (interaktivna sesija). Na ovaj način se povezujete na udaljeni računar i sve komande koje upišete u PowerShell će se izvršiti na udaljeni računar baš kao da kucate komande direktno na udaljenom računaru. Metoda takođe ima nedostatak što je sesija ograničena na jedan računar;
  • Korištenje cmdleta Invoke-Command. Korišćenjem ovu metodu Možete pokrenuti komande ili skripte na jednom računaru ili na nekoliko.

Na primjer, da se povežete na udaljeni računar ( u primjeru ispod Ime servera) u interaktivnoj sesiji, pokrenite sljedeću naredbu:

Unesite-PSSession ServerName

Skripte, funkcije i moduli u Windows PowerShell-u

Ako ste napisali algoritam, najvjerovatnije ćete željeti da ga sačuvate kako biste ga koristili u budućnosti. Windows PowerShell ima mehanizam za skriptiranje za ovu svrhu.

Suština ovog mehanizma je sljedeća: napišete skup naredbi koje su vam potrebne i spremite ga kao skriptu - ovo je jednostavan tekstualni fajl sa ekstenzijom .PS1.

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

Bitan!

Podrazumevano, pokretanje skripti na Windows-u je zabranjeno! Da vidite politiku 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 – dozvoljeno je izvršavanje skripti koje imaju digitalni potpis;
  • RemoteSigned – dozvoljeno je izvršavanje lokalnih skripti, sve preuzete skripte moraju imati digitalni potpis;
  • Neograničeno - izvođenje bilo koje skripte je dozvoljeno ( ne preporučuje se jer nije bezbedno!).

Da biste omogućili pokretanje skripti, morate koristiti cmdlet Set-ExecutionPolicy sa jednim od gore navedenih parametara.

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

Set-ExecutionPolicy RemoteSigned

Možete proslijediti parametre skripti, učiniti ih obaveznim ili postaviti zadanu vrijednost.

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

Da biste to učinili, morate navesti ključna riječ Funkcija, a zatim u vitičaste zagrade () napišite algoritam za ovu funkciju, tj. skup komandi ( na primjer, neka često korištena procedura: kreiranje korisnika s određenim pravima, čišćenje određenih direktorija, itd). Zatim sve ovo treba da snimite u skriptu, ali samo sa ekstenzijom .psm1, pošto će ovaj fajl već biti modul.

To nije sve, ova datoteka mora biti smještena u direktorij gdje PowerShell traži module. Postoji nekoliko takvih direktorija ( poseban direktorij u korisničkom profilu, direktorij u kojem 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

Jednom kada stavite modul koji ste napisali u poseban direktorij, možete pristupiti svojim funkcijama kao normalne PowerShell komande.

Windows PowerShell integrisano okruženje za skriptovanje (ISE)

Kako bi bilo zgodno pisanje skripti, funkcija i, shodno tome, modula, Microsoft je razvio poseban grafički program Integrirano okruženje za pisanje skripti(ISE) - Integrisano okruženje za pisanje skripti. Veoma je zgodno raditi u ovom programu, a ima i moćnu funkcionalnost ( kreiranje više kartica sa skriptama, izlazno područje, ugrađeni program za otklanjanje grešaka i još mnogo toga).

Možete ga pokrenuti ovako:

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

Bilješka! ISE neće raditi Windows sistem Server instaliran u verziji Server Core.

Snimak ekrana PowerShell Integrated Scripting Environment (ISE) u Windows Server 2016

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

Pokretanje programa iz PowerShell-a

Zadatak pokretanja bilo koje izvršne datoteke (program ili uslužni program iz komandne linije) iz PowerShell-a javlja se prilično često. PowerShell nudi nekoliko opcija za ovo. na razne načine, što ćemo razmotriti kasnije u ovom članku. Počnimo sa najjednostavnijim...

Direktno lansiranje

Najlakši način da pokrenete izvršnu datoteku u PowerShell-u je da odete do direktorija s datotekom i direktno ga pokrenete. Na primjer, uzmimo jednostavan program koji prikazuje pozdrav i izvršimo ga naredbom:

Set-Location ″C:\Program Files″
.\Hello.exe

Imajte na umu da čak i ako se nalazite u željenom direktoriju, morate navesti relativnu putanju do izvršne datoteke. Izuzetak su datoteke iz direktorija navedenih u varijabla okruženja(put). Na primjer, različiti ugrađeni programi i uslužni programi (notepad, calc, ping, itd.) koji se nalaze u Windows\System32 direktoriju mogu se pokrenuti bez navođenja putanje.

Operater &

Ako trebate navesti punu putanju do izvršne datoteke, možete koristiti operator & (pozovi operatera). Omogućava vam da izvršite niz teksta naveden u navodnicima kao što su jedan tim. Na primjer:

& ′C:\Program Files\Hello.exe′

Pošto & operator ne analizira naredbu koja se prenosi, ne može interpretirati njene parametre. Stoga se dodatni parametri\argumenti također prosljeđuju kao tekst, pod navodnicima. Kao primjer, uzmimo prethodni program i malo ga modificiramo tako da prihvati željeni tekst kao argument:

& ′C:\Program Files\Hello.exe′ ′Zdravo, svijete′

Ako želite, možete navesti više argumenata odvojenih zarezima:

& ′C:\Program Files\Hello.exe′ ′Hello,′, ′ world′

Radi praktičnosti, naredba i argumenti se mogu smjestiti u varijable:

$exe = ′C:\Program Files\Hello.exe′
$arg1 = ′Zdravo′
$arg2 = ′svijet′
& $exe $arg1 $arg2

Pa, ako postoji puno argumenata, onda se oni mogu kombinirati pomoću sljedeće konstrukcije:

$exe = ′C:\Program Files\Hello.exe′
$allargs = @(′Hello,′,′world′)
& $exe $allargs

Invoke-Expression

Invoke-Expression cmdlet radi na isti način kao i operator - uzima tekstualni niz i izvršava ga kao naredbu. Na primjer:

Invoke-Expression -Command ′C:\Windows\Hello.exe′

Međutim, ima jedan veliki nedostatak, a to je nemogućnost rada sa prostorima. Na primjer, sljedeća naredba će uzrokovati grešku:

Invoke-Expression -Command ′C:\Program Files\Hello.exe′

Ova funkcija čini korištenje cmdleta izuzetno nezgodnim. Iako se, ako je potrebno, takve greške mogu izbjeći korištenjem dodatnih citata, na primjer ovako:

Invoke-Expression -Command ″C:\′Program Files′\Hello.exe″

Start-Proces

Pokreće se cmdlet Start-Process specificirani fajl kao proces koji koristi metodu Počni.NET klasa Proces. Na primjer:

Start-Process -FilePath ′C:\Program Files\Hello.exe′

Podrazumevano, proces se pokreće poseban prozor, koji se zatvara na kraju procesa. Ovo ponašanje možete promijeniti pomoću parametara, tako da će se sljedeća naredba pokrenuti u trenutnom prozoru:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -Sačekajte

Start-Process vam također omogućava da proslijedite dodatne argumente procesu:

Start-Proces -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Zdravo, svijete′ -NewNewWindow -Sačekajte

Podrazumevano, cmdlet ne vraća ništa, ali možete koristiti parametar -PassThru da ga prisilite da vrati procesni objekat. Vrlo je zgodno smjestiti ovaj objekt u varijablu:

$process = Start-Process -FilePath ′C:\Program Files\Hello.exe′ -Sačekajte -PassThru

iz kojih tada možete naučiti mnoge korisne stvari, kao što je status:

$process.HasExited

$process.ExitTime

ili izvršni kod:

$process.ExitCode

.NET

U principu, klasa .NET Process se može koristiti direktno, bez cmdleta Start-Process. Na primjer, možete pokrenuti proces naredbom:

::Start(′C:\Program Files\Hello.exe′)

Ova metoda je prilično nezgodna i glomazna (po mom mišljenju), ali malo fleksibilnija u upotrebi. Na primjer, pokrenimo naš program u trenutnom prozoru, prosledimo mu argumente i uzmemo rezultat izvršenja:

$process = Novi-Objekat -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″Zdravo, svijete″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

Sa WMI-jem možete učiniti gotovo sve, uključujući pokretanje programa. Metoda je sasvim prikladna za to Stvoriti WMI-klasa Win32_Proces. Ova metoda pokreće proces na lokalnom ili udaljenom računalu putem RPC-a. Na primjer, za pokretanje programa lokalni računar možete koristiti ovu naredbu:

()″Win32_Process″).Create(′C:\Program Files\Hello.exe′)

A da bi se izvršila na udaljenom računaru, naredba će izgledati ovako:

()″\\remotecomputer\root\cimv2:Win32_Process″).Create(′C:\Program Files\Hello.exe′)

Alternativno, možete koristiti cmdlet Invoke-WmiMethod:

Invoke-WmiMethod -Class Win32_Process -Name Kreiraj -ArgumentList ″C:\Program Files\Hello.exe″

Ili pomoću cmdleta Invoke-CimMethod:

Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @(CommandLine=″C:\Program Files\Hello.exe″)

WMI pokreće proces u zasebnom prozoru i vraća objekat koji sadrži ID procesa (ProcessID) i rezultat izvršenja (ReturnValue). ReturnValue može imati sljedeće vrijednosti:

0 — Uspješan završetak
2 -Pristup odbijen
3 — Nedovoljna privilegija
8 —Nepoznati kvar
9 — Put nije pronađen
21 — Nevažeći parametar

Invoke-Command

Invoke-Command cmdlet može izvršiti komande na lokalnom ili udaljenom računaru koristeći WinRM. Na primjer, za pokretanje našeg programa na lokalnom računalu koristimo naredbu:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″)

Ako je potrebno, možete proslijediti argumente programu:

Invoke-Command -ScriptBlock (C:\′Programske datoteke′\Hello.exe ″Hello,world″)

Imajte na umu da Invoke-Command nije baš prijateljski sa razmacima, tako da da biste izbjegli greške morate biti kreativni s navodnicima. Međutim, takvi problemi se mogu izbjeći, na primjer, kombiniranjem upotrebe cmdleta s & operatorom:

Invoke-Command -ScriptBlock (& ​​′C:\Program Files\Hello.exe′)

Invoke-Command se uglavnom koristi za daljinsko upravljanje, a njegova glavna prednost je mogućnost istovremenog izvršavanja na više računara. Na primjer:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″) -ComputerName SRV1, SRV2, SRV3

$scriptblock = (″C:\′Programske datoteke′\Hello.exe″)
$Computers = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers

Podrazumevano, cmdlet vraća rezultat izvršavanja programa, a ako ga pokrenete u pozadini (parametar -AsJob), vraća Job objekat:

Invoke-Command -ScriptBlock (C:\′Program Files′\Hello.exe) -ComputerName localhost -AsJob -JobName Zdravo

Invoke-Item

Invoke-Item cmdlet je dizajniran da primijeni zadanu radnju na datoteku. Dakle, možete pokrenuti izvršnu datoteku naredbom:

Invoke-Item -Path ″C:\Program Files\Hello.exe″

Međutim, najpogodnije je koristiti Invoke-Item za otvaranje određene vrste datoteke. Na primjer, ovako otvaramo tekstualni fajl:

Invoke-Item -Path ″C:\Files\test.txt″

I to je sve tekstualne datoteke u folderu:

Invoke-Item -Path ″C:\Files\*.txt″

CMD

Pa, u zaključku, drugi način za pokretanje programa iz PowerShell-a je korištenje cmd ljuske. Metoda je prilično „indirektna“, ali ipak radi. Sljedeća naredba pokreće novu instancu cmd-a, izvršava se u njoj navedeni program, izlazi iz cmd-a i vraća rezultat:

cmd /c ″C:\Program Files\Hello.exe″

PoSh pruža tako obilje načina za pokretanje programa. I svaki od njih je dobar za određene situacije.

Inače, članak je napisan na bazi PowerShell-a: Deep Dive and Best Practice. Preporučujem da ga pročitate, ima još dosta zanimljivih stvari.

Postoji nekoliko različitih načina za pokretanje skripte, a glavni su u nastavku:

  1. Pokrenite PowerShell i pokrenite skriptu u njoj (unesite putanju do datoteke i naziv datoteke, na primjer, ovako: C:\Scripts\test.ps1, ili idite u mapu skripte naredbom cd C:\Scripts i pokrenite je sa naredbom.\test.ps1) Shell se može pronaći i pokrenuti na mnogo načina. Jedan od načina je kroz Start meni. Za Windows 7 - trebate otići na "Svi programi" - "Dodatna oprema" - "Windows PowerShell" i pokrenuti "Windows PowerShell" ljusku. Za Windows 10 - morate pronaći grupu sa slovom "W" iu njoj ćete pronaći "Windows PowerShell".
  2. Pokrenite "Windows PowerShell ISE" je program - razvojno okruženje koje vam omogućava da uređujete i otklanjate greške u PowerShell skriptama, koje je takođe podrazumevano dostupno zajedno sa samim PowerShell-om. Nakon što ga pokrenete, samo trebate kliknuti na dugme "Otvori" ili otići na meni Datoteka - Otvori i odaberite potrebna skripta, zatim pritisnite F5 ili dugme "Run Script". Windows PowerShell ISE možete pronaći na istom mestu kao i PowerShell - u meniju Start.
  3. Pokrenite standardnu ​​komandnu liniju i napiši u njemu:
    powershell -datoteka<имя_скрипта> (primjer: powershell -datoteka myscript.ps1)

Ako ranije niste pokrenuli PowerShell skripte, vjerovatno ćete dobiti sljedeću poruku: Nije moguće preuzeti fajl<имя_скрипта>, budući da je izvršavanje skripte zabranjeno za ovaj sistem. Unesite "get-help about_signing" za više informacija. To je zbog činjenice da iz sigurnosnih razloga i kako bi se spriječilo slučajno izvršavanje zlonamjernog koda, sve skripte moraju biti digitalno potpisane.

Kako dozvoliti izvršavanje nepotpisane PowerShell skripte?

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

Set-ExecutionPolicy RemoteSigned -Scope Proces

2. Prilikom pokretanja sa standardne komandne 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 zapisanih u registratoru neće mijenjati i ostaće ista. Ako želite promijeniti sigurnosnu politiku izvršavanja skripte na "stalnu", onda koristite ovu metodu:

3. Dozvolite lansiranje zauvijek: Pokrenite PowerShell kao administrator, a zatim pokrenite naredbu:

Set-ExecutionPolicy RemoteSigned

Bilješka: Ako je skripta preuzeta s interneta, tada kako biste izbjegli zahtjev za potvrdom pokretanja, morate koristiti Bypass umjesto RemoteSigned - potpuno onemogućiti sve zahtjeve i upozorenja.

Kako pokrenuti PowerShell skriptu u pozadini?

Da biste to učinili, samo koristite parametar pokretanja -WindowStyle, koji može imati sljedeće vrijednosti: Normal, Minimized, Maximized i Hidden. Dakle, da biste pokrenuli nepotpisanu skriptu u pozadini, morate pokrenuti naredbu:

powershell -politika izvršenja RemoteSigned -WindowStyle Hidden -file<имя_скрипта>

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

Pokretanje PowerShell skripte s parametrima

Stvarno lansiranje bi trebalo biti obavljeno kao da lansirate redovni program ili bat fajl sa parametrima. Na primjer, da biste pokrenuli skriptu s parametrima iz komandne linije, možete napisati sljedeću naredbu:

powershell -executionpolicy RemoteSigned -file<имя_скрипта>param1 param2 "još jedan tekstualni parametar"

U samoj skripti možete dobiti ove parametre ovako:

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

U PowerShell ISE-u možete pokrenuti skriptu s parametrima na isti način pomoću komandnog okna.

Kako pokrenuti PowerShell skriptu koristeći prečicu?

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

  1. Kreirajte bat/cmd fajl u koji ćete napisati naredbu za pokretanje skripte (pročitali ste gore navedene parametre)
  2. Kreirajte prečicu do PowerShell-a, koja se može naći u folderu c:\Windows\System32\WindowsPowerShell\v<версия>\ i u svojstva prečice u polju "Objekat" dodajte potrebne parametre.

Tako, na primjer, trčati powershell skripta Kada se korisnik prijavi, možete jednostavno kreirati prečicu kao što je opisano u paragrafu 2 i postaviti je u startup. Također, kreiranje prečice pomoću jedne od gore navedenih metoda omogućit će vam da lako pokrenete skriptu kao administrator ili kao bilo koji drugi korisnik kao običan program.

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