Kaj je powershell v sistemu Windows 7. Osnove lupine Windows PowerShell. Cmdlets v PowerShell

Pozdravljeni vsi skupaj! Danes kratek zapis o temi, kako odpreti powershell kot skrbnik. Naj vas spomnim, da je PowerShell močan Microsoftov programski in administrativni jezik, vsako leto raste, vse velika količina cmdleti in funkcionalnost. V bistvu je zamenjava za ukazni poziv sistema Windows. Spodaj bomo obravnavali metode, ki vam omogočajo, da ga odprete in konfigurirate.
.

Metode za odpiranje snap-ina PowerShell

Powershell se razvija zelo dobro in je z izdajo Windows 10 že prejel različico 5, vendar je naša tema drugačna. Kako torej odpreti powershell? Vse je preprosto, če je v sistemu Windows XP, potem nič. Ker je dostavljen ločeno, je v vseh naslednjih izdajah na voljo kot vgrajena komponenta. večina univerzalna metoda odprite powershell s tem klikom

Win + R in vnesite powershell

S pritiskom na enter se zažene konzola PowerShell, edina težava je, da se ne odpre kot skrbnik. Posledično se številni ukazi ne bodo izvedli; spodaj bomo videli, kako to storiti v imenu skrbnika.

Kako zagnati Windows PowerShell kot skrbnik v sistemih Windows 8.1 in Windows 7

Windows Powershell lahko odprete prek Starta. V operacijskem sistemu Windows 8.1, Windows 2012 R2 pojdite na Sistemska orodja - Windows in kliknite z desno tipko miške ter izberite Zaženi kot skrbnik.

V sistemih Windows 7 in Windows 2008 R2 je videti takole Start > Pripomočki > Windows PowerShell

Prav tako lahko ustvarite bližnjico v elementu opravila in jo kliknete z desno tipko miške ter izberete ustrezen element

Bilo bi priročno, če bi se PowerShell vedno odprl kot skrbnik, implementirajmo ga. To se naredi na enak način v vseh različicah sistema Windows. Odpiranje nadzorne plošče

Z desno tipko miške kliknite nanjo in izberite Lastnosti. Takoj lahko vidite pot do datoteke, kjer se nahaja v sistemu.

Kliknite gumb "Napredno". Videli boste dodatne lastnosti. kjer morate potrditi polje Zaženi kot skrbnik.

Vse je zelo preprosto. Prepričan sem, da zdaj ne boste imeli vprašanja o tem, kako odpreti Windows Powershell. Druga uporabna stvar je spreminjanje pisave v oknu PowerShell.

Kako odpreti PowerShell iz kontekstnega menija gumba Start v sistemu Windows 10

Microsoft vse bolj poudarja ukazna vrstica proti svojemu močnemu jeziku (PowerShell), kar je logično, saj njegove zmogljivosti za upravljanje operacijskih sistemov Družina Windows, so skoraj neomejeni, če ne še več kot v grafičnem vmesniku. Začenši z Različice sistema Windows 10 1709 je v kontekstnem meniju PowerShell zamenjal običajni cmd za vse. Z desno miškino tipko kliknite gumb za zagon v sistemu Windows 10 in v kontekstnem meniju izberite ustrezen element:

  1. Windows PowerShell
  2. Windows PowerShell (skrbnik) je ravno tisti način z največjimi pravicami v sistemu Windows 10.

Zaženite Windows PowerShell z iskanjem v sistemu Windows 10

V sistemu Windows 10 in starejših različicah lahko PowerShell najdete z uporabo redno iskanje, za to obstaja poseben razdelek. Poleg gumba Start kliknite ikono povečevalnega stekla. V iskalni obrazec, ki se odpre, vnesite besedo PowerShell. Iskali boste vse možnosti, med katerimi boste našli školjko. Če ga kliknete z desno tipko miške, ga lahko odprete kot skrbnik.

Zagon Windows PowerShell iz menija Start v sistemu Windows 10

Če želite odpreti PowerShell iz menija Start, ga odprite in poiščite element Windows PowerShell, ki bo v obliki mape, ga odprite in zaženite ustrezno različico.

Če kliknete z desno tipko miške, lahko zaženete lupino Vershel kot skrbnik s skrbniškimi pravicami.

Dodatne in splošne metode zagona lupine

Obstajajo tudi zelo specifične metode za odpiranje lupine z zmogljivim Microsoftovim jezikom. Najbolj neroden, zlahka ga je najti izvršljiva datoteka in ga zaženite neposredno z lokacije v sistemu. Pojdimo do vašega sistema Windows 10 po naslednji poti:

C:\Users\uporabniško ime\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

Kot rezultat boste videli mapo z bližnjicami, ki so prisotne v meniju Start, lahko jih zaženete.

Zaženete lahko tudi izvirno izvršljivo datoteko, ki se nahaja na poti:

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

In z desnim klikom nanj, ga lahko prenesete kot skrbnik, z največjimi pravicami.

Windows PowerShell lahko zaženete tudi iz okna ukazne vrstice; za to preprosto vnesite čarobno besedo in pritisnite Enter.

No, naj vas spomnim tudi na način zagona nove naloge iz snap-ina »Upravitelj opravil«. Odprite "Upravitelj opravil", izberite element menija "Datoteka - Zaženi novo opravilo"

V oknu, ki se prikaže, vnesite PowerShell.

No, zadnja metoda, ki mi je znana, je zagon PowerShell prek Windows Explorer 10, če želite to narediti, odprite Raziskovalec, izberite element menija "Datoteka - zaženite Windows PowerShell", na voljo bosta oba načina.

Kaj je PowerShell ISE

