Što je powershell u sustavu Windows 7. Osnove Windows PowerShell-a. Cmdlets u PowerShell

Bok svima! Danas kratka bilješka o temi, kako otvoriti powershell kao administrator. Dopustite mi da vas podsjetim da je PowerShell snažan programski i administrativni jezik iz Microsofta, svake godine raste, sve velika količina cmdleti i funkcionalnost. U biti, to je zamjena za Windows Command Prompt. U nastavku ćemo razmotriti metode koje vam omogućuju da ga otvorite i konfigurirate.
.

Metode za otvaranje PowerShell snap-ina

Powershell se jako dobro razvija i s izlaskom Windowsa 10 već je dobio verziju 5, no naša je tema drugačija. Dakle, kako otvoriti powershell? Sve je jednostavno ako je u sustavu Windows XP, onda ništa. Budući da se isporučuje odvojeno, u svim sljedećim izdanjima dolazi kao ugrađena komponenta. Najviše univerzalna metoda otvorite powershell ovim klikom

Win+R i unesite powershell

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

Kako pokrenuti Windows PowerShell kao administrator u Windows 8.1 i Windows 7

Windows Powershell možete otvoriti putem Starta. U sustavu Windows 8.1, Windows 2012 R2 idite na System Tools - Windows i desnom tipkom miša kliknite i odaberite Run as administrator.

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

Također možete stvoriti prečac u stavci zadatka i desnom tipkom miša kliknuti na njega i odabrati odgovarajuću stavku

Bilo bi zgodno da se PowerShell uvijek otvara kao administrator, implementirajmo ga. To se radi na isti način u svim verzijama sustava Windows. Otvaranje upravljačke ploče

Desnom tipkom miša kliknite na njega i odaberite Svojstva. Odmah možete vidjeti put do datoteke gdje se nalazi u sustavu.

Pritisnite gumb "Napredno". Vidjet ćete dodatna svojstva. gdje je potrebno označiti kućicu Pokreni kao administrator.

Sve je vrlo jednostavno. Siguran sam da sada nećete imati pitanja o tome kako otvoriti Windows Powershell. Još jedna korisna stvar je promijeniti font u prozoru PowerShell.

Kako otvoriti PowerShell iz kontekstnog izbornika gumba Start u sustavu Windows 10

Microsoft sve više stavlja naglasak na naredbeni redak prema svom snažnom jeziku (PowerShell), što je i logično, budući da njegove mogućnosti upravljanja operativnim sustavima Windows obitelj, gotovo su neograničene, ako ne i više, nego u grafičkom sučelju. Počevši od Windows verzije 10 1709, u kontekstnom izborniku, PowerShell, zamijenio je uobičajeni cmd za sve. Desnom tipkom miša kliknite gumb za pokretanje u sustavu Windows 10 i iz kontekstnog izbornika odaberite odgovarajuću stavku:

  1. Windows PowerShell
  2. Windows PowerShell (administrator) upravo je način rada s maksimalnim pravima u sustavu Windows 10.

Pokrenite Windows PowerShell pomoću pretraživanja u sustavu Windows 10

Na Windows 10 i starijim verzijama PowerShell možete pronaći pomoću redovita pretraga, za to postoji poseban odjeljak. Kliknite pored gumba Start, ikonu povećala. U obrazac za pretraživanje koji se otvori unesite riječ PowerShell. Tražit ćete sve opcije među kojima ćete pronaći i školjku. Ako ga kliknete desnom tipkom miša, možete ga otvoriti kao administrator.

Pokretanje Windows PowerShell iz izbornika Start u sustavu Windows 10

Da biste otvorili PowerShell iz izbornika Start, otvorite ga i pronađite stavku Windows PowerShell, bit će u obliku mape, otvorite je i pokrenite odgovarajuću verziju.

Ako kliknete desnom tipkom 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 s moćnim Microsoftovim jezikom. Onaj najspretniji, lako ga je pronaći izvršna datoteka i pokrenuti ga izravno s lokacije na sustavu. Idemo do vašeg Windows 10 sljedećim putem:

C:\Users\korisničko ime\AppData\Roaming\Microsoft\Windows\Izbornik Start\Programs\Windows PowerShell

