Kaip atidaryti „PowerShell“, visi metodai. „Windows PowerShell“: kas yra ši programa

Patyrę „Windows 10“ operacinės sistemos vartotojai tikriausiai girdėjo apie „PowerShell“ komandų eilutės įrankį. Tai taip pat gali būti žinoma tiems, kurie turi patirties dirbant su „Windows 7“ ir „8.1“. Po daugelio metų naudojimo Windows komandų eilutės programa ir .bat failais laikas susipažinti su galingesniu įrankiu.

„PowerShell“ yra vertingas „Windows“ įrankių sąrašo papildymas, o dėl didelio masto kai kurie vartotojai gali atbaidyti. Ar tai scenarijų kalba, ar komandų apvalkalas? Nesijaudinkite: nepaisant didžiulių galimybių, bet kas gali įvaldyti PowerShell.

1 veiksmas: diegimas

Pirma, mums reikia pačios „PowerShell“ programos. Jei naudojate „Windows 10“, jau esate įdiegę „PowerShell 5. Windows 10 Anniversary Update“ naudojama 5.1 versija, tačiau pastebimo skirtumo nėra. „Windows 8“ ir „8.1“ naudoja „PowerShell 4“, kurio taip pat pakanka. „PowerShell“ įdiegimas sistemoje „Windows 7“ nesukels problemų, tačiau vis tiek reikia atlikti keletą papildomų veiksmų. Visų pirma, reikia papildomai įdiegti .Net Framework. Galite įdiegti „Windows Management Framework“, kuri apima „PowerShell“.

„PowerShell“ turi dvi sąsajas. Pažengę vartotojai gali pasirinkti visą grafinę sąsają, žinomą kaip integruota scenarijų aplinka (ISE). Pradedantiesiems geriausia naudoti „PowerShell“ konsolę, paprastą „Windows“ komandų eilutės stiliaus teksto sąsają ar net DOS 3.2.

Norėdami paleisti „PowerShell“ kaip administratorių sistemoje „Windows 10“, spustelėkite mygtuką Pradėti ir slinkite per programų sąrašą iki „Windows PowerShell“. „Windows 8.1“ sistemoje „Windows“ sistemos aplanke „System“ ieškokite „Windows PowerShell“. „Windows 7“ apvalkalas yra aplanke Priedai. Kaip įprastas vartotojas, „PowerShell“ gali būti paleistas lygiai taip pat, naudojant kairįjį pelės mygtuką, o ne dešinįjį.

Galite naudoti paiešką bet kurioje „Windows“ versijoje. Kad būtų lengviau naudoti, galite prisegti „PowerShell“ prie užduočių juostos.

2 veiksmas: senos „Windows“ komandos

„Windows“ komandų sintaksė „PowerShell“ veikia įprastu būdu. Pavyzdžiui, cd keičia aplankus, rež rodomas visų dabartiniame aplanke esančių failų ir aplankų sąrašas.

Priklausomai nuo to, kaip paleidžiate „PowerShell“ konsolę, galite pradėti nuo c:\Windows\system32 arba c :\Vartotojai\ . Ekrano kopijos pavyzdyje naudojama komanda cd..(su tarpu), kad vienu metu pakiltumėte vienu lygiu, tada paleiskite komandą rež kad būtų rodomas kataloge esančių failų ir aplankų sąrašas C:\.

3 veiksmas: įdiekite žinyno failus

Komandos patinka cd Ir rež nėra aktyvios „PowerShell“ komandos. Tai yra vadinamieji slapyvardžiai (slapyvardžiai) – tikrų PowerShell komandų pakaitalai. Pseudonimai yra patogūs tiems, kurie turi daug patirties dirbant su komandine eilute. Tačiau jie nepaliečia „PowerShell“ gelmių.

Norėdami pradėti naudoti „PowerShell“, įveskite padėti ir jums reikalinga komanda. Ekrano kopijoje rodoma komanda .

Komanda padėti sako, kad rež yra „PowerShell“ komandos slapyvardis Get-ChildItem. Jei rinksitės get-childitem V PS C:\>, pamatysite tą patį, kaip ir naudodami komandą rež.

Kaip nurodyta ekrano kopijos apačioje, „PowerShell“ žinyno failai neįdiegiami automatiškai. Norėdami juos gauti, paleiskite „PowerShell“ kaip administratorių ir įveskite atnaujinimas-pagalba. Žinyno failų įdiegimas užtruks keletą minučių, gali trūkti daugybės modulių – pavyzdžiui, šiuo atveju nebuvo įdiegta Help for NetWNV ir SecureBoot. Kai viskas bus paruošta, visa pagalbos sistema visada duos reikiamų patarimų.

Dabar įveskite komandą gauti pagalbos ir bet kuri jus dominanti komanda ("cmdlet" PowerShell kalba, rusiškai cmdlet), bus rodomas jos aprašymas. Pavyzdžiui, get-help get-childitem pateikia parinkčių sąrašą get-childitem. Taip pat galite rodyti įvairias galimas parinktis. Pavyzdžiui

get-help get-childitem -pavyzdžiai

pateikia septynis išsamius naudojimo pavyzdžius get-childitem. Komanda

get-help get-childitem -detaled

apima šiuos septynis pavyzdžius ir išsamų kiekvieno parametro paaiškinimą cmdlet get-childitem.

4 veiksmas: pagalbos dėl parinkčių gavimas

Ekrano kopijoje galbūt pastebėjote du sąrašus SINTAKSĖ Dėl get-childitem. Jei turite dvi skirtingas sintakses, galite naudoti du būdus paleisti cmdlet. Kaip sintaksę laikyti atskirai viena nuo kitos ir ką reiškia parametrai? Atsakymas paprastas, jei žinote gudrybę.

Norėdami gauti daugiau informacijos apie cmdlet parametrus get-childitem arba bet koks kitas naudojimo parametras - pilnas:

get-help get-childitem -pilnas

Čia pateikiamas sąrašas, ką galite padaryti su cmdlet ir kas nutiks. Pažiūrėkite į ekrano kopiją.

Peržiūrėję parametrų aprašymą, galite tai pastebėti get-childitem leidžia gauti objektą vaikas(pvz., poaplankio pavadinimas arba failo pavadinimas) nurodytoje vietoje, su tam tikrais simboliais arba be jų. Pavyzdžiui:

get-childItem "*.txt" -recurse

grąžina „*.txt“ failų sąrašą dabartiniame aplanke ir visuose poaplankiuose (dėl - pasikartojimas). kadangi

get-childitem „HKLM:\Software“

grąžina visų aukščiausio lygio registro raktų sąrašą HKEY_LOCAL_MACHINE\Software.

Jei kada nors bandėte patekti į registrą naudodami Windows komandų eilutę arba .bat failus, galėsite įvertinti šios prieigos parinkties funkcionalumą.

5 veiksmas: mokykitės vardų

Yra priežastis, kodėl iki šiol rodomi cmdlet atrodo panašiai: get-childitem, update-help, get-help naudokite tą patį veiksmažodžio ir daiktavardžio modelį. Šis susitarimas taikomas visoms „PowerShell“ cmdlet, kai veiksmažodis yra prieš vieną daiktavardį. Tai patiks tiems, kurie vienu metu kentėjo nuo komandų pavadinimų nenuoseklumo VB ir VBA.

Pažvelkite į dažniausiai pasitaikančius cmdlet:

nustatyti vietą: nustato dabartinę darbo vietą į konkrečią vietą

gauti turinį: gauti failo turinį

gauti daiktą: gauti failus ir aplankus

kopijuoti elementą: kopijuoja objektą iš vienos vietos į kitą

pašalinti daiktą: ištrina failus ir aplankus

: paleidžia procesus vietiniame arba nuotoliniame kompiuteryje

gauti paslaugą: paslaugos veikia vietiniame arba nuotoliniame kompiuteryje

invoke-webrequest: gauna turinį iš tinklalapio internete

Norėdami pamatyti, kaip veikia konkretus cmdlet, naudokite gauti pagalbos kaip ir tuo atveju

gauti pagalbos kopijavimo elementą - pilna

Remdamiesi žinyno aprašymu, galite suprasti, ko reikia cmdlet. Pavyzdžiui, jei norite nukopijuoti visus failus ir aplankus iš Dokumentai V c:\temp, naudoti

kopijuoti elementą c:\users\ \documents\* c:\temp

Įvedę šią komandą pamatysite keletą įdomių PowerShell aplinkos funkcijų. Pavyzdžiui, jei rašote kopija-i ir paspauskite mygtuką Tab, PowerShell užpildys Kopijuoti elementą. Jei cmdlet įvesta neteisingai ir „PowerShell“ negali jos atpažinti, pateikiamas išsamus aprašas, kas nutiko.

Išbandykite šią cmdlet:

invoke-webrequest askwoody.com

Gausite trumpą pavadinimų, vaizdų, nuorodų ir kito tinklalapio turinio sąrašą. Atkreipkite dėmesį į gauti pagalbosį sąrašą invoke-webrequest, kuris „grąžina formų, nuorodų, vaizdų ir kitų svarbių HTML elementų rinkinį“ – būtent tai, kas turėtų būti rodoma ekrane.

Kai kurios cmdlet padeda valdyti pačią „PowerShell“:

gauti-komanduoti: visų galimų cmdlet sąrašas

gauti-veiksmažodis: visų galimų veiksmažodžių sąrašas

aiškus šeimininkas: išvalykite pagrindinės programos ekraną

Skirtingi parametrai leidžia sumažinti komandas ir susiaurinti naudingų parinkčių spektrą. Pavyzdžiui, norėdami peržiūrėti visų cmdlet, veikiančių su „Windows“ paslaugomis, sąrašą, įveskite

get-command *-service

Bus rodomi visi galimi veiksmažodžiai su daiktavardžiu paslauga. Štai jų sąrašas:

Gaukite paslaugą

Nauja paslauga

Iš naujo paleiskite paslaugą

Tęsti paslaugą

Nustatyti paslaugą

startas-servisas

Sustabdyti paslaugą

Sustabdyti paslaugą

Galite derinti šias cmdlet su kitais.

6 veiksmas: vamzdžių naudojimas

Jei esate susipažinę su Windows komandų eilute arba paketiniais failais, žinote apie peradresavimą ir vamzdžius. Peradresavimas (simbolis >) ir vamzdžiai (simbolis |) paima veiksmo rezultatą ir prideda jį kitur. Pavyzdžiui, galite peradresuoti komandos rezultatą režį tekstinį failą arba perduoti komandos rezultatą pingį komandą rasti norėdami filtruoti įdomius rezultatus, pvz

dir > temp.txt

ping askwoody.com | rasti "paketai" > temp2.txt

Čia antroje komandoje rasti ieško stygos paketai, komanda paimta iš askwoody.com adreso ping ir sujungia visas atitinkančias eilutes į failą, vadinamą temp2.txt.

Pirmoji iš šių komandų gerai veikia „PowerShell“. Norėdami paleisti antrąją komandą, jums reikia kažko panašaus

ping askwoody.com | pasirinkti eilučių paketus | out-failas temp2.txt

Peradresavimo ir vamzdžių naudojimas labai išplečia „Windows“ komandų eilutės galimybes: užuot be galo slinkę ekranu žemyn, ieškodami teksto eilutės, galite filtruoti norimas „Windows“ komandas.

Powershell turi palaikymą vamzdis, ir tai neapsiriboja tekstu. „PowerShell“ leidžia perduoti visą objektą iš vienos cmdlet į kitą, kai objektas yra duomenų (vadinamų ypatybėmis) ir veiksmų (metodų), kurie gali naudoti tuos duomenis, derinys.