Verjetno ste opazili, da je bližnjica PowerShell ISE povsod, in radi bi vedeli, kaj je. Na kratko, to je posebna lupina, v kateri lahko pišete skripte in scenarije v lupini PowerShell z uporabo vse vrste cmdletov, ki vam jih ponuja Microsoft.

Powershell spreminjanje pisave je zelo preprosto, pojdite na zavihek Font v lastnostih, kjer lahko nastavite velikost od 5 do 72.

Do lastnosti lahko pridete tudi iz samega okna pripomočka, kliknite na ikono v zgornjem levem kotu in izberite lastnosti

Tu so nastavitve pisave nekoliko drugačne in s spreminjanjem se spreminja tudi velikost konzole.

Na zavihku Barve lahko nastavite barvo pisave v Powershellu in samem oknu. Tako, da je na primer črna, kot je ukazna vrstica.

Prav tako svetujem, da če ste aktivni uporabnik konzole, nastavite velikost medpomnilnika ne na 50 ukazov, ampak vsaj na 100.

Hvala za vašo pozornost. To so metode za odpiranje konzole Power Shell v sistemu Windows. Gradivo spletnega mesta

Mnogi uporabniki poznajo ukazni poziv, le redki pa so slišali za lupino Windows PowerShell. V nekem smislu je PowerShell orodje, katerega namen je nadomestiti ukazno vrstico in zagotoviti zmogljivejše zmogljivosti za upravljanje operacijskega sistema Windows. V tem članku bomo poskušali jasno razložiti, kaj je to orodje, zakaj je tako močno in kdo ga najpogosteje uporablja.

Kaj je PowerShell?

Za boljše razumevanje moramo najprej razumeti, kaj je lupina. V računalništvu je lupina uporabniški vmesnik, ki omogoča dostop do različnih storitev. operacijski sistem. Lupina lahko temelji na ukazni vrstici ali pa vključuje grafični uporabniški vmesnik (GUI).

Windows PowerShell je lupina, ki jo je razvil Microsoft za avtomatizacijo opravil in upravljanje konfiguracije. Ta zmogljiva lupina temelji na ogrodju .NET in vključuje lupino ukazne vrstice in skriptni jezik.

Na vrhu standardne lupine ukazne vrstice je lahko tudi Windows PowerShell ISE. ISE deluje kot integrirano skriptno okolje - grafični uporabniški vmesnik, ki vam omogoča ustvarjanje različnih skriptov, ne da bi morali vnesti vse ukaze v ukazno vrstico.

Prva različica PowerShell je bila izdana novembra 2006 za Windows XP. Windows Server 2003 in Windows Vista. Najnovejša je različica 4.0, ki je bila izdana oktobra 2013. Privzeto je na voljo z Windows 8.1 in Windows Server 2012 R2.

Kaj lahko storite s PowerShell?

Microsoft je razvil Windows PowerShell kot orodje, ki pomaga avtomatizirati in hitro rešiti številne dolgočasne administrativne naloge. Na primer, lahko uporabite PowerShell za ogled vseh naprav USB, nameščenih v enem ali več računalnikih v omrežju, ali pa lahko nastavite zamudno opravilo, ki se bo izvajalo v ozadje medtem ko opravljate drugo delo. Prav tako lahko identificirate in prekinete procese, ki se ne odzivajo, ali filtrirate določene informacije o računalnikih v vašem omrežju in jih izvozite v formatu HTML.

Zmogljivosti lupine PowerShell vam omogočajo, da poenostavite in avtomatizirate zamudna in ponavljajoča se opravila z ustvarjanjem skriptov in kombiniranjem več ukazov.

Če ste skrbnik omrežja, se vam bo PowerShell zdel zelo uporaben pri delu Aktivni imenik. Glede na to, da orodje vsebuje na stotine prilagodljivih ukazov, imenovanih cmdleti, je verjetnost, da vam PowerShell pomaga postati bolj produktivni, zelo velika.

Kako zagnati PowerShell v sistemu Windows 8.1?

Če na začetnem zaslonu nimate ploščice PowerShell ali bližnjice na namizju, jo lahko odprete z iskanjem – to je eden najbolj preprostih načinov. Pritisnite +Q, vnesite "powershell" in pritisnite Enter.

PowerShell lahko odprete tudi v razdelku Aplikacije na začetnem zaslonu: pojdite na domači zaslon in premaknite kazalec v spodnji levi kot, tik pod zadnjo ploščico v prvem stolpcu. Kliknite ikono s puščico navzdol. Nato kliknite ikono PowerShell v razdelku »Utilities«.

Če želite odpreti PowerShell v pogovornem oknu Zaženi, pritisnite +R, vnesite "powershell" in pritisnite Enter.

Kako zagnati PowerShell v sistemu Windows 7?

V sistemu Windows 7 lahko orodje najdete tako, da v meniju Start poiščete »powershell«.

PowerShell lahko odprete tudi prek menija Start v razdelku Dodatki.

Očitno zgornji ukaz v oknu Zaženi deluje tudi v sistemu Windows 7.

Kdo običajno uporablja PowerShell?

Brez dvoma je PowerShell izbira mnogih IT skrbnikov. In to z dobrim razlogom, saj orodje močno poenostavi postopke upravljanja in v veliki meri zmanjša količino dela korporativna omrežja.

Recimo, da upravljate veliko omrežje, ki vsebuje več kot petsto strežnikov, in morate implementirati novo varnostno rešitev, ki je odvisna od neke storitve, ki mora delovati na teh strežnikih. Seveda se lahko povežete z vsakim strežnikom in preverite, ali je zahtevana storitev nameščena in deluje na njih. Vendar pa v tem primeru vaše vodstvo verjetno ne bo zadovoljno, saj boste potrebovali preveč časa za dokončanje naloge.