Kao rezultat toga, vidjet ćete mapu s prečacima koji su prisutni u izborniku Start, možete ih pokrenuti.

Također možete pokrenuti izvornu izvršnu datoteku koja se nalazi duž staze:

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

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

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

Pa, dopustite da vas podsjetim i na metodu za pokretanje novog zadatka iz dodatka "Upravitelj zadataka". Otvorite "Upravitelj zadataka", odaberite stavku izbornika "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 izbornika "Datoteka - pokrenite Windows PowerShell", bit će oba načina.

Što je PowerShell ISE

Vjerojatno ste primijetili da je prečac PowerShell ISE posvuda i željeli biste znati što je to. Ukratko, ovo je posebna ljuska u kojoj možete pisati skripte i scenarije u PowerShell-u, koristeći svu raznolikost cmdleta koje vam Microsoft nudi.

Powershell mijenja font vrlo je jednostavan, idite na karticu Font u svojstvima, gdje možete postaviti 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 kutu 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 Powershellu i samom prozoru. Tako da ga učinite crnim, na primjer, poput naredbenog retka.

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

Hvala vam na pažnji. Ovo su metode za otvaranje konzole Power Shell u sustavu Windows. Materijal stranice

Mnogi korisnici znaju za naredbeni redak, ali vrlo malo njih je čulo za Windows PowerShell. U određenom smislu, PowerShell je alat koji ima za cilj zamijeniti naredbeni redak i pružiti moćnije mogućnosti za upravljanje operacijskim sustavom Windows. U ovom ćemo članku pokušati jasno objasniti što je to alat, zašto je toliko moćan i tko ga najčešće koristi.

Što je PowerShell?

Za bolje razumijevanje, prvo moramo razumjeti što je školjka. U informatici, ljuska je korisničko sučelje koje omogućuje pristup različitim uslugama. operacijski sustav. Ljuska se može temeljiti na naredbenom retku ili može uključivati ​​grafičko korisničko sučelje (GUI).

Windows PowerShell je ljuska koju je razvio Microsoft za automatizaciju zadataka i upravljanje konfiguracijom. Ova moćna ljuska temelji se na .NET okviru i uključuje ljusku naredbenog retka i skriptni jezik.

Također može postojati Windows PowerShell ISE povrh standardne ljuske naredbenog retka. ISE djeluje kao integrirano okruženje za skriptiranje - grafičko korisničko sučelje koje vam omogućuje stvaranje raznih skripti bez potrebe za unosom svih naredbi u naredbeni redak.

Prva verzija PowerShell-a objavljena je u studenom 2006. za Windows XP. Windows poslužitelj 2003. i Windows Vista. Najnovija je verzija 4.0, koja je objavljena u listopadu 2013. Dolazi prema zadanim postavkama sa sustavima Windows 8.1 i Windows Server 2012 R2.

Što možete učiniti s 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 biste vidjeli sve USB uređaje instalirane na jednom ili više računala na mreži ili možete postaviti dugotrajan zadatak koji će se izvoditi u pozadina dok radite drugi posao. Također možete identificirati i prekinuti procese koji ne reagiraju ili filtrirati određene informacije o računalima na vašoj mreži i izvesti ih u HTML formatu.

Mogućnosti PowerShell-a omogućuju vam da pojednostavite i automatizirate dugotrajne i ponavljajuće zadatke stvaranjem skripti i kombiniranjem više naredbi.

Ako ste mrežni administrator, PowerShell će vam biti vrlo koristan kada radite s njim Aktivni direktorij. Uzimajući u obzir da alat sadrži stotine prilagodljivih naredbi koje se nazivaju cmdleti, vjerojatnost da vam PowerShell može pomoći da postanete produktivniji vrlo je velika.

Kako pokrenuti PowerShell na Windows 8.1?

Ako nemate PowerShell pločicu na početnom zaslonu ili prečac na radnoj površini, možete je otvoriti pomoću pretraživanja - ovo je jedan od jednostavnih načina. Pritisnite +Q, upišite "powershell" i zatim pritisnite Enter.

