
Selaa viestien aiheita
- Mikä on PowerShell ExecutionPolicy?
- Käytettävissä olevat toteutuskäytännöt
- Toteutuspolitiikan laajuus ja tärkeysjärjestys
- Kuinka saada nykyinen PowerShell-suorituskäytäntö
- Kuinka asettaa PowerShell Execution Policy
- Johtopäätös
- Muita hyödyllisiä oppaita
- Lisäresurssit ja -viitteet
Mikä on PowerShell ExecutionPolicy?
PowerShellin ExecutionPolicy on suojausominaisuus, joka ohjaa, miten PowerShell lataa määritystiedostoja ja suorittaa komentosarjoja. ExecutionPolicy-ominaisuudet auttavat estämään PowerShellia suorittamasta haitallisia komentosarjoja.
Voit määrittää suorituskäytännön tietokoneelle, käyttäjälle tai istunnolle. The Set-ExecutionPolicy cmdletillä voidaan asettaa ExecutionPolicy. PowerShell.exe-komennolla on myös ExecutionPolicy-parametri, jota voit käyttää Powershell ExecutionPolicyn asettamiseen.
Tässä oppaassa opit erityyppisistä PowerShell-suorituskäytännöistä. Opit myös käyttämään Set-ExecutionPolicy- ja PowerShell.exe -ExecutionPolicy-komentoja.
Käytettävissä olevat toteutuskäytännöt
Tässä osiossa kerrotaan PowerShellissä määritettävistä erilaisista ExecutionPolicy-käytännöistä ja siitä, mitä kukin antaa sinun tehdä.
Rajoitettu
- Tämä on oletussuorituskäytäntö Windows 8:ssa, Server 2012:ssa ja uudemmissa.
- Estää PowerShell-määritystiedostoja (.ps1xml), moduulin komentosarjatiedostoja (.psm1) ja Windows PowerShell -profiileja (.ps1) suorittamasta
- Sallii yksittäiset PowerShell-komennot, mutta estää komentosarjat
Kaikki allekirjoitettu
Kun asetat AllSigned ExecutionPolicyn, PowerShell:
- Suorittaa kaikki skriptit
- Edellyttää, että luotetun julkaisijan on allekirjoitettava se, ennen kuin komentosarjan sallitaan ajaa. Tämä sisältää paikalliselle tietokoneelle kirjoitetut komentosarjat
- Kehottaa vahvistamaan ennen sellaisen julkaisijan komentosarjan suorittamista, jota et ole vahvistanut luotettavaksi
- Saattaa suorittaa allekirjoitettuja mutta haitallisia koodeja
Etäallekirjoitettu
Remote Signed Execution Policy:
- Mahdollistaa skriptien suorittamisen
- Edellyttää, että luotetuksi määrittämäsi julkaisijan on allekirjoitettava kaikki Internetistä ladatut komentosarjat digitaalisesti. Tämä sisältää sähköpostin ja pikaviestialustojen kautta vastaanotetut skriptit.
- Ei vaadi paikalliselle tietokoneelle kirjoitettujen komentosarjojen digitaalista allekirjoitusta
- Saattaa sallia haitallisten komentosarjojen suorittamisen muista lähteistä
Rajoittamaton
- Mahdollistaa määrittämättömien komentosarjojen suorittamisen
- Varoittaa sinua ennen skriptin suorittamista Internetistä
- Vaarana haitallisten koodien tai komentosarjojen suorittaminen
Ohittaa
Bypass Execution Policy:
- Mitään komentosarjaa ei ole estetty. Ei myöskään tarjoa varoituksia.
Määrittelemätön
- Tarkoittaa, ettei ExecutionPolicyä ole määritelty
- Voimassa oleva Execution Policy on rajoitettu (oletus)
Toteutuspolitiikan laajuus ja tärkeysjärjestys
Voit soveltaa PowerShell-suorituskäytäntöä:
LocalMcachine : Vaikuttaa vain nykyisiin käyttäjiin. Tällä on vähiten etusija
Nykyinen käyttäjä : Suorituskäytäntö vaikuttaa vain nykyiseen käyttäjään. Menee etusijalle LocalMcachine mutta sillä on pienempi etusija Prosessi .
Prosessi : Koskee vain nykyistä istuntoa. Ottaa korkeimman etusijan.
Kuinka saada nykyinen PowerShell-suorituskäytäntö
Jos haluat nähdä nykyisen PowerShell ExecutionPolicyn, suorita alla oleva komento:
|_+_|
Näet ExecutionPolicy-joukon kaikille laajuuksille käyttämällä tätä komentoa:
|_+_|
Voit myös saada toteutuskäytännöt laajuuden perusteella. Tässä muutamia esimerkkikomentoja:
|_+_|Kuinka asettaa PowerShell Execution Policy
Kuten johdannossa mainitsin, voit määrittää ExecutionPolicyn Set-ExecutionPolicy-cmdletillä. Voit myös käyttää PowerShell.exe -ExecutionPolicy-komentoa.
Suorituskäytännön asettaminen Set-ExecutionPolicyn avulla
Set-ExecutionPolicy-cmdletin syntaksi on:
|_+_|Esimerkkinä, jos haluat asettaa suorituskäytännön arvoon Etäallekirjoitettu käytä alla olevaa komentoa:
|_+_|Tässä on komennon tulos.

Tässä on järjestelmänvalvojana suoritettu komento:

Kuten kuvasta näkyy, uusi toteutuskäytäntö on nyt Etäallekirjoitettu .
Kahdesta viimeisestä komennosta minua pyydettiin vahvistamaan komento. Ohita tämä kehote sisällyttämällä -Pakottaa parametri.
Komento suoritetaan nyt ilman vahvistuskehotetta.

Oletuksena tämä komento asettaa suorituskäytännön kohteelle Paikallinen kone laajuus. Vahvista tämä suorittamalla alla oleva komento:
|_+_|
Jos haluat asettaa suorituskäytännön koskemaan toista laajuutta, käytä - Laajuus parametri.
Alla oleva komento asettaa suorituskäytännön kohteelle Nykyinen käyttäjä :
|_+_|
Kuten tuloksesta näkyy, Nykyinen käyttäjä politiikkaa ei enää ole Määrittelemätön . Se on nyt Ohittaa , viimeisellä komennolla asetettu käytäntö.
ExecutionPolicyn asettaminen PowerShell.exe -ExecutionPolicyn avulla
Jos haluat ohittaa sisäänkirjautuneen istunnon suorituskäytännön, voit määrittää suorituskäytännön nykyiselle komentoriville. Tämä saavutetaan PowerShell.exe-komennolla.
Ennen kuin annan esimerkkejä, tässä on nykyinen toteutuskäytäntö:

Nykyinen toteutuspolitiikka on Rajoitettu . Tämä johtuu siitä, Prosessi laajuus on etusijalla. Vahvista katsomalla tulos alla:

Jos muistat, Rajoitettu käytäntö EI salli skriptien suorittamista.
Tämä tarkoittaa, että jos yritän suorittaa komentosarjan, pääsy estetään. Alla oleva kuva näyttää sarjan komentoja ja niiden tuloksia. Katso selitykseni kuvan alta.

Ensimmäinen kuvassa näkyvä komento on:
|_+_|Yritin ajaa PowerShell-komentosarjaa. Sitten sain seuraavan virheilmoituksen:
Tiedostoa C:PSschedule powershell esimerkkiCreate-folders-from-text-file.ps1 ei voi ladata, koska komentosarjojen suorittaminen on poistettu käytöstä tässä järjestelmässä.
Syynä on se, että nykyinen täytäntöönpanopolitiikka on Rajoitettu . Se ei salli skriptien suorittamista.
Takaisin viitekuvaan. Seuraavalla rivillä suoritin seuraavan komennon:
|_+_|Voin tehokkaasti asettaa väliaikaisen suorituskäytännön komentoriville käyttämällä thepowershell.exe-komennon -ExecutionPolicy-parametria. Mutta sain saman virheilmoituksen. Syynä on, että minun on asetettava suorituskäytäntö ennen kuin kutsun komentosarjaa.
Sitten seuraavalla rivillä suoritin tämän komennon:
|_+_|Tämä asettaa suorituskäytännön nykyiselle sisäänkirjautuneelle istunnolle Rajoittamaton . Joten kun nyt suoritan PowerShell-komentosarjani, se suoritettiin onnistuneesti! Katso viitekuva yllä.
Viimeisimmän analyysin otos on tämä: Voit asettaa Powershell ExecutionPolicyn nykyiselle istunnolle käyttämällä Powershell.exe -ExecutionPolicy-ohjelmaa. Sinun on kuitenkin suoritettava komento ennen komentosarjan kutsumista.Vahvistaakseni, että Powershell.exe asettaa käytännön vain nykyiselle istunnolle, suoritan alla olevan komennon nykyisestä istunnosta:
|_+_|Tulos on Rajoittamaton varten Nykyinen käyttäjä laajuus. Jos kirjaudun ulos nykyisestä istunnostani ja kirjaudun takaisin sisään. Se palaa takaisin Set-ExecutionPolicy-komennolla asetettuun käytäntöön.

Johtopäätös
Toivon, että olen pystynyt yksinkertaistamaan PowerShell-suorituskäytäntöjen hankkimista ja määrittämistä. Jos sinulla on kysyttävää tai kommentteja, käytä sivun lopussa olevaa Vastaa -lomaketta.
Muita hyödyllisiä oppaita
- PowerShell Not Equal Operator: Sovellukset, esimerkkejä
- Powershell for Loop selitys: Syntaksi ja esimerkit