Z z uporabo PowerShell to opravilo lahko opravite v nekaj minutah, saj je celotno operacijo mogoče izvesti z enim skriptom, ki bo zbral informacije o storitvah, ki se izvajajo na določenih strežnikih, in jih shranil kot besedilno datoteko, npr.

PowerShell vam omogoča veliko več, kot je mogoče zajeti v enem članku, zato vam toplo priporočamo, da kupite in preberete eno od številnih knjig, ki opisujejo moč tega orodja, če vas resnično zanima.

Imej lep dan!

V tem članku si bomo ogledali Microsoftovo tehnologijo, kot je Windows PowerShell, bomo govorili o tem, kaj je PowerShell, kaj so ukazi cmdlet in cevovod, kako pisati skripte in module ter se dotaknili tudi drugih enako pomembnih in uporabnih funkcij Windows PowerShell.

Pred lupino PowerShell so bili ( in obstajajo) naslednja orodja za avtomatizacijo in administracijo storitev: Windows ukazna vrstica in Windows Script Host. Toda te tehnologije imajo slabosti.

V ekipi Windows nizi Obstaja tudi možnost izvajanja nekaterih administrativnih nalog in možnost zapisovanja algoritma dejanj, ki ga shranite kot skript (datoteka bat), medtem ko lahko uporabite nekatere programske elemente, na primer uporabite spremenljivke, pogojne konstrukcije in celo nekaj podobnega zank.

Večina programskih izdelkov ima konzolni vmesnik, tj. program lahko upravljamo z ukazno vrstico, pri tem pa prihranimo sredstva zaradi pomanjkanja stroškov dela GUI. Microsoft izda celo izdaje brez grafičnega vmesnika za strežniški operacijski sistem Windows Server ( Server Core, Windows Server 2016 ima celo Nano Server), vendar vse to ni dovolj, saj so zmožnosti ukazne vrstice omejene, tj. Ne bomo mogli napisati neke kompleksne logike za avtomatizacijo nečesa, pa tudi če bi lahko, bo to zahtevalo čas in znanje.

Pomanjkljivost ukazne vrstice je tudi ta, da za popolno upravljanje strežnika uporabljamo različne konzolne pripomočke programskih izdelkov, zato je uporaba ukazne vrstice za administracijo dejansko težavna, z vidika dejstva, da imajo vsi ti pripomočki različne sintakso, parametre, načine uporabe in za opravljanje tipičnih nalog, tj. vsak dan, morate vse to imeti v spominu, za opravljanje netipičnih nalog pa morate najprej prebrati pomoč ali dokumentacijo.

Tehnologija Windows Script Host omogoča izvajanje vseh administrativnih nalog kot ukazna vrstica, vključno z njihovo avtomatizacijo s pisanjem skriptov WSH, vendar tukaj že lahko uporabljamo polnopravne programske jezike ( VBScript in JScript), tj. je mogoče implementirati zapleteno logiko in algoritme. Poleg tega s pomočjo WSH upravljamo programske izdelke prek objektnega vmesnika, z drugimi besedami, Windows Script Host je veliko več hladilnik» kot ukazna vrstica. Ampak to tehnologijo tudi ni postalo tisto idealno orodje za administracijo in avtomatizacijo te administracije za sistemski skrbniki, saj je Windows Script Host zahteval znanje zgornjih programskih jezikov, kar je za sistemske skrbnike pravzaprav odveč. Administratorji potrebujejo le preprosto skrbniško orodje z možnostjo programiranja nekaterih dejanj in se ne želijo poglabljati v objektne modele programskih izdelkov v programskih jezikih VBScript in JScript.

Zaradi tega je moral Microsoft razviti skrbniško orodje za sistemske skrbnike, ki bi 100-odstotno zadovoljevalo vse potrebe sistemskih skrbnikov, tako glede zmogljivosti administracije in avtomatizacije kot glede priročnosti in enostavnosti uporabe, tako se je pojavil Windows PowerShell.

Kaj je Windows PowerShell?

Windows PowerShell je skriptni jezik Windows in ukazna lupina, zasnovana za skrbništvo in konfiguriranje operacijskih sistemov Windows. PowerShell je zgrajen na ogrodju CRL in .NET Framework in za razliko od ukazne vrstice, ki sprejema in vrača besedilo, Windows PowerShell deluje s predmeti. Vsak predmet v lupini PowerShell ima lastnosti in metode, ki jih lahko uporabite za manipulacijo teh predmetov.

V sistemu Windows Microsoft PowerShell razvil koncept cmdletov ( cmdleti), ki je sistem poimenovanja ukazov " Glagolsko-samostalniški" Ta sistem sistemskim skrbnikom omogoča hitro obvladovanje in poenostavitev dela s PowerShell.

Z z uporabo sistema Windows PowerShell lahko:

  • Dostop do datotečnega sistema;
  • Upravljajte register;
  • Upravljanje storitev;
  • Upravljajte procese;
  • Konfigurirajte operacijski sistem;
  • Namestite programsko opremo;
  • Namestite strežniške vloge in komponente;
  • Skrbništvo in konfiguriranje strežniških vlog in komponent;
  • Pisanje in uporaba skriptov za avtomatizacijo upravljanja in administracije;
  • Opravljajte druge naloge skrbnika sistema.

Windows PowerShell vsebuje številne pogosto uporabljene pripomočke in ukaze, ki jih lahko zaženete iz ukazne vrstice, kot so ipconfig, ping in drugi. To je bilo storjeno, da bi sistemskim skrbnikom olajšali prehod iz ukazne vrstice v PowerShell.

Poleg tega imajo številni pogosto uporabljeni ukazi in pripomočki v lupini PowerShell sinonime ( vzdevek), na primer cls je sinonim za cmdlet Clear-Host, dir je sinonim za Get-ChildItem ( celoten seznam sinonime si lahko ogledate tako, da zaženete cmdlet Get-Alias ​​​​).