Također možete otvoriti PowerShell iz odjeljka Aplikacije na početnom zaslonu: idite na početni zaslon i pomaknite kursor u donji lijevi kut, točno ispod posljednje pločice u prvom stupcu. Kliknite na ikonu sa strelicom prema dolje. Zatim kliknite ikonu PowerShell u odjeljku "Uslužni programi".

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

Kako pokrenuti PowerShell na Windows 7?

U sustavu Windows 7 alat možete pronaći traženjem "powershell" u izborniku Start.

Također možete otvoriti PowerShell kroz izbornik Start u odjeljku Pribor.

Očito, gornja naredba u prozoru Pokreni također radi u sustavu Windows 7.

Tko obično koristi PowerShell?

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

Recimo da upravljate velikom mrežom koja sadrži više od pet stotina poslužitelja i trebate implementirati novo sigurnosno rješenje koje ovisi o nekoj usluzi koja se mora izvoditi na tim poslužiteljima. Naravno, možete se spojiti na svaki poslužitelj i vidjeti je li potrebna usluga instalirana i radi li na njima. Međutim, u ovom slučaju malo je vjerojatno da će vaša uprava biti zadovoljna, jer će vam trebati previše vremena da izvršite zadatak.

S 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 uslugama koje se izvode na navedenim poslužiteljima i spremiti ih kao tekstualnu datoteku, npr.

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

Ugodan dan!

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 Također postoji mogućnost obavljanja nekih administrativnih poslova i mogućnost zapisivanja algoritma radnji, spremanje kao skripta (bat datoteka), dok možete koristiti određene elemente programiranja, na primjer, koristiti varijable, uvjetne konstrukcije, pa čak i nešto poput petlji.

Većina softverskih proizvoda ima sučelje konzole, tj. programom možemo upravljati pomoću naredbenog retka, uz uštedu resursa zbog nedostatka troškova rada GUI. Microsoft čak izdaje izdanja bez grafičkog sučelja za operacijski sustav poslužitelja Windows Server ( 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 za obavljanje tipičnih zadataka, 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 taj idealan alat za administraciju i automatizaciju ove administracije za administratori 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 sustavu Windows Microsoft PowerShell razvio koncept cmdleta ( cmdleti), što je sustav imenovanja naredbi " Glagol-imenica" Ovaj sustav omogućuje administratorima sustava da brzo savladaju i pojednostave 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):