Sudėtinga dalis prasideda, kai objektai yra išrikiuoti. Vieno cmdlet pateikti objektai turi atitikti objektų tipą, kuriuos priima priimančioji cmdlet. Tekstas yra labai paprastas objektų tipas, todėl, jei dirbate su tekstu, objektų lygiavimas yra paprasta užduotis. Kiti objektai nėra tokie elementarūs.

Kaip tai suprasti? Naudokite cmdlet tapti nariu. Jei norite sužinoti, kokio tipo objektą tvarko cmdlet, paleiskite jį tapti nariu. Pavyzdžiui, jei bandote suprasti kompiuteryje veikiančius procesus ir susiaurinote parinktis iki cmdlet , štai kaip sužinoti cmdlet rezultatą:

gauti procesą | tapti nariu

Vykdant šią cmdlet pateikiamas ilgas ypatybių ir metodų sąrašas , bet pačioje sąrašo pradžioje galite matyti sukuriamo objekto tipą :

Tipo pavadinimas: System.Diagnostics.Process

Žemiau esančioje ekrano kopijoje taip pat rodomos savybės teisę get-process Rankenos, pavadinimas, NPM, PM, SI, VM Ir WS.

Jei norite manipuliuoti rezultatu norėdami dirbti su šia cmdlet (užuot rodyti ilgą aktyvių procesų sąrašą monitoriuje), turite rasti kitą komandą, kuri bus naudojama kaip įvestis Sistema.Diagnostika.Procesas. Dar kartą naudokite „PowerShell“, kad rastumėte tinkamą cmdlet:

get-command -Parametertype System.Diagnostics.Process

Ši cmdlet sukuria galimų apdoroti cmdlet sąrašą Sistema.Diagnostika.Procesas.

Yra žinoma, kad kai kurios cmdlet priima beveik bet kokius duomenis. Pagrindinis iš jų yra . Ši cmdlet per save perduoda kiekvieną vamzdžiu siunčiamą objektą po vieną ir taiko jam nurodytus atrankos kriterijus. Yra specialus žymeklis, vadinamas $_ , kuri leidžia naudoti kiekvieną vamzdžio elementą po vieną.

Tarkime, kad norite gauti visų kompiuteryje veikiančių procesų sąrašą pavadinimu „svchost“, tai yra, norite suderinti ypatybę vardas procesas svchost. Naudokite komandą:

gauti procesą | kur-objektas ($_.Name -eq "svchost")

Cmdlet žiūri į kiekvieną objektą Sistema.Diagnostika.Procesas, lygina .Vardasšis objektas su "svchost"; jei yra atitikmenų, jie rodomi monitoriuje. Pažiūrėkite į ekrano kopiją.

7 veiksmas: išanalizuokite naudingas „PowerShell“ komandas

Šiuo metu jau žinote pakankamai, kad galėtumėte sugadinti kompiuterį, todėl būkite atsargūs. Pažiūrėkime, pavyzdžiui, dažnai prašomas PowerShell komandas.

Šios komandos veikia tik „Windows 10“ ir tik tada, kai „PowerShell“ veikia kaip administratorius. Jie skirti iš naujo įdiegti iš anksto įdiegtoms „Windows 10“ programėlėms ir gali būti naudingi tiems, kurie iš pradžių pašalino šias programas, o vėliau nusprendė jas grąžinti. Komandos atrodo taip:

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

Jei paleisite šią komandą, nekreipkite dėmesio į raudonai pažymėtus įspėjimus, o komandą įvykdę iš naujo paleiskite kompiuterį; visos iš anksto įdiegtos „Windows 10“ programos atsiras savo vietose.

Štai kaip ši komanda veikia. Get-AppXPackage patikrina visus programos paketus vartotojo profilyje. Net jei pašalinsite programą, ji lieka naudotojo profilių sąraše.

Cmdlet Get-AppXPackage grąžina objektą Tipo pavadinimas Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, kuriame yra visiškai apibrėžtas programos paketo pavadinimas ir atitinkamo XML aprašo failo vieta. Jei paleisite cmdlet get-appxpackage, pamatysite ilgą programų paketų sąrašą. Ekrano kopijoje rodomas „Xbox“ programos aprašymas.

Cmdlet Kiekvienam ciklų per kiekvieną objektą AppXPackage, siunčiant juos į cmdlet Add-AppxPackage. Pagal gauti pagalbos Dėl Add-AppxPackage, yra du raktiniai jungikliai:

  • Perjungti -Registruotis naudojamas esamiems programų paketų diegimams registruoti, galite nustatyti parinktis Išjungti plėtros režimą Ir Registruotis
  • Perjungti -Išjungti kūrimo režimą liepia Windows iš naujo užregistruoti esamą programos paketą, kuris buvo išaktyvintas, išregistruotas arba sugadintas.

eilutė" $($_.InstallLocation)\AppXManifest.x ml“ aprašo, kur yra failas manifest.xml. Jei pažvelgsite į failus AppXManifest.xml, pamatysite sudėtingą programų ID, vykdomųjų failų sąrašą ir daugybę vaizdinių, susijusių su programa.

Po perkrovimo visi pridėti programų paketai atsisiunčiami ir įdiegiami iš „Windows“ parduotuvės.

Nuo „Windows 7“ ir „Server 2008“ išleidimo praėjo daugiau nei vieneri metai.

Programuotojai, sistemos administratoriai ir pažengę vartotojai rado daug būdų, kaip naudoti mėlyną komandų eilutę primenantį langą.

Pradedantieji vartotojai dažniausiai net nežino, kas yra „PowerShell“ (PS).

Tačiau „PowerShell“ scenarijai leidžia automatizuoti beveik 100% operacinėje sistemoje atliekamų veiksmų ir scenarijų per komandinę eilutę ir grafinę sąsają.