Za poenostavitev iskanja želenega ukaza ima PowerShell poseben cmdlet Get-Command, s katerim lahko iščete tako po glagolu kot samostalniku. Vsi ukazi v lupini Windows PowerShell so združeni v module ( npr. Hyper-V, NetTCPIP), kar tudi olajša iskanje pravega ukaza.

Ko je zahtevani ukaz najden, si lahko ogledate navodila za delo s tem ukazom, tj. pomoč, za te namene obstaja poseben ukaz Get-Help cmdlet, na primer naslednji ukaz bo prikazal pomoč za ukaz Get-Command:

Get-Help Get-Command

Pomoč v lupini Windows PowerShell je lahko kratka, podrobna ( parameter -Podrobno), poln ( parameter -Full), lahko pa prikažete tudi samo primere ( parameter - Primeri). Naslednji ukaz bo prikazal samo primere uporabe cmdleta Get-Command:

Get-Help Get-Command - Primeri

Pomoč PowerShell je mogoče posodobiti, tj. lahko ga posodobite z ukazom Update-Help.

Različice lupine Windows PowerShell

Prva različica PowerShell 1.0 se je pojavila 14. novembra 2006 in je bila izdana kot ločena distribucija, ki jo je bilo mogoče namestiti v naslednje različice operacijskih sistemov Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 in Windows Vista.

V sistemu Windows Server 2008 je PowerShell 1.0 prišel kot komponenta, ki jo je bilo treba tudi namestiti.

Začenši z Windows 7 in Windows Server 2008 R2 je PowerShell sestavni del sistema ( tiste. vnaprej nameščen, ni ga treba namestiti). Spodaj je tabela ujemanja med različico PowerShell in različico operacijskega sistema Windows ( tiste. katera različica lupine PowerShell je privzeto nameščena v kateri različici sistema Windows):

Različica PowerShell Različice sistema Windows
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

Z vsakim nova različica PowerShell postaja vse močnejše skrbniško orodje; za primerjavo, prvi PowerShell je imel približno 130 cmdletov, PowerShell 5.0 pa jih ima zdaj več kot 600!

Vedeti trenutna verzija V lupini PowerShell lahko uporabite lastnost PSVersion vgrajene spremenljivke $PSVersionTable, na primer zaženete naslednji ukaz:

$PSVersionTable.PSVersion

Ali pa zaženite cmdlet

Get-Variable -Name PSVersionTable –ValueOnly

kjer bo vrednost PSVersion različica PowerShell.

Jezik PowerShell

PowerShell je objektno usmerjen skriptni programski jezik. Uporablja se za pisanje ukazov za nadzor vseh komponent operacijskega sistema Windows v lupini Windows PowerShell, kot tudi za pisanje skriptov za avtomatizacijo skrbniških opravil v integriranem okolju Windows skripti PowerShell (ISE). Čeprav je bil jezik PowerShell ustvarjen za skrbniška opravila, je polnopravni skriptni programski jezik, saj ima programske konstrukcije, ki so prisotne v vsakem programskem jeziku, kot so: pogoji, zanke, obravnavanje napak, delo s spremenljivkami, objekti in nizi.

Jezik PowerShell ima enotno sintakso za pisanje ukazov in strukturo poimenovanja teh ukazov, ki temelji na načelu " Glagolsko-samostalniški", kaj dela danem jeziku intuitiven tako za programerje kot za sistemske skrbnike.

Windows PowerShell

Windows PowerShell je okolje za izvajanje ukazov in skriptov v PowerShell. Ta lupina ima enake zmožnosti kot ukazna vrstica, kot so: shranjevanje zgodovine izvajanja ukazov, nastavitev videz lupina, dokončanje ukazov s kombinacijo tipk Ctrl+C, pa tudi številne druge funkcije, ki niso na voljo v lupini ukazne vrstice, na primer tako čudovita funkcija, kot je » poudarjanje sintakse» ( uveden v PowerShell 5.0).

PowerShell lahko zaženete na več načinov, na primer:

  • V ukazni vrstici vnesite PowerShell;
  • Skozi pogovorno okno " Izvedi» ( bližnjica na tipkovnici Win+R), tudi tipkanje PowerShell;
  • V sistemu Windows 7 - Start->Vsi programi -> Pripomočki -> Windows PowerShell -> Windows PowerShell;
  • V sistemu Windows 8.1 ali Windows Server 2012 R2 - Start->Vsi programi -> Sistemska orodja -> Windows PowerShell;
  • V sistemu Windows 10 ali Windows Server 2016 - Start->Vsi programi -> Imenik Windows PowerShell ( v skupini W) -> Windows PowerShell.

Primer izvajanja lupine PowerShell v sistemu Windows Server 2016

Posnetek zaslona lupine PowerShell v sistemu Windows Server 2016

Cmdlets v PowerShell

Cmdlet (cmdlet) - To Windows ekipa PowerShell, s katerim lahko komunicirate z objekti operacijskega sistema, da jih upravljate. Ti ukazi so del jezika PowerShell. Cmdleti so zgrajeni po principu " Glagolsko-samostalniški", ločeno z vezajem (-); z drugimi besedami, najprej povemo, kaj storiti, z vezajem pa povemo, kaj storiti. Na primer cmdlet Get-Help, kjer je Get glagol, ki pomeni " Dobiti" in pomoč je samostalnik " pomoč" v kontekstu PowerShell " Prikaži – Pomoč" PowerShell cmdlet vrne rezultate kot objekte, kar je ena glavnih razlik od ukaznega poziva Windows, v katerem ukazi vrnejo samo besedilo na zaslon.