Verzija PowerShell-a 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, kao i za pisanje skripti za automatizaciju administrativnih zadataka u integriranom okruženju Windows skripte PowerShell (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 on radi dati jezik intuitivan 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» ( pojavio se 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 cmdlet koji vam je potreban puno ime 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.

Korištenjem cjevovoda možete izvršavati 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 -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).

Svi cmdleti međusobno su odvojeni okomitom crtom. 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.

Da biste radili u pozadini, morate napisati naredbu Start-Job, au vitičastim zagradama () naredbu ili skup naredbi koje želite pokrenuti 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 daljinski upravljač:

  • 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 način se spajate na udaljeno računalo i sve naredbe koje upišete u PowerShell bit će izvršene na udaljeno računalo baš 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. 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 koji vam je potreban i spremite ga kao skriptu - to je jednostavna tekstualna datoteka s ekstenzijom .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 toga, 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 vidjeti u varijablama okruženja 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!

Pokretanje programa iz PowerShell-a

Zadatak pokretanja bilo koje izvršne datoteke (programa ili uslužnog programa naredbenog retka) iz PowerShell-a događa se prilično često. PowerShell za to nudi nekoliko opcija. na razne načine, što ćemo razmotriti kasnije u ovom članku. Počnimo s najjednostavnijim...

Izravno lansiranje

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

Postavi lokaciju ″C:\Programske datoteke″
.\Hello.exe

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

Operater &

Ako trebate navesti puni put do izvršne datoteke, možete koristiti operator & (poziv operatera). Omogućuje vam da izvršite niz teksta navedenog u navodnicima poput jedan tim. Na primjer:

& ′C:\Programske datoteke\Hello.exe′

Budući da & operator ne analizira naredbu koja se prosljeđuje, ne može interpretirati njezine parametre. Stoga se dodatni parametri\argumenti također prosljeđuju kao tekst, pod navodnicima. Kao primjer, uzmimo prethodni program i malo ga modificirajmo tako da prihvaća ž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′ ′Zdravo,′, ′ svijete′

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

$exe = ′C:\Programske datoteke\Hello.exe′
$arg1 = 'Zdravo'
$arg2 = ′svijet′
& $exe $arg1 $arg2

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

$exe = ′C:\Programske datoteke\Hello.exe′
$allargs = @(′Zdravo,′,′svijete′)
& $exe $allargs

Invoke-Expression

Invoke-Expression cmdlet funkcionira gotovo na isti način kao & 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 s razmacima. Na primjer, sljedeća naredba će izazvati pogrešku:

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

Ova značajka čini korištenje cmdleta izuzetno nezgodnim. Iako se, ako je potrebno, takve pogreške mogu izbjeći dodatnim citatima, na primjer ovako:

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

Početak procesa

Pokreće se cmdlet Start-Process navedena datoteka kao proces pomoću metode Početak.NET klasa Postupak. Na primjer:

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

Prema zadanim postavkama, 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 -Pričekajte

Start-Process vam također omogućuje prosljeđivanje dodatnih argumenata procesu:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Hello, world' -NoNewWindow -Pričekaj

Prema zadanim postavkama, cmdlet ne vraća ništa, ali možete upotrijebiti parametar -PassThru da biste ga prisilili da vrati procesni objekt. Vrlo je zgodno smjestiti ovaj objekt u varijablu:

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

iz kojeg onda možete saznati mnoge korisne stvari, kao što je status:

$process.HasExited

$process.ExitTime

ili izvršni kod:

$process.ExitCode

.NETO

U principu, klasa .NET Process može se koristiti izravno, bez Start-Process cmdlet. 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 je malo fleksibilnija u upotrebi. Na primjer, pokrenimo naš program u trenutnom prozoru, proslijedimo mu argumente i uzmimo rezultat izvršenja:

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

$process.StandatdOutput.ReadToEnd()

WMI

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

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

A za izvršavanje na udaljenom računalu, 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 Create -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 objekt koji sadrži ID procesa (ProcessID) i rezultat izvršenja (ReturnValue). ReturnValue može uzeti sljedeće vrijednosti:

0 — Uspješan Completiom
2 -Pristup odbijen
3 — Nedovoljna privilegija
8 — Nepoznati kvar
9 — Staza nije pronađena
21 — Nevažeći parametar

Invoke-Command

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

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

Ako je potrebno, možete proslijediti argumente programu:

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

Imajte na umu da Invoke-Command nije baš prijateljski nastrojen s razmacima, pa da biste izbjegli pogreške, morate biti kreativni s navodnicima. Međutim, takvi se problemi 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 nekoliko računala. Na primjer:

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

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

Prema zadanim postavkama, cmdlet vraća rezultat izvršavanja programa, a ako ga pokrenete u pozadini (parametar -AsJob), vraća objekt Job:

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

Invoke-Item

Invoke-Item cmdlet dizajniran je za primjenu zadane radnje na datoteku. Dakle, možete pokrenuti izvršnu datoteku s naredbom:

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

Ipak, najprikladnije je koristiti Invoke-Item za otvaranje određene vrste datoteke. Na primjer, ovako otvaramo tekstualnu datoteku:

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

I to je sve tekstualne datoteke u mapi:

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 unatoč tome djeluje. 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.

Usput, članak je napisan na temelju PowerShell: Deep Dive and Best Practice. Preporučam čitanje, ima tu još puno zanimljivih stvari.

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

  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" - "Dodaci" - "Windows PowerShell" i pokrenuti 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 odaberite potrebna skripta, zatim pritisnite F5 ili gumb "Pokreni skriptu" Windows PowerShell ISE možete pronaći na istom mjestu kao i 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 kako bi se spriječilo slučajno izvršavanje zlonamjernog koda, 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 izvođenje 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, kako biste izbjegli zahtjev za potvrdu 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 upotrijebite parametar pokretanja -WindowStyle, koji može uzeti sljedeće vrijednosti: Normalno, Minimizirano, Maksimizirano i Skriveno. Dakle, da biste pokrenuli nepotpisanu skriptu u pozadini, morate 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 ;)