Datoteka - politika izvršavanja skripte powershell. Što su JavaScript skripte i kako ih omogućiti u pregledniku? Powershell nije digitalno potpisan

Pozdrav svima, danas vam želim reći kako pokrenuti PowerShell skriptu u sustavu Windows. Zamislite situaciju: napisali ste skriptu koja uvelike pojednostavljuje prikaz informacija na Active Directory, otvorite Powershell snap-in, unesete put do svoje skripte, pritisnete enter i dobijete pogrešku.

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.

Pogledajmo kako to riješiti.

PowerShell ima niz načina izvršavanja koji određuju koju vrstu koda je dopušteno izvoditi. Sve to kontrolira ključ registra koji se nalazi u HKLM-u. Postoje 4 različita načina izvršenja:

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

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

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

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

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

Dopusti pokretanje PowerShell skripti

Da biste pokrenuli skripte koje sami izradite, morate dopustiti pokretanje nepouzdanih skripti pomoću naredbe Set-ExecutionPolicy daljinski potpisan i potvrda (Pažnja!!! Da biste pokrenuli ovu naredbu, morate pokrenuti PowerShell s administratorskim pravima). Nakon toga možete ponovo pokrenuti skriptu.

Kada se to od vas zatraži, pritisnite Y da biste dopustili izvršavanje skripte. Nakon ovih manipulacija, moći ćete pokrenuti svoju skriptu.

PowerShell je alternativni naredbeni redak s velikom funkcionalnošću. Mnogi vlasnici računala koji dobro poznaju procesi sustava, zainteresirani su za mogućnosti korištenja na Windows 10 i prethodne verzije ovaj softver za promjenu određenih procesa i postavki osobnog računala.

Nema ništa komplicirano u korištenju PowerShell-a. Samo slijedite sve upute u ovom članku i uspjet ćete.

Ako niste stručnjak za ovu temu, tek počinjete proučavati naredbene retke i radnje koje se mogu izvesti u njima, bit će vam korisno znati odgovore na glavna pitanja o korištenju takve aplikacije. Na primjer, kako pokrenuti Windows PowerShell ISE Windows 10 i pisati skripte i raditi sa njima.

Kako otvoriti PowerShell?

To se može učiniti na nekoliko sljedećih načina:

  • - aplikaciju ćete pronaći u općem popisu komponenti pod slovom W.
  • Korištenje pretraživanja na programskoj traci - otvorite je i unesite riječ PowerShell za pretraživanje.
  • Pomoću izbornika "Pokreni" pokrenite ga kombinacijom Win + R i napišite naziv uslužnog programa, nakon čega će se naći u sustavu.
  • U Commanderu postavite radnju PowerShell - ali trebate znati da ćete raditi s aplikacijom do kraja linija za trčanje, a ne u zasebnom prozoru.
  • U Windows postavke Odaberite Svojstva programske trake i izbornik Start. Na kartici "Navigacija" potvrdite okvir pored "Zamijeni naredbeni redak s PowerShell...". Sada možete omogućiti uslužni program pomoću kombinacije Win+X.

Kako napisati i pokrenuti skripte?

Kako stvoriti PowerShell skriptu i pokrenuti je? To se jednostavno može učiniti u bilježnici - pomoću nje označite naredbe koje su vam potrebne u novom dokumentu. Zatim ga spremite, ali promijenite format u .ps1 - ovo je ekstenzija koju imaju datoteke ovog uslužnog programa sustava.

Skripte možete pisati u samoj aplikaciji ovako:

  • Pokreni ga.
  • Kliknite na stavku "Stvori".
  • Ili kliknite na "File" i odaberite "Create" s popisa koji se pojavi.
  • Napišite sve naredbe koje je potrebno izvršiti, spremite datoteku.

Skripte se i dalje mogu pisati i uređivati ​​u FAR Manageru, ali se ne mogu koristiti izravno u takvoj aplikaciji, jer prikazuje datoteke ove vrste kroz standardnu ​​cmd liniju. Međutim, ostale radnje izvode se na isti način kao u "nativnom" uslužnom programu.

Skriptu možete pokrenuti na ovaj način:

  1. Prijavite se u PowerShell kao administrator.
  2. Upotrijebite naredbe cd da odredite mjesto potrebne datoteke. Na primjer, e: cd\ cd work .\ naziv datoteke. Ps1 ili e: \work\filename.ps1
  3. U ovom slučaju e: je ime tvrdi disk gdje se datoteka nalazi.
  4. Pritisni enter.

Program će vam svakako pokazati poruku s tekstom “Datoteka ___ .Ps1 se ne može učitati jer je izvršavanje skripte zabranjeno na ovom sustavu...” kada prvi put pokrenete naredbu. Činjenica je da je Windows opremljen zaštitom od smetnji zahvaljujući programerima, tako da nitko od korisnika prema zadanim postavkama nema pristup za izvođenje takvih radnji. Ali ovo se ograničenje može vrlo lako zaobići.

Kako? Tekst koji se pojavljuje s pogreškom preporučit će vam da unesete naredbu get-help about_signing kako biste dobili više informacija. Možete slijediti ove upute ili koristiti kombinaciju Set-ExecutionPolicy remotesigned - nakon njezina unosa bit će potrebna potvrda i ograničenje će biti uklonjeno.

Ostala pitanja o upotrebi

Mnogi ljudi imaju pitanje: kako saznati verziju PowerShell-a? Da biste to učinili, učinite sljedeće:

  1. Unesite $PSVersionTable.
  2. Ako ovo ne vodi ničemu, onda imate verziju 1.0 - za nju postoji naredba $host.version.
  3. Inače će se pojaviti detaljne informacije o tome koja je verzija aplikacije instalirana na računalu.

Drugo pitanje na koje vrijedi odgovoriti je kako ukloniti PowerShell? To će zahtijevati sljedeće radnje:

  • Idite kroz upravljačku ploču do izbornika Dodaj/ukloni programe.
  • Pronađite granu Microsoft Windows
  • Deinstalirajte ažuriranje za komponentu WindowsPowerShell(TM) i slijedite upute sustava.

Sada znate sve o tome kako pisati i trčati PowerShell skripte, možete koristiti ovu naredbenu liniju za mnoge operacije u sustavu. Osim toga, uvijek imate priliku saznati verziju ovog proizvoda i čak ga djelomično ukloniti - zbog činjenice da je instaliran zajedno s komponente sustava, to još uvijek neće biti moguće učiniti u potpunosti. Samo vam savjetujemo da budete oprezni pri izvođenju svih takvih radnji kako ne biste oštetili računalo u cjelini.

Informacije sadržane na ovoj stranici primarno upućujemo korisnicima Microsoft Internet Explorer 5.x i 6.x.- najčešći preglednici na internetu. Važno je napomenuti da se naša stranica adekvatno prikazuje u drugim preglednicima. Međutim, po našem mišljenju, pristaše Mozilla Firefox i Opera su entuzijasti i poznavatelji vrhunskog softver, te stoga ne treba savjet o njegovom postavljanju.

JavaScript Ovo je skriptni jezik koji vam omogućuje da internetsku stranicu učinite interaktivnom, tj. "sposoban komunicirati" s korisnikom.

JavaScript skripte preuzeti s internetske stranice na računalo korisnika i izvršiti na njemu. Ova činjenica stvara potencijalnu prijetnju korisničkom računalu! Kao i svaka druga datoteka preuzeta s nepoznatog mjesta, JavaScript skripta može sadržavati izvršni kod koji može naštetiti korisniku - na primjer, otvoriti neovlašteni pristup njegovim povjerljive informacije. Zbog toga preglednici daju mogućnost onemogućavanja izvršavanja JavaScripta.

Nažalost, ništa od moderni preglednici ne dopušta vam da selektivno (kao što je slučaj s kolačićima) dopustite preuzimanje JavaScript skripti samo s određenih stranica, zabranjujući to sa svih ostalih. Morate prihvatiti da za rad JavaScript skripti postavka "Pokreni Java Application Scripts" mora biti omogućena za sve internetske stranice.

Koristimo JavaScript za organiziranje ispunjavanja različitih obrazaca na našoj stranici (na primjer, upisnica), prikazujući male savjete o korištenju naše web stranice, izradi našeg jelovnika i kataloga proizvoda.

Konfiguriranje sigurnosnih postavki JavaScripta u Microsoft Internet Exploreru 6.x

Konfiguriranje sigurnosnih postavki JavaScripta u Microsoft Internet Exploreru 5.x

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

  1. Pokrenite PowerShell i u njoj pokrenite skriptu (unesite put do datoteke i naziv datoteke, npr. ovako: C:\Scripts\test.ps1 ili idite u mapu skripte naredbom cd C:\Scripts i pokrenite je s naredbom.\test.ps1) Školjka se može pronaći i pokrenuti na mnogo načina. Jedan način je kroz izbornik Start. Za Windows 7 - trebate ići na "Svi programi" - "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 odabrati željenu skriptu, zatim pritisnuti F5 ili gumb "Pokreni skriptu". Windows PowerShell ISE možete pronaći na istom mjestu kao ljuska PowerShell - u izborniku Start.
  3. Pokrenite standardni naredbeni redak i u njemu napiši:
    powershell -datoteka<имя_скрипта> (primjer: powershell -file myscript.ps1)

Ako dosad niste pokretali PowerShell skripte, vjerojatno ćete primiti sljedeću poruku: Ne mogu preuzeti datoteku<имя_скрипта>, budući da je izvršenje skripte zabranjeno za ovaj sustav. Upišite "get-help about_signing" za više informacija. To je zbog činjenice da iz sigurnosnih razloga i 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, da biste izbjegli zahtjev za potvrdu pokretanja, morate koristiti Bypass umjesto RemoteSigned - potpuno gašenje sve zahtjeve i upozorenja.

Kako pokrenuti PowerShell skriptu u pozadini?

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

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

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

Pokretanje skripte PowerShell s parametrima

Stvarno pokretanje treba izvesti kao da pokrećete običan program ili bat datoteku 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, za pokretanje powershell skripte kada se korisnik prijavi, možete jednostavno stvoriti prečac kao što je opisano u točki 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 - prilično moćan alat za rješavanje raznih problema, ali može se koristiti ne samo za dobre stvari, već i za štetu, stoga ga koristite mudro;)



PowerShell kaže da je "izvršenje skripte onemogućeno na ovom sustavu." (15)

Pokušavam pokrenuti .cmd datoteku koja poziva PowerShell skriptu iz naredbeni redak i dobivam sljedeću grešku:

Management_Install.ps1 nije moguće učitati jer je skriptiranje onemogućeno na ovom sustavu.

Pokrenuo sam set-executionpolicy bez ograničenja i kada pokrenem get-executionpolicy iz PowerShell-a, dobivam neograničen odgovor.

// Izlaz iz Powershell-a

PS C:\Korisnici\Administrator>get-executionpolicy

neograničen

// Izlaz iz DOS-a

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scr

ips>powershell. \ Management_Install.ps1 1

UPOZORENJE: Pokretanje x86 PowerShell...

Datoteka C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 ne može se učitati jer je skriptiranje onemogućeno na ovom sustavu. Pogledajte "Pomoć oko_potpisivanja" za više detalja.

Na liniji: 1 znak: 25

    . \Management_Install.ps1<<<< 1

    • CategoryInfo: NotSpecified: (:), PSSecurityException

      FullyQualifiedErrorId: RuntimeException

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts> pauza

Pritisni bilo koju tipku za nastavak. ,

Sustav je Windows Server 2008 R2.

Što radim krivo?

  1. Otvorite PowerShell kao administrator i pokrenite
  2. Pružiti RemoteSigned i pritisnite Enter.
  3. Pokreni Set-ExecutionPolicy -Scope CurrentUser
  4. Pružiti neograničeni iznos i pritisnite Enter.

RemoteSigned: Sve skripte koje stvorite pokrenut će se, a sve skripte preuzete s interneta moraju biti potpisane od strane pouzdanog izdavača.

U redu, promijenite pravilo jednostavnim upisivanjem:

Set-ExecutionPolicy RemoteSigned

U PowerShell 2.0, pravilo izvršavanja bilo je onemogućeno prema zadanim postavkama.

Od tada je PowerShell tim napravio mnoga poboljšanja i uvjereni su da korisnici neće doživjeti velike smetnje prilikom pokretanja skripti. Stoga je, počevši od PowerShell 4.0, omogućen prema zadanim postavkama.

U vašem slučaju, unesite Set-ExecutionPolicy RemoteSigned s PowerShell konzole i recite da.

Idite na izbornik Start i potražite "Windows PowerShell ISE".

Desnom tipkom miša kliknite verziju x86 i odaberite Pokreni kao administrator.

Na vrhu zalijepite Set-ExecutionPolicy RemoteSigned ; pokrenite skriptu. Odaberite Da.

Ponovite ove korake za 64-bitnu verziju PowerShell ISE (verzija koja nije x86).

Samo pojašnjavam korake koje je @Chad Miller nagovijestio. Hvala Chad!

Ovo pravilo možete zaobići dodavanjem -ExecutionPolicy ByPass prilikom pokretanja PowerShell-a

Powershell -ExecutionPolicy ByPass -File script.ps1

Ovo također možete zaobići pomoću sljedeće naredbe:

PS > powershell Get-Content .\test.ps1 | Invoke-Expression

Ako se nalazite u okruženju u kojem niste administrator, možete postaviti politiku izvršavanja za njega i neće zahtijevati administratora.

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

Pomoć Get-ExecutionPolicy -Potpuni Set pomoći-ExecutionPolicy -Potpuni

Možemo dobiti status trenutne ExecutionPolicy sljedećom naredbom:

Get-ExecutionPolicy;

Prema zadanim postavkama ograničeno. Da bismo omogućili izvršavanje PowerShell skripti, moramo postaviti ovu ExecutionPolicy kao u zaobići ili bez ograničenja .

Možemo postaviti pravilo za trenutnog korisnika kao Zaobilazno ili Neograničeno pomoću bilo koje od dolje navedenih PowerShell naredbi:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force; Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force;

Neograničen Politika učitava sve konfiguracijske datoteke i pokreće sve skripte. Ako pokrećete nepotpisanu skriptu koja je preuzeta s interneta, od vas će se tražiti da dobijete dozvolu prije pokretanja.

S obzirom na to da u politici zaobići ništa nije blokirano i nema upozorenja ili upita dok se skripta izvodi. Premosnica ExecutionPolicy je opuštenija od Unrestricted.

Postavka politike izvršavanja ovisi o okruženju. Ako pokušavate izvršiti skriptu iz trenutnog x86 ISE-a, morate koristiti x86 PowerShell za postavljanje pravila izvršavanja. Isto tako, ako koristite 64-bitni ISE, morate instalirati politiku koristeći 64-bitni PowerShell.

Otvorite PowerShell prozor kao administrator. Ovo će uspjeti.

Idite na ključ registra HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell i postavite ExecutionPolicy na RemoteSigned.

Imao sam sličan problem i primijetio sam da zadani cmd za Windows Server 2012 pokreće x64.

Za Windows 7 , Windows 8 , Windows Server 2008 R2 ili Windows Server 2012 pokrenite sljedeće naredbe kao administrator :

x86(32 bita)
Otvorite C:\Windows\SysWOW64\cmd.exe

x64(64 bita)
Otvorite C:\Windows\system32\cmd.exe
Pokrenite powershell naredbu Set-ExecutionPolicy RemoteSigned

Možete provjeriti način rada pomoću

  • U CMD-u: echo %PROCESSOR_ARCHITECTURE%
  • U Powershell-u: ::Is64BitProcess

koristim Windows 10 i nije mogao izvršiti nijednu naredbu. Jedina naredba koja mi je dala neke naznake bila je ova:

Ali nije išlo. Bio je ograničen. Moguća nova sigurnosna pravila za Windows 10. Imao sam ovu grešku:

Set-ExecutionPolicy: Windows PowerShell uspješno je ažurirao vašu politiku izvršavanja, ali tu postavku nadjačava politika definirana u specifičnijem opsegu. Zbog nadjačavanja, vaša ljuska će zadržati trenutnu učinkovitu politiku izvršenja...

Pa sam pronašao drugi način ( riješenje):

  1. Otvaranje naredbe Run/Console (Win + R)
  2. Tip: gpedit.msc(urednik pravila grupe)
  3. Pogled politike lokalnog računala -> Računalna konfiguracija -> administrativni predlošci -> Windows komponente -> Windows Powershell .
  4. Upaliti " Omogući izvršavanje skripte »
  5. Po potrebi postavite pravila. Postavio sam za sebe " Dopusti sve scenarije ».

Sada otvorite PowerShell i uživajte ;)

Win + R i unesite naredbu copy paste i kliknite OK:

Powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

I izvršite svoju skriptu.

Zatim vratite promjene, na primjer:

Powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "AllSigned"