Poleg cmdletov za pridobivanje podatkov (Get) obstajajo tudi vrste cmdletov kot so:

  • Dodaj – dodajanje podatkov;
  • Jasno – jasno;
  • Omogoči – omogoči;
  • Onemogoči – izklopi;
  • Novo – ustvari;
  • Odstraniti – odstraniti;
  • Set – set;
  • Start - začetek;
  • Stop – stop;
  • Izvoz – izvoz;
  • Uvoz – uvoz;
  • In še veliko več.

Celoten seznam cmdletov v lupini Windows PowerShell si lahko ogledate s posebnim cmdletom Get-Command. Na primer, zaženite ga s parametrom cmdlet -CommandType, posledično bo na vašem zaslonu prikazan seznam cmdletov.

Get-Command -CommandType cmdlet

Kot ste že razumeli, imajo cmdleti parametre, s katerimi lahko določimo dejanja cmdleta. Parametri so lahko obvezni ali neobvezni; cmdlet Get-Command na primer nima obveznih parametrov.

Spodnja slika prikazuje način iskanja cmdleta po glagolu ( Glagolski parameter). V tem primeru smo prikazali seznam cmdletov, ki lahko nekaj znova zaženejo.

Ekipa

Get-Command -Verb Restart

Če želite iskati cmdlet po samostalniku, morate uporabiti parameter Noun. Spodaj imamo na primer seznam cmdletov, ki delujejo s storitvami.

Ekipa

Get-Command - Noun Service

Če ne najdete ukaza cmdlet, ki ga potrebujete polno ime Uporabite lahko masko v formatu *Besedilo*.

Cevovod v PowerShell

Eden od glavnih Funkcije sistema Windows PowerShell lahko uporablja cevovod pri izvajanju ukazov.

Tekoči trak– to je prenos rezultata ukaza cmdlet skozi navpično vrstico (|) v drug ukaz cmdlet. Hkrati, kot se spomnite, cmdleti PowerShell delujejo s predmeti in vračajo predmete; v skladu s tem se predmeti prenašajo tudi po cevovodu.

Z uporabo cevovoda lahko izvajate zapletene naloge na preprost in priročen način, ne da bi morali pisati zapletene algoritme in skripte.

Na primer, ugotovimo ime največje datoteke v imeniku "C:\Windows\System32" ( preprost primer cevovoda).

Ekipa

Get-ChildItem -Path "C:\Windows\System32" -File | Razvrsti-Dolžina predmeta -Padajoče | Select-Object - First 1

  • Get-ChildItem – cmdlet za pridobivanje predmetov v podanem imeniku;
  • Sort-Object je cmdlet za razvrščanje predmetov, v našem primeru razvrščamo po velikosti datoteke ( dolžina -Padajoče);
  • Select-Object je cmdlet za izbiro želenih lastnosti predmeta, v našem primeru prikažemo standardna polja in samo prvi objekt, tj. velika datoteka (parameter -prvi 1).

Vsi cmdleti so med seboj ločeni z navpično črto. Rezultat vsakega ukaza cmdlet se kot vhod prenese v drug ukaz cmdlet, tj. najprej dobimo vse objekte v podanem imeniku, nato razvrstimo rezultat in na koncu izberemo prvi objekt.

Izvajanje nalog v ozadju

Windows PowerShell ima možnost izvajanja opravil v ozadju, kar je mehanizem, s katerim lahko zaženete ukaz ( na primer, ki traja dolgo časa) v ozadju, tj. po zagonu se vrnete v trenutno sejo in lahko nadaljujete z delom, ne da bi čakali na zaključek ukaza. Ta priložnost Potrebovali ga boste, ko boste morali zagnati ukaz, ki traja precej dolgo, in kot veste, je v tem času seja PowerShell blokirana, dokler se ukaz ne zaključi, in morate nadaljevati z delom.

Upravljate lahko vsa opravila, ki se izvajajo v ozadju, na primer ogled seznama opravil, zaustavitev opravila, brisanje opravila in seveda ogled rezultata opravila.

Windows PowerShell ima naslednje cmdlete za delo z opravili v ozadju:

  • Start-Job – zagon opravila v ozadju;
  • Stop-Job – zaustavi opravilo v ozadju
  • Get-Job – ogled seznama opravil v ozadju;
  • Receive-Job – ogled rezultata opravila v ozadju;
  • Remove-Job – odstrani opravilo v ozadju;
  • Wait-Job – premaknite opravilo v ozadju v ospredje, da počakate, da se konča.

Če želite delovati v ozadju, morate napisati ukaz Start-Job in v zavitih oklepajih () ukaz ali niz ukazov, ki jih želite izvajati v ozadju.

Na primer, zaženimo neko nalogo ( pokaži seznam storitev) v ozadju, nato si oglejte seznam opravila v ozadju in na zaslonu prikažemo rezultat naše naloge ( tiste. seznam storitev).

Zaženite opravilo v ozadju

Start-Job (Get-Service)

Ogledamo si seznam nalog, ki se izvajajo v ozadju

Prikaz rezultata Job1

Receive-Job Job1

Kot lahko vidite, imamo zdaj nalogo s statusom » Dokončano", tj. je že končano ( Get-Service deluje hitro).

Če želite videti rezultat opravila v ozadju, tj. Get-Service cmdlet smo izvedli ukaz Receive-Job in mu posredovali ime opravila ( možna je tudi vrednost identifikatorja). Kot rezultat smo prikazali seznam storitev.

Daljinsko upravljanje z uporabo PowerShell

Windows PowerShell ni zasnovan le za lokalno uporabo, ampak tudi za oddaljeno izvajanje ukazov. Ta funkcija je potrebna, da lahko nadzorujete oddaljene računalnike s svojega delovnega mesta, tj. zaženite ukaze PowerShell.