Susipažinkime su pagrindinėmis šios programos savybėmis, daugiau dėmesio skirdami scenarijų (mikroprogramų) kūrimo ir paleidimo funkcijoms.

Yra daugybė programos vadovų ir dokumentų, įskaitant rusų kalba. Straipsnio tikslas– suteikti vartotojui konceptualių žinių, pradėti veikti, o ar verta susipažinti su interpretatoriumi ir scenarijų vykdymu jame iš arčiau, kiekvienas spręs pats.

Kas yra „Windows PowerShell“?

PowerShell– Vertėjas, pagrįstas .NET Framework, turintis savo scenarijų kalbą.

Pirmasis reiškia, kad jis veikia tekstiniu režimu: įvedate, paleidžiate komandą ir ekrane matote jos vykdymo rezultatą.

Kaip buvo MS-DOS ir senesnėse UNIX versijose.

Antrasis labai supaprastina, pagreitina ir automatizuoja sistemų, taikomųjų programų, procesų ir susijusių paslaugų administravimą, priežiūrą ir su jais susijusias paslaugas, kurias atlieka administratoriai ir paprasti vartotojai.

Palyginti su kitais vertėjais, PS skiriasi:

  • integracija su. - leidžia kurti galingus scenarijus, įterpiant į juos programos kodą;
  • visi grąžinami duomenys yra objektai, o ne teksto / eilutės tipo (eilutės) duomenys, o tai reiškia jų perkėlimą į kitus scenarijus ir bet kokį apdorojimą.

PowerShell 2 versija turi šias savybes, kai kuriuos iš jų apsvarstysime išsamiau:

  • Galimybė pavaizduoti komandas kaip cmdlet– jie paleidžiami interpretatoriaus viduje, kitu atveju komanda vykdoma atskiru procesu.
  • Naudojant vamzdynus- skirti perkelti duomenis iš vienos komandos į kitą, išlaikant jų struktūrą ir tipą.
  • Integruotas kelių gijų duomenų perdavimas per tinklą, nustatant prioritetą ir atnaujinant ryšį.
  • Padėties ir vardinių parametrų palaikymas.
  • foninis darbas– asinchroninis komandų iškvietimas ir scenarijų paleidimas nuotoliniuose kompiuteriuose.
  • Ribotų seansų su nuotoliniais klientais nustatymas ir paleisti juose scenarijus.
  • Moduliai- būdas organizuoti scenarijus, kai jie tampa savarankiški ir veikia savo konteineryje, nedarant įtakos modulio aplinkai.
  • Klaidų tvarkyklės buvimas.
  • Grafinė kalbos aplinka: Sintaksė, derinimo priemonė, paryškinimas, automatinis komandų užbaigimas su Unicode palaikymu ir žymėmis.
  • Pertraukos taškų įtraukimas į eilutes, komandos, operacijos ir kintamieji scenarijui derinti.
  • Blokuoti ir įtraukti komentarus.
  • Kai kurių cmdlet slapyvardžių kūrimo palaikymas, kurios vykdymo metu konvertuojamos į įprastas komandas.
  • Kurti ribotas sesijas, kur galite vykdyti griežtai nurodytą komandų sąrašą ir dar daugiau.

„PowerShell“ šaltinio kodas tapo prieinamas visiems: bet kuris bendruomenės narys gali laisvai kurti savo plėtinius, kad padidintų komandų eilutės vertėjo funkcionalumą.

Galite pradėti įsisavinti integruotą scenarijų kalbą be programavimo įgūdžių.

Mažai tikėtina, kad bus įmanoma sukurti sudėtingą scenarijų, tačiau beveik visi galės atlikti primityvių veiksmų sekas.

Nors, neturint žinių apie pagrindines PowerShell sąvokas, mažai tikėtina, kad komandų interpretatoriaus lange kas nors bus padaryta. Pradėkime nuo jų.

cmdlet

cmdlet- originalios PS komandos, už kurių slepiasi įvairios funkcijos. Vertiklyje įmontuotos komandos įgyvendinamos pagal „veiksmažodžio-daiktavardio“ principą, pavyzdžiui, Get-Process (procesų sąrašo gavimas). Šis sprendimas leidžia suprasti komandos esmę jau iš jos pavadinimo (anglų kalba).

Kai kurios cmdlet palaiko duomenų ir informacijos masyvų priėmimą / perdavimą, išsaugant jų struktūrą ir tipą. Tai veikia dujotiekio principu (tai bus aptarta kitame skyriuje). Kad ir kaip būtų, cmdlet paleidžia ir apdoroja objektus griežta tvarka.

Norint įdiegti cmdlet, gali būti naudojamos visos palaikomos .NET API, sukurtos bet kuria .NET kalba.

Taigi vartotojui suteikiama prieiga prie konkrečių programos funkcijų.

Cmdlet gali pasiekti reikiamą informaciją tiesiogiai arba per unikalius kelius (disko raides ir katalogų kelius).

Naudodami cmdlet galite dirbti su failų sistemos ir sertifikatų saugyklos objektais, įdiegtomis programomis ir paslaugomis.

Konvejeris

Kuriant ne itin primityvius scenarijus ar atliekant kokias nors operacijas su scenarijaus rezultatu gautais duomenimis, kartais tenka atlikti ir kai kuriuos veiksmus.

Tam yra konvejeris. Kaip ir UNIX, jis sujungia komandas, perduodamas vienos cmdlet išvestį į kitos įvestį, nepakeistą, išsaugodamas jos tipą.

Tam nereikia jokio konteinerio ar informacijos analizavimo po ženklą.

Perduodama informacija taip pat gali apimti funkciją. Atlikus kombinuotų komandų darbą, naudojant teksto formatavimą iškviečiama informacijos konvertavimo į tekstinę formą (duomenų konvertavimo į eilutes) funkcija.

