PowerShell Execution Policy selitetty

15. syyskuuta 2020 2424 Näkymät powershell-toteutuspolitiikka

Selaa viestien aiheita

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:

|_+_| Suorituskäytännön asettaminen Set-ExecutionPolicyn avulla

Näet ExecutionPolicy-joukon kaikille laajuuksille käyttämällä tätä komentoa:

|_+_| Suorituskäytännön asettaminen Set-ExecutionPolicyn avulla

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.

Suorituskäytännön asettaminen Set-ExecutionPolicyn avullaKomento epäonnistui, koska en avannut PowerShellia järjestelmänvalvojana.

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

Suorituskäytännön määrittäminen PowerShell.exe -ExecutionPolicyn avulla

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.

The -Pakottaa parametri on erityisen hyödyllinen komentosarjassa. Ilman tätä parametria skripti saattaa pysähtyä.

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

Lisäresurssit ja -viitteet