Obstaja več načinov daljinec:

  • Uporaba parametra – Ime računalnika (veliko ekip ga ima). Z drugimi besedami, kot parameter posredujete ime računalnika, na katerem želite izvesti ukaz. Metoda ima pomanjkljivost, da je omejena na izvajanje enega ukaza;
  • Uporaba sej. Cmdlet Vnesite-PSSession (interaktivno sejo). Na ta način se povežete z oddaljenim računalnikom in vsi ukazi, ki jih vtipkate v PowerShell, se bodo izvajali na oddaljeni računalnik tako kot če bi vnašali ukaze neposredno na oddaljenem računalniku. Metoda ima tudi pomanjkljivost, da je seja omejena na en računalnik;
  • Uporaba ukaza cmdlet Invoke-Command. Z uporabo ta metoda Ukaze ali skripte lahko izvajate na enem ali več računalnikih.

Na primer za povezavo z oddaljenim računalnikom ( v spodnjem primeru ServerName) v interaktivni seji zaženite naslednji ukaz:

Vnesite ime strežnika PSSession

Skripti, funkcije in moduli v lupini Windows PowerShell

Če ste napisali algoritem, ga boste najverjetneje želeli shraniti, da bi ga lahko uporabili v prihodnosti. Windows PowerShell ima za ta namen skriptni mehanizem.

Bistvo tega mehanizma je naslednje: napišete nabor ukazov, ki jih potrebujete, in ga shranite kot skript - to je preprosta besedilna datoteka s končnico .PS1.

Če želite zagnati ta skript, ga preprosto zaženite v PowerShell. V tem primeru morate določiti celotno pot do datoteke skripta ali pa iti v imenik s skriptom in ga poklicati po imenu.

Pomembno!

Privzeto je izvajanje skriptov v sistemu Windows prepovedano! Če si želite ogledati pravilnik o izvajanju skripta, zaženite cmdlet Get-ExecutionPolicy. Posledično bo vrnil trenutni pravilnik, na primer:

  • Omejeno – izvajanje vseh skriptov je blokirano ( privzeta vrednost);
  • AllSigned – dovoljeno je izvajanje skript, ki imajo digitalni podpis;
  • RemoteSigned – dovoljeno je izvajanje lokalnih skript, vsi preneseni skripti morajo imeti digitalni podpis;
  • Neomejeno - dovoljeno je izvajanje poljubnih skriptov ( ni priporočljivo, ker ni varno!).

Če želite omogočiti izvajanje skriptov, morate uporabiti cmdlet Set-ExecutionPolicy z enim od zgornjih parametrov.

Če želite na primer omogočiti izvajanje lokalnih skriptov, zaženite naslednji ukaz in sprejmite spremembe s pritiskom na Y.

Set-ExecutionPolicy RemoteSigned

Parametre lahko posredujete skriptu, jih naredite obvezne ali nastavite privzeto vrednost.

Windows PowerShell nudi mehanizem za ustvarjanje lastnih funkcij, ki jih lahko, tako kot vgrajene cmdlete, uporabite v lupini PowerShell.

Če želite to narediti, morate določiti ključna beseda Funkcijo in nato v zavitih oklepajih () napišite algoritem za to funkcijo, tj. niz ukazov ( na primer nekaj pogosto uporabljenih postopkov: ustvarite uporabnika z določenimi pravicami, počistite določene imenike itd). Nato morate vse to shraniti v skript, vendar samo s končnico .psm1, saj bo ta datoteka že modul.

To še ni vse, to datoteko je treba postaviti v imenik, kjer PowerShell išče module. Obstaja več takih imenikov ( poseben imenik v uporabniškem profilu, imenik, kjer je nameščen PowerShell), si jih je mogoče ogledati v spremenljivkah okolja PowerShell. Če želite to narediti, zaženite naslednji ukaz

Get-ChildItem Env:\PSModulePath | Format-Tabela -Samodejna velikost

Ko modul, ki ste ga napisali, postavite v poseben imenik, lahko do svojih funkcij dostopate kot do običajnih ukazov PowerShell.

Integrirano skriptno okolje Windows PowerShell (ISE)

Da bi olajšali pisanje skriptov, funkcij in s tem modulov, je Microsoft razvil posebno grafični program Integrirano skriptno okolje(ISE) - Integrirano skriptno okolje. Delo v tem programu je zelo priročno in ima tudi zmogljivo funkcionalnost ( ustvarjanje več zavihkov s skripti, izhodno območje, vgrajen razhroščevalnik in več).

Zaženete ga lahko takole:

  • V sistemu Windows 7 - Start -> Vsi programi -> Pripomočki -> Windows PowerShell -> Windows PowerShell ISE;
  • V sistemu Windows 10 ali Windows Server 2016 - Start->Vsi programi -> Imenik Windows PowerShell ( v skupini W) -> Windows PowerShell ISE.

Opomba! ISE ne bo deloval naprej sistem Windows Strežnik nameščen v različici Server Core.

Posnetek zaslona integriranega skriptnega okolja PowerShell (ISE) v sistemu Windows Server 2016

To je vse zame, upam, da vam je bil material koristen! Vso srečo!

Zagon programa iz lupine PowerShell

Naloga zagona katere koli izvršljive datoteke (program ali pripomoček ukazne vrstice) iz lupine PowerShell se pojavlja precej pogosto. PowerShell za to ponuja več možnosti. na različne načine, ki jih bomo obravnavali kasneje v tem članku. Začnimo z najbolj preprostim ...

Neposredni zagon

Najlažji način za zagon izvršljive datoteke v lupini PowerShell je, da se pomaknete do imenika z datoteko in jo zaženete neposredno. Za primer vzemimo preprost program, ki prikaže pozdrav in ga izvedemo z ukazom:

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

Upoštevajte, da morate navesti relativno pot do izvršljive datoteke, tudi če ste v želenem imeniku. Izjema so datoteke iz imenikov, navedenih v spremenljivka okolja(pot). Na primer, različne vgrajene programe in pripomočke (beležnica, calc, ping itd.), ki se nahajajo v imeniku Windows\System32, je mogoče zagnati brez podajanja poti.

Operater &

Če morate podati celotno pot do izvršljive datoteke, lahko uporabite operator & (klic operaterja). Omogoča vam izvajanje niza besedila, določenega v narekovajih, kot je ena ekipa. Na primer:

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

Ker operater & ne razčleni posredovanega ukaza, ne more interpretirati njegovih parametrov. Zato so tudi dodatni parametri\argumenti posredovani kot besedilo v narekovajih. Za primer vzemimo prejšnji program in ga nekoliko spremenimo, tako da sprejme želeno besedilo kot argument:

& ′C:\Programske datoteke\Hello.exe′ ′Pozdravljen, svet′

Če želite, lahko podate več argumentov, ločenih z vejicami:

& ′C:\Programske datoteke\Hello.exe′ ′Pozdravljeni,′, ′ svet′

Za udobje lahko ukaz in argumente postavite v spremenljivke:

$exe = ′C:\Programske datoteke\Hello.exe′
$arg1 = ′Pozdravljeni′
$arg2 = ′svet′
& $exe $arg1 $arg2

No, če je veliko argumentov, jih je mogoče združiti z naslednjo konstrukcijo:

$exe = ′C:\Programske datoteke\Hello.exe′
$allargs = @('Pozdravljeni,','svet')
& $exe $allargs

Invoke-Expression

Cmdlet Invoke-Expression deluje približno enako kot operator & – vzame besedilni niz in ga izvede kot ukaz. Na primer:

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

Ima pa eno veliko pomanjkljivost, in sicer nezmožnost dela s presledki. Naslednji ukaz bo na primer povzročil napako:

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

Zaradi te funkcije je uporaba ukaza cmdlet izjemno neprijetna. Čeprav se je po potrebi takšnim napakam mogoče izogniti z dodatnimi citati, na primer tako:

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

Start-Process

Zažene se cmdlet Start-Process določeno datoteko kot proces z uporabo metode Začetek.NET razred Proces. Na primer:

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

Privzeto se postopek izvaja ločeno okno, ki se ob koncu postopka zapre. To vedenje lahko spremenite s parametri, tako da se bo naslednji ukaz izvajal v trenutnem oknu:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -Počakaj

Start-Process omogoča tudi posredovanje dodatnih argumentov procesu:

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

Privzeto ukaz cmdlet ne vrne ničesar, vendar ga lahko s parametrom -PassThru prisilite, da vrne predmet procesa. Ta predmet je zelo priročno postaviti v spremenljivko:

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

iz katerega lahko nato izveste veliko koristnih stvari, kot je stanje:

$process.HasExited

$process.ExitTime

ali izvršilna koda:

$process.ExitCode

.MREŽA

Načeloma je razred .NET Process mogoče uporabiti neposredno, brez ukaza cmdlet Start-Process. Postopek lahko na primer začnete z ukazom:

::Start(′C:\Programske datoteke\Hello.exe′)

Ta metoda je precej neprijetna in okorna (po mojem mnenju), vendar nekoliko bolj prilagodljiva pri uporabi. Na primer, zaženimo naš program v trenutnem oknu, mu posredujemo argumente in prevzamemo rezultat izvedbe:

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

$process.StandatdOutput.ReadToEnd()

WMI

Z WMI lahko naredite skoraj vse, vključno z izvajanjem programa. Metoda je za to zelo primerna Ustvari WMI-razred Win32_Process. Ta metoda zažene proces na lokalnem ali oddaljenem računalniku prek RPC. Na primer za zagon programa lokalni računalnik lahko uporabite ta ukaz:

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

Za izvedbo na oddaljenem računalniku bo ukaz videti takole:

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

Lahko pa uporabite cmdlet Invoke-WmiMethod:

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

Ali z uporabo cmdleta Invoke-CimMethod:

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

WMI zažene proces v ločenem oknu in vrne objekt, ki vsebuje ID procesa (ProcessID) in rezultat izvedbe (ReturnValue). ReturnValue lahko sprejme naslednje vrednosti:

0 — Uspešen Completiom
2 -Dostop zavrnjen
3 — Nezadosten privilegij
8 — Neznana napaka
9 — Pot ni najdena
21 — Neveljaven parameter

Invoke-Command

Cmdlet Invoke-Command lahko izvaja ukaze v lokalnem ali oddaljenem računalniku z uporabo WinRM. Na primer, za zagon našega programa na lokalnem računalniku uporabimo ukaz:

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

Po potrebi lahko programu posredujete argumente:

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

Upoštevajte, da Invoke-Command ni ravno prijazen do presledkov, zato morate biti kreativni pri narekovajih, da se izognete napakam. Vendar se je takšnim težavam mogoče izogniti, na primer s kombiniranjem uporabe ukaza cmdlet z operatorjem &:

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

Invoke-Command se uporablja predvsem za daljinsko upravljanje, njegova glavna prednost pa je možnost hkratnega izvajanja na več računalnikih. Na primer:

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

Privzeto vrne cmdlet rezultat izvajanja programa in če ga zaženete v ozadju (parameter -AsJob), vrne objekt Job:

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

Invoke-Item

Cmdlet Invoke-Item je zasnovan za uporabo privzetega dejanja za datoteko. Tako lahko zaženete izvršljivo datoteko z ukazom:

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

Vendar je najbolj priročno uporabiti Invoke-Item za odpiranje določene vrste datoteke. Na primer, takole odpremo besedilno datoteko:

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

In to je vse besedilne datoteke v mapi:

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

CMD

No, za konec, še en način za zagon programa iz lupine PowerShell je uporaba lupine cmd. Metoda je precej »posredna«, a kljub temu deluje. Naslednji ukaz zažene nov primerek cmd in se izvede v njem navedeni program, zapusti cmd in vrne rezultat:

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

PoSh ponuja toliko načinov za zagon programa. In vsak od njih je dober za določene situacije.

Mimogrede, članek je bil napisan na podlagi PowerShell: Deep Dive and Best Practice. Priporočam branje, tam je še veliko zanimivega.

Obstaja več različnih načinov za zagon skripta, glavni so spodaj:

  1. Zaženite PowerShell in vanjo zaženite skript (vnesite pot do datoteke in ime datoteke, npr. tako: C:\Skripti\test.ps1 ali pa pojdite v mapo s skripti z ukazom cd C:\Skripti in jo zaženite z ukazom.\test.ps1) Lupino je mogoče najti in zagnati na več načinov. Eden od načinov je prek menija Start. Za Windows 7 - morate iti v "Vsi programi" - "Pripomočki" - "Windows PowerShell" in zagnati lupino "Windows PowerShell". Za Windows 10 - poiskati morate skupino s črko "W" in v njej boste našli "Windows PowerShell".
  2. Zaženite "Windows PowerShell ISE" je program - razvojno okolje, ki omogoča urejanje in razhroščevanje skriptov PowerShell, ki je tudi privzeto na voljo skupaj s samim PowerShell. Ko ga zaženete, morate samo klikniti gumb "Odpri" ali pojdite v meni Datoteka - Odpri in izberite potreben skript, nato pritisnite F5 ali gumb "Zaženi skript" Windows PowerShell ISE najdete na istem mestu kot PowerShell - v meniju Start.
  3. Zaženite standardno ukazno vrstico in vanjo zapiši:
    powershell -datoteka<имя_скрипта> (primer: powershell -file myscript.ps1)

Če še niste izvajali skriptov PowerShell, boste verjetno prejeli to sporočilo: Datoteke ni mogoče prenesti<имя_скрипта>, ker je izvajanje skripta za ta sistem prepovedano. Za več informacij vnesite "get-help about_signing". To je posledica dejstva, da morajo biti iz varnostnih razlogov in zaradi preprečevanja nenamernega izvajanja zlonamerne kode vsi skripti digitalno podpisani.

Kako dovoliti izvajanje nepodpisanega skripta PowerShell?

1. V lupini PowerShell, preden zaženete skript, zaženite ukaz, da omogočite izvajanje nepodpisanih skriptov za trenutno sejo lupine:

Postopek Set-ExecutionPolicy RemoteSigned -Scope

2. Ob zagonu iz standardne ukazne vrstice uporabite parameter -executionpolicy, tj. zaženite skript takole:

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

Obe metodi nastavita politiko samo za trenutno sejo, medtem ko varnostna politika za izvajanje skriptov PowerShell, zapisana v registru, ne bo spremenjena in bo ostala enaka. Če želite spremeniti varnostno politiko izvajanja skripta v »trajno«, uporabite to metodo:

3. Dovoli zagon za vedno: Zaženite PowerShell kot skrbnik, nato zaženite ukaz:

Set-ExecutionPolicy RemoteSigned

Opomba:Če je bil skript prenesen iz interneta, morate, da se izognete zahtevi za potrditev zagona, namesto RemoteSigned uporabiti Bypass - popolnoma onemogočiti vse zahteve in opozorila.

Kako zagnati skript PowerShell v ozadju?

Če želite to narediti, preprosto uporabite zagonski parameter -WindowStyle, ki ima lahko naslednje vrednosti: Normal, Minimized, Maximized in Hidden. Če želite torej zagnati nepodpisan skript v ozadju, morate zagnati ukaz:

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

Če želite, lahko dodate tudi -NonInteractive, tako da skript ne postavlja nobenih vprašanj. Tako se bo skript izvedel neopazno za uporabnika. Pri uporabi te metode bodite previdni.

Izvajanje skripta PowerShell s parametri

Dejanski zagon je treba izvesti, kot da bi se zagnali redni program ali bat datoteka s parametri. Če želite na primer zagnati skript s parametri iz ukazne vrstice, lahko napišete naslednji ukaz:

powershell -executionpolicy RemoteSigned -file<имя_скрипта>param1 param2 "drug besedilni parameter"

V samem skriptu lahko te parametre dobite takole:

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

V PowerShell ISE lahko zaženete skript s parametri na enak način z uporabo ukaznega podokna.

Kako zagnati skript PowerShell z bližnjico?

To nalogo je mogoče opraviti na dva načina:

  1. Ustvarite datoteko bat/cmd, v katero boste zapisali ukaz za zagon skripta (prebrali ste zgornje parametre)
  2. Ustvarite bližnjico do PowerShell, ki jo najdete v mapi c:\Windows\System32\WindowsPowerShell\v<версия>\ in v lastnostih bližnjice v polju "Predmet" dodajte potrebne parametre.

Tako, na primer, teči skript powershell Ko se uporabnik prijavi, lahko preprosto ustvarite bližnjico, kot je opisano v odstavku 2, in jo postavite v zagon. Prav tako vam bo ustvarjanje bližnjice z uporabo enega od zgornjih načinov omogočilo preprost zagon skripta kot skrbnik ali kateri koli drug uporabnik kot običajen program.

Skriptni jezik PowerShell je precej zmogljivo orodje za reševanje različnih problemov, vendar ga je mogoče uporabiti ne le za dobre, ampak tudi za slabe stvari, zato ga uporabljajte pametno ;)