Scenarijai

Nepaisant to, kad apvalkalas leidžia automatizuoti daugybę veiksmų, komandas reikia įvesti rankiniu būdu, o tai nėra labai patogu.

Ypač kai tas pačias operacijas reikėtų atlikti nuolat.

Taip, ir be žmogiškojo faktoriaus negali išsiversti: rašybos klaidos, klaidos, netyčia palieti klavišai rašant kodo eilutes, taisant ar įvedant naują eilutę reikalauja draugiškesnio požiūrio į vartotoją.

Norint atlikti monotoniškas veiksmų grandines PS, yra įdiegti scenarijai - tekstiniai failai su komandų seka, suprantama vertėjui viduje.

„PowerShell“ scenarijai dar labiau supaprastins ir automatizuos darbą kompiuteriu ir jo priežiūrą, ypač jei scenarijuje yra šakų, sąlygų, loginių operacijų ir kilpų.

Bet čia „ne viskas, kas blizga, yra auksas“: parašyti savo scenarijų ar įkelti jau paruoštą (nors šiek tiek priderinant jį prie jūsų tikslų) nepavyks taip lengvai.

Jei įMicrosoftbuvo leista kad ir kiek bėdų sukūrė scenarijusPowerShell , kurį parašė sukčiai ir piktadariai savanaudiškais ar chuliganiškais tikslais.

Jei norite paleisti „Windows PS“, turite perduoti jos paleidimo kontrolę.

Jei jis nebus priimtas ir scenarijus turėtų būti vykdomas, turėsite pakeisti objektų, atsakingų už makrokomandų saugumą, konfigūraciją.

Prieš naudodami scenarijus

Naudojant VBS, yra daug problemų, kurių PowerShell kūrėjai visiškai atsikratė, jei scenarijaus sauga nesumažėja, kad būtų patenkinti vartotojo scenarijų užklausos arba išspręstos problemos, susijusios su operacinės sistemos saugumo lygiu.

Atsisiųsto scenarijaus paleidimas vartotojo kompiuteryje yra paprastas ir efektyvus būdas platinti kenkėjišką programinę įrangą arba pavogti įsibrovėlių asmeninę informaciją.

Viskas nutinka dėl elementaraus scenarijaus failo (ps1) turinio nežinojimo ir noras greitai išspręsti savo problemas kitų darbo sąskaita. Objektai, valdantys scenarijaus vykdymo saugos lygį, sukuria aplinką, kurioje scenarijaus paleisti negalima.

Tyčinis makrokomandų paleidimas įvyksta pakeitus saugos lygį, jei vartotojas duoda sutikimą, suvokdamas, ką daro, ir tiksliai žinodamas, kas yra *.ps1 faile.

Dėl saugumo konfigūracijos nepatogumų žmonėms, kuriems reikia įdiegti ir paleisti savo scenarijus, galima pakeisti konfigūraciją.

Čia galite sumažinti apsaugą iki minimumo ir pagrįstai manevruoti tarp galimybės atidaryti skyles įsiskverbimui ir patogumo dirbant su „PowerShell“.

Korpusas turi tris saugumo lygius:

  • failų su plėtiniu ps1 sistema neidentifikuoja kaip vykdomąjį failą ir yra pažymėtas kaip nežinomas arba tekstas (dukart spustelėkite, kad atidarytumėte numatytąjį teksto rengyklę, naudojamą kompiuteryje);
  • apvalkalas leidžia vykdyti scenarijus nurodęs visą kelią iki jų, scenarijaus failų dabartiniame kataloge neieškoma, todėl neįmanoma vykdyti makrokomandų, esančių dabartiniame kataloge;
  • paleisti integruotą scenarijaus vykdymo politiką, kuri yra atsakinga už reikalingo įtraukimą į leidžiamų scenarijų sąrašą.

Net negalvokite apie konfigūracijos keitimą, nuleisdamas jį bent iki antrojo lygio, nesusipažinus su pagrindaisPowerShell, kol pradėsite bent paviršutiniškai suprasti * turinį.ps1.

Taip pat yra vykdymo politikos koncepcija, kuri skirta užkirsti kelią atsitiktiniam scenarijų vykdymui. Yra net penki paleidimo politikos nustatymai:

  • ribotas -įdiegta pagal nutylėjimą, vykdomi tik Microsoft pasirašyti scenarijai, leidžiantys gauti informaciją apie kompiuterio aparatinę ir programinę įrangą;
  • pasirašė ištrintus failus– visos makrokomandos gali būti vykdomos, tačiau paštu siunčiamos bylos turi būti pasirašytos;
  • skaitmeniniu parašu iš patikimo šaltinio– vykdomi visi pasirašyti scenarijai;
  • neribotas- paleisti bet kokias makrokomandas;
  • Apeiti- yra skirti programišiams, kurie kuria savo apsaugos sistemą, o nenaudoja tos, kuri yra apvalkale.

Dabartinę paleisties politikos būseną galite patikrinti naudodami komandą „Get-ExecutionPolicy“.Kad ir kokia būtų saugos politika, vartotojas negalės paleisti scenarijaus, kuriame yra komandų, kurioms vykdyti jis neturi pakankamai teisių.

Veikia PowerShell

Laikas pereiti nuo teorijos prie praktikos. Taigi, norėdami vykdyti scenarijus, turite gauti skaitmeninį parašą arba (antrasis variantas yra paprastesnis).

Yra keletas būdų, kaip iškelti „PowerShell“ langą.

Jis pateikiamas dviem formomis:

  • klasikinė konsolė;

  • PowerShell ISE – prideda palaikymą skirtukams, sintaksei, konteksto pagalbai, kontekstiniams ir pagrindiniams meniu, o tai labai palengvina darbą interpretatoriuje.

Pradėti

Lengviausias būdas paskambinti PS yra per Start.

  1. Atidaromas meniu(„Windows 7“ spustelėkite „Visos programos“).
  2. Eikite į „Windows PowerShell“ katalogą ir spustelėkite norimą piktogramą.

Ryžiai. 4 – Paleiskite PS per Start

Taip pat galite skambinti PS naudodami integruota paieškos sistema.

komandų vertėjas

Kas mėgsta nestandartinius ir greito paleidimo metodus, naudokite langą Vykdyti. Jis atidaromas to paties pavadinimo mygtuku Pradėti ir klavišų kombinacija Win + R.

Dialogo lange parašykite "galios apvalkalas" ir paspauskite "Enter".

Win + X

„Windows 10 PS“ galima iškviesti iš „WinX“ meniu. Faktas yra tas, kad pagal numatytuosius nustatymus spustelėjus komandą "Komandinė eilutė" atidaryti CMD. Jį galima pakeisti PowerShell.

Atidarykite užduočių juostos „Ypatybės“, skirtuke „Navigacija“, pažymėkite langelį šalia vienintelės parinkties ir išsaugokite nustatymus.

Galite iškviesti PowerShell per komandinę eilutę, parašydami joje "powershell" arba paleisdami vykdomąjį failą kelyje: %WINDIR%\ System32\ WindowsPowerShell\v1.0 32 bitų sistemoms ir %WINDIR%\ syswow64\„WindowsPowerShell\v1.0“, skirta bet kurio leidimo 64 bitų „Windows“.

Ryžiai. 8 – PS paleidimas iš katalogo, kuriame saugomas jo vykdomasis failas

Saugos politikos nustatymas

Liko šiek tiek– leisti „PowerShell“ vykdyti scenarijus. Rašome komandą „Set-ExecutionPolicy RemoteSigned“ ir spaudžiame „Y“.

Tai viskas. Dabar galite paleisti bet kokius cmdlet ir scenarijus. Pabandykime, pavyzdžiui, parodyti aktyvių procesų sąrašą, vykdydami „Get-Process“ .

Vykdomi scenarijai

Galite kurti scenarijus bet kuriame (geriau likti ant Win ar panašių, su sintaksės palaikymu ar patvirtinimu) arba PowerShell ISE programoje.

Pastarasis suteikia patogią prieigą prie cmdlet, galimybę paleisti, derinti ir išsaugoti scenarijus.

Tarkime, kad parašėte pirmąjį scenarijų (tai gaunamas vykdomų procesų sąrašas), išsaugojote jį meniu Failas ir turite jį paleisti. Tai atliekama trimis būdais:

1 Parašykite visą scenarijaus kelią PowerShell (arba ISE);

Ryžiai. 13 – Scenarijų paleidimas iš PowerShell ISE lango

Svarbu kad failo kelyje nebūtų tarpų!

PowerShell– galingas įrankis, leidžiantis supaprastinti įprastines operacijas naudojant „Server 2008“ ir naujesnes versijas. Svarbus PowerShell pranašumas - scenarijai ir buvimas programinės įrangos versijos su PS ISE GUI. Jame esančios komandos pateikiamos cmdlet forma, kuri leis susipažinti su apvalkalu ir suprasti kiekvienos komandos reikšmę. Saugos politika neleis pradedančiajam sugadinti savo kompiuterio iš nežinomų šaltinių gauti scenarijai ir derinimo režimas, kuriant savo cmdlet, funkcijas ir klaidų valdymo mechanizmą atveria neribotas galimybes programuotojams ir administratoriams.

Yra keli skirtingi scenarijaus paleidimo būdai, toliau pateikiami pagrindiniai:

  1. Paleiskite „PowerShell Shell“. ir paleiskite jame esantį scenarijų (įveskite kelią į failą ir failo pavadinimą, pavyzdžiui, taip: C:\Scripts\test.ps1 arba eikite į scenarijaus aplanką su komanda cd C:\Scripts ir paleiskite jį su komanda.\test.ps1) Apvalkalą galima rasti ir paleisti įvairiais būdais. Vienas iš būdų yra meniu Pradėti. „Windows 7“ - turite eiti į „Visos programos“ - „Priedai“ - „Windows PowerShell“ ir paleisti „Windows PowerShell“ apvalkalą. „Windows 10“ - reikia rasti grupę su raide „W“ ir joje rasite „Windows PowerShell“.
  2. Paleiskite „Windows PowerShell ISE“- tai programa - kūrimo aplinka, leidžianti redaguoti ir derinti PowerShell scenarijus, kurie taip pat yra pagal numatytuosius nustatymus kartu su pačiu PowerShell. Ją paleidus tereikia paspausti mygtuką „Atidaryti“ arba eiti į meniu Failas – Atidaryti ir pasirinkti norimą scenarijų, tada paspausti F5 arba mygtuką „Vykdyti scenarijų“. Windows PowerShell ISE rasite ten pat, kur PowerShell apvalkalas - meniu Pradėti.
  3. Vykdykite standartinę komandų eilutę ir įrašykite jame:
    powershell failas<имя_скрипта> (pavyzdys: powershell -failas myscript.ps1)

Jei anksčiau nepaleidote PowerShell scenarijų, greičiausiai gausite pranešimą: Nepavyksta įkelti failo<имя_скрипта>nes scenarijaus vykdymas šioje sistemoje neleidžiamas. Norėdami gauti daugiau informacijos, įveskite „get-help about_signing“. Taip yra dėl to, kad saugumo sumetimais ir siekiant išvengti atsitiktinio kenkėjiško kodo vykdymo, visi scenarijai turi būti pasirašyti skaitmeniniu būdu.

Kaip leisti vykdyti nepasirašytą „PowerShell“ scenarijų?

1. „PowerShell“., prieš paleisdami scenarijų, paleiskite komandą, kuri leidžia vykdyti nepasirašytus scenarijus dabartinei apvalkalo seansui:

Set-ExecutionPolicy RemoteSigned -Apimties procesas

2. Paleidimas iš standartinės komandinės eilutės naudokite parinktį -executionpolicy, t.y. paleiskite scenarijų taip:

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

Abu metodai nustato politiką tik dabartinei sesijai, o registre nurodyta PowerShell scenarijaus vykdymo saugos politika nebus pakeista ir išliks tokia pati. Jei norite pakeisti scenarijaus vykdymo saugos politiką į nuolatinę, naudokite šį metodą:

3. Leisti paleisti visam laikui: paleiskite „PowerShell“ kaip „Administratorius“, tada paleiskite komandą:

Set-ExecutionPolicy RemoteSigned

Pastaba: Jei scenarijus buvo atsisiųstas iš interneto, tada, kad išvengtumėte prašymo patvirtinti paleidimą, vietoj RemoteSigned turite naudoti apeiti - visiškai išjungti visas užklausas ir įspėjimus.

Kaip paleisti PowerShell scenarijų fone?

Norėdami tai padaryti, tiesiog naudokite paleidimo parametrą -WindowStyle, kuris gali turėti šias reikšmes: Normal, Minimized, Maximized ir Hidden. Taigi, norėdami paleisti nepasirašytą scenarijų fone, turite paleisti komandą:

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

Jei norite, taip pat galite pridėti -NonInteractive, kad scenarijus nekeltų klausimų. Taigi scenarijus vartotojui bus vykdomas nepastebimai. Būkite atsargūs naudodami šį metodą.

PowerShell scenarijaus su parametrais vykdymas

Tiesą sakant, paleidimas turėtų būti atliekamas taip, tarsi paleistumėte įprastą programą arba šikšnosparnio failą su parametrais. Pavyzdžiui, norėdami paleisti scenarijų su parametrais iš komandinės eilutės, galite parašyti šią komandą:

powershell -executionpolicy RemoteSigned -failas<имя_скрипта>param1 param2 "kitas teksto parametras"

Pačiame scenarijuje galite gauti šiuos parametrus taip:

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

PowerShell ISE galite paleisti scenarijų su parametrais tokiu pačiu būdu, naudodami komandų sritį.

Kaip paleisti PowerShell scenarijų naudojant nuorodą?

Yra du būdai, kaip atlikti šią užduotį:

  1. Sukurkite bat / cmd failą, kuriame užregistruotumėte komandą paleisti scenarijų (perskaitėte aukščiau nurodytus parametrus)
  2. Sukurkite nuorodą į PowerShell, kurią rasite c:\Windows\System32\WindowsPowerShell\v<версия>\ ir nuorodos ypatybėse lauke „Objektas“ pridėkite reikiamus parametrus.

Pavyzdžiui, norėdami paleisti powershell scenarijų, kai vartotojas prisijungia, galite tiesiog sukurti nuorodą, kaip aprašyta 2-oje pastraipoje, ir įdėti ją į automatinį įkėlimą. Be to, sukūrę nuorodą vienu iš aukščiau pateiktų metodų, scenarijų bus lengva paleisti kaip administratoriui arba bet kuriam kitam vartotojui kaip įprastą programą.

PowerShell skriptų kalba yra gana galingas įrankis įvairioms problemoms spręsti, tačiau ją galima naudoti ne tik geriems dalykams, bet ir žalai, todėl naudokite ją protingai;)

„PowerShell“ programa yra alternatyvi komandų eilutė su daugybe funkcijų. Daugelis kompiuterių savininkų, gerai išmanančių sistemos procesus, domisi galimybėmis jį naudoti „Windows 10“ ir ankstesnėse šios programinės įrangos versijose, kad galėtų patys pakeisti konkrečius procesus ir kompiuterio nustatymus.

Naudojant PowerShell programą nėra nieko sudėtingo. Tiesiog vykdykite visas šiame straipsnyje pateiktas instrukcijas ir viskas bus gerai.

Jei nesate tokių temų ekspertas, tik pradedate studijuoti komandų eilutes ir jose atliekamus veiksmus, jums bus naudinga sužinoti atsakymus į pagrindinius klausimus apie naudojimąsi tokia programa. Pavyzdžiui, kaip paleisti Windows PowerShell ISE Windows 10 ir rašyti, dirbti su scenarijais.

Kaip atidaryti „PowerShell“?

Tai galima padaryti keliais iš šių būdų:

  • - programą rasite bendrame komponentų sąraše po raide W.
  • Naudodami paiešką užduočių juostoje - atidarykite ją ir įveskite žodį PowerShell, kad galėtumėte ieškoti.
  • Naudodami meniu Vykdyti - paleiskite jį per Win + R derinį ir parašykite programos pavadinimą, po kurio jis bus rastas sistemoje.
  • „Commander“ nustatykite „PowerShell“ veiksmą, tačiau turėtumėte žinoti, kad su programa dirbsite per jau paleistą eilutę, o ne atskirame lange.
  • „Windows“ nustatymuose pasirinkite užduočių juostą ir meniu Pradėti ypatybės. Skirtuke „Navigacija“ pažymėkite langelį „Pakeisti komandų eilutę PowerShell apvalkalu ...“. Dabar galite įjungti naudingumą naudodami Win + X derinį.

Kaip rašyti ir paleisti scenarijus?

Kaip sukurti „PowerShell“ scenarijų ir jį paleisti? Tai galima padaryti tiesiog užrašų knygelėje – naudodamiesi ja naujame dokumente nurodykite reikalingas komandas. Tada išsaugokite, bet pakeiskite formatą į .ps1 – tokį plėtinį turi šios sistemos priemonės failai.

Pačioje programoje scenarijus galite rašyti taip:

  • Paleiskite tai.
  • Spustelėkite „Sukurti“.
  • Arba spustelėkite „Failas“ ir pasirodžiusiame sąraše pasirinkite „Naujas“.
  • Parašykite visas komandas, kurias reikia vykdyti, išsaugokite failą.

Scenarijus vis tiek galima rašyti ir redaguoti naudojant FAR Manager, tačiau jie negali būti tiesiogiai naudojami tokioje programoje, nes tokio tipo failus ji rodo per standartinę cmd eilutę. Tačiau kiti veiksmai atliekami taip pat, kaip ir „gimtojoje“ programoje.

Galite paleisti scenarijų taip:

  1. Prisijunkite prie „PowerShell“ kaip administratorius.
  2. Naudodami cd komandas nurodykite reikiamo failo vietą. Pavyzdžiui, e: cd\ cd work .\ failo pavadinimas. Ps1 arba e: \work\ filename.ps1
  3. Šiuo atveju e: yra standžiojo disko, kuriame yra failas, pavadinimas.
  4. Paspausk Enter.

Pirmą kartą paleidus komandą programa tikrai parodys jums pranešimą su tekstu "Neįmanoma įkelti failo ___ .Ps1, nes šioje sistemoje draudžiama vykdyti scenarijų...". Faktas yra tas, kad kūrėjų dėka „Windows“ yra aprūpinta apsauga nuo trukdžių, todėl pagal nutylėjimą nė vienas iš vartotojų neturi prieigos atlikti tokius veiksmus. Tačiau šį apribojimą galima lengvai apeiti.

Kaip? Tekstas, kuris rodomas su klaida, rekomenduos įvesti komandą get-help about_signing, kad gautumėte daugiau informacijos. Galite vadovautis šiomis instrukcijomis arba naudoti derinį Set-ExecutionPolicy remotesigned – jį įvedus būtinas patvirtinimas, ir apribojimas bus panaikintas.

Kiti vartotojų klausimai

Daugelis žmonių turi klausimą, kaip sužinoti PowerShell versiją? Norėdami tai padaryti, atlikite šiuos veiksmus:

  1. Įveskite $PSVersionTable.
  2. Jei tai nieko neduoda, vadinasi, turite 1.0 versiją – jai yra komanda $host.version.
  3. Priešingu atveju pasirodys išsami informacija apie tai, kuri programos versija įdiegta kompiuteryje.

1. Scenarijaus rašymas

„PowerShell“ scenarijus (nesvarbu, kokia versija) yra tekstinis failas su plėtiniu *.ps1.

Štai paprasto „Power Shell“ scenarijaus (failo systemInfo.ps1) pavyzdys:

# Nuskaityti WMI objektą operacinei sistemai

Get-WmiObject Win32_OperatingSystem

Šį failą galima sukurti ir redaguoti, pavyzdžiui, FAR tvarkyklėje.

pastabakad FAR Manager, nors ir gali dirbti Power Shell konsolėje, bet vykdo scenarijus iš po savęs įprastos Windows konsolės aplinkoje. cmd . Tai reiškia, kad „FAR Manager“ galima naudoti tik „PowerShell“ scenarijus kurti ir redaguoti, bet ne paleisti. Tačiau prieš nusivildami perskaitykite 3 punktą.

2. Paleiskite scenarijų

Scenarijus turi būti paleistas iš Power Shell konsolės, o ne iš įprastos Windows konsolės. „Power Shell“ konsolėje turite eiti į katalogą, kuriame yra scenarijus (naudodami komandas cd ), tada paleiskite patį scenarijų, prieš jį būtinai nurodykite simbolius".\" . Pavyzdžiui, turime kelią į scenarijaus failą d:\work\systemInfo.ps1 . Tada paleidimo komandos atrodys taip:

cd\

CD darbas

.\systemInfo.ps1

arba taip (tiesiog nurodykite visą scenarijaus kelią):

d:\work\systemInfo.ps1

Greičiausiai, kai paleisite scenarijų, pasirodys ši klaida:

Nepavyko įkelti failo D:\work\systemInfo.ps1, nes šioje sistemoje neleidžiamas scenarijus. Norėdami gauti daugiau informacijos, įveskite „get-help about_signing“.

eilutė: 1 simbolis: 18

Kategorijos informacija: nenurodyta: (:) , PSSecurityException

FullyQualifiedErrorId: RuntimeException

Klaida atsiranda dėl to, kad pagal numatytuosius nustatymus „Power Shell“ yra įjungta maksimali saugos politika, leidžianti vykdyti „PowerShell“ komandas komandų eilutėje, tačiau neleidžiama vykdyti scenarijaus su „PowerShell“ komandomis toje pačioje komandinėje eilutėje. .

Norėdami įgalinti PowerShell scenarijų vykdymą, turite sukurti *.bat failą, pavyzdžiui, enableScript.bat su tokiu turiniu:

powershell – komandų rinkinys – vykdymo politika nuotoliniu būdu pasirašyta

Šis *.bat failas gali būti vykdomas bet kurioje konsolėje: net PowerShell, net ir įprastoje cmd . Įvykdžius šį failą, PowerShell scenarijai pradės veikti PowerShell konsolėje.

3. PowerShell scenarijaus paleidimas iš įprastos Windows cmd pulto

Taip pat galite paleisti „PowerShell“ scenarijų iš įprastos „Windows“ konsolės. Norėdami tai padaryti, galite naudoti komandą:

Powershell – Failas ./systemInfo.ps1

Taigi, galite vykdyti scenarijus tiesiai iš FAR Manager, ir jie veiks.

Tačiau čia yra nedidelis subtilumas. Parametras- Failas šaudo tik vietiniuose keliuose, net jei kelias yra santykinis"./". Tai yra, jei *.ps1 - failas yra vietiniame diske Laidas: , tada šis skambutis veiks. Bet jei bandysite vykdyti scenarijų, esantį domeno išteklyje, scenarijus nebus rastas. Galbūt tai bus ištaisyta būsimose „PowerShell“ versijose.