Slik får du mest mulig ut av Windows PowerShell ved å aktivere Script Execution Policy.

iPowerShell lar deg som standard kjøre kommandoer (cmdlets) via konsollen. For å kjøre et skript kan du opprette en notisblokkfil med skriptkoden, lagre den med en .ps1-filtype og kjøre den via PowerShell-konsollen. Du kan også lime inn skriptet direkte på konsollen for utførelse.

Men hvis det er første gang du kjører et skript via PowerShell, vil du støte på feilen "kjørende skript er deaktivert". Som standard er kjøring av skript på PowerShell deaktivert som et sikkerhetstiltak for å forhindre at skadelige skript kjører på systemet ditt. Her viser vi deg de to måtene å aktivere skriptutførelsespolicyen på Windows PowerShell.

Slik sjekker du din eksisterende utførelsespolicy

Du kan bruke en PowerShell-cmdlet for å få din nåværende utførelsespolicy. Å kjenne til gjeldende utførelsespolicy er nødvendig for å vite om du trenger en policyendring eller ikke.

Slik får du gjeldende utførelsespolicy for gjeldende bruker:

instagram viewer
  1. Åpne Windows PowerShell som administrator.
  2. Skriv inn følgende kommando i PowerShell-konsollen og trykk Enter:
    -utførelsespolicy
  3. Siden du har støtt på en feil når du kjører skriptet, vil returen sannsynligvis vises Begrenset som din nåværende utførelsespolicy.
  4. Hvis du trenger å se utførelsespolicyen for alle de støttede omfangene:
    -utførelsespolicy -liste

Du må endre utførelsespolicyen til RemoteSigned for å kjøre lokale skript uten feilen. Du kan endre utførelsespolicyen fra Innstillinger-appen og PowerShell.

Slik aktiverer du PowerShell Execution Policy ved hjelp av Innstillinger-appen

Du kan endre og angi PowerShell-utførelsespolicyen til RemoteSigned ved hjelp av Innstillinger-appen. Alt du trenger å gjøre er å justere PowerShell-innstillingene i utviklernes seksjon for å endre utførelsespolicyen for å aktivere PowerShell-skriptkjøring.

For å endre utførelsespolicy ved hjelp av Innstillinger:

  1. trykk Vinn + I for å åpne Setting.
  2. Åpne Personvern og sikkerhet fanen i venstre rute.
  3. Klikk deretter på For utviklere.
  4. Klikk for å utvide Kraftskall seksjon.
  5. Vri bryteren til endre utførelsespolicyen for å tillate lokale PowerShell-skript å kjøre uten signering - Krev signering for eksterne skript.
  6. Når du er ferdig, åpne PowerShell, skriv inn get utførelsespolicy, og trykk Tast inn. Utførelsespolicyen for gjeldende bruker er nå satt til Fjernsignert.
  7. Hvis du trenger å deaktivere utførelsespolicyen, bytter du PowerShell-bryteren og setter den til Av.

Slik lar du skript kjøres i PowerShell ved hjelp av PowerShell

Du kan bruke en PowerShell cmdlet for å sette utførelsespolicyen til RemoteSigned. Kommandolinjegrensesnittet gjør det enkelt å endre utførelsespolicy raskt uten å bruke Innstillinger-appen.

Innstillinger-appen kan også bare aktivere eller deaktivere RemoteSigned-utførelsespolicyen. Mens PowerShell lar deg angi andre retningslinjer og omfang også.

Slik endrer du utførelsespolicyen ved å bruke PowerShell:

  1. Åpne PowerShell som administrator.
  2. I PowerShell-vinduet skriver du inn følgende kommando og trykker Tast inn:
    Sett-ExecutionPolicy Remote Signed
  3. Hvis du blir bedt om det, trykk EN for å bekrefte handlingen. Dette vil sette Fjernsignert utførelsespolicy for alle brukere. Hvis du vil angi utførelsespolicyen for Nåværende bruker bare bruk Scope-parameteren etterfulgt av brukernavnet.
  4. For eksempel for å stille inn Fjernsignert utførelsespolicy for Nåværende bruker, bruk følgende kommando:
    Sett-ExecutionPolicy RemoteSgined -omfang Nåværende bruker
  5. Erstatte Nåværende bruker i kommandoen ovenfor med andre brukere (Scope) i henhold til ditt krav.

Slik fjerner du skriptutførelsespolicy ved hjelp av PowerShell

Hvis du vil deaktivere kjøring av skript, setter du kjøringspolicyen til Udefinert bruker the Set_ExecutionPolicy cmdlet. Dette er en standardtilstand og forhindrer PowerShell fra å kjøre skript.

Slik deaktiverer du kjøring av skript ved hjelp av PowerShell:

  1. Åpne PowerShell med forhøyet tillatelse.
  2. Skriv deretter inn følgende kommando og trykk enter for å deaktivere kjøring av skript for alle brukere:
    Sett- Utførelsespolicy udefinert
  3. Kommandoen ovenfor vil sette standard utførelsespolicy (udefinert) for alle brukerne. Hvis du vil deaktivere kjøring av skript for et spesifikt omfang, bruk følgende kommando:
    Sett- Utførelsespolicy udefinert -Omfang CurrentUser
  4. Kommandoen ovenfor vil deaktivere kjøring av skript for Nåværende bruker.

Forstå utførelsespolicyer og omfang

Enkelt sagt er PowerShells utførelsespolicy en policy som kontrollerer hvordan PowerShell kjører konfigurasjonsfiler og skript. Hensikten er å forhindre at brukere kjører skadelige skript ved et uhell. De syv PowerShell-utførelsespolicyene er Standard, Begrenset, Fjernsignert, Allsignert, Ubegrenset, Bypass og Udefinert.

Tabellen nedenfor forklarer kort alle retningslinjene for PowerShell-utførelse:

Retningslinjer for utførelse

Håndhevelse

Misligholde

Angir standard utførelsespolicy som Begrenset på Windows-klient og RemoteSigned på Windows Server.

Allsignert

Tillater utførelse av utgiversignerte skript.

Bypass

Ubegrenset utførelse av skript for større applikasjoner.

Fjernsignert

Tillater lokalt skrevet skriptutførelse. Krever digitale signaturer for skript lastet ned fra internett.

Begrenset

Tillater ikke skriptkjøring, men bare individuelle PowerShell-kommandoer.

Udefinert

Setter utførelsespolicy til Begrenset for Windows-klienter og RemoteSigned for Windows Server.

Ubegrenset

Tillat kjøring av usignert skript med en advarsel for skriptene som er lastet ned fra internett.

Rekkevidde for utførelsespolitikk

Du kan angi utførelsespolicy for et bestemt omfang i PowerShell. De fem utførelsespolicyomfangene er MachinePolicy, UserPolicy, Process, CurrentUser, og LocalMachine.

Tabellen nedenfor forklarer kort alle rekkeviddene for utførelsespolicy:

Rekkevidde for utførelsespolitikk

Håndhevelse

Brukerpolicy

Konfigurert av en gruppepolicy for gjeldende bruker.

Maskinpolitikk

Konfigurert av en gruppepolicy for alle brukerne.

CurrenUser

Konfigurert for gjeldende bruker og lagret i HKEY_CURRENT_MACHINE registerundernøkkel.

LocalMachine

Konfigurert for alle brukere og lagret i HKEY_CURRENT_MACHINE registerundernøkkel.

Prosess

Påvirker gjeldende PowerShell-sesjon og slettes automatisk når økten lukkes.

Legg til eller fjern PowerShell Script Execution Policy på Windows

Skriptkjøring på PowerShell er deaktivert som standard for Windows-klienter og satt til RemoteSigned for Windows-server. Avanserte brukere kan imidlertid endre utførelsespolicyer for å kjøre lokale, signerte og usignerte PowerShell-skript.

Alternativt kan du omgå PowerShell-utførelsespolicyen ved å lime inn skriptet i en PowerShell-konsoll eller ECHO skriptet ditt i PowerShell-standardinndata. Dette er nyttig hvis du vil kjøre skript uten å endre utførelsespolicyen.