Så här får du ut det mesta av Windows PowerShell genom att aktivera Script Execution Policy.

iPowerShell låter dig som standard köra kommandon (cmdlets) via dess konsol. För att köra ett skript kan du skapa en anteckningsblocksfil med skriptkoden, spara den med filtillägget .ps1 och köra den via PowerShell-konsolen. Du kan också klistra in skriptet direkt på konsolen för exekvering.

Men om det är första gången du kör ett skript via PowerShell, kommer du att stöta på felet "körningsskript är inaktiverat". Som standard är skriptkörning på PowerShell inaktiverat som en säkerhetsåtgärd för att förhindra att skadliga skript körs på ditt system. Här visar vi dig de två sätten att aktivera skriptkörningspolicyn på Windows PowerShell.

Så här kontrollerar du din befintliga exekveringspolicy

Du kan använda en PowerShell-cmdlet för att få din nuvarande körningspolicy. Att känna till din nuvarande exekveringspolicy är nödvändigt för att veta om du behöver en policyändring eller inte.

Så här hämtar du din nuvarande körningspolicy för den aktuella användaren:

instagram viewer
  1. Öppna Windows PowerShell som administratör.
  2. Skriv följande kommando i PowerShell-konsolen och tryck på Enter:
    skaffa sig-utförandepolicy
  3. Eftersom du har stött på ett fel när du körde skriptet kommer returen troligen att visas Begränsad som din nuvarande utförandepolicy.
  4. Om du behöver se exekveringspolicyn för alla omfång som stöds:
    skaffa sig-exekveringspolicy -lista

Du måste ändra exekveringspolicyn till RemoteSigned för att köra lokala skript utan felet. Du kan ändra exekveringspolicyn från appen Inställningar och PowerShell.

Hur man aktiverar PowerShell Execution Policy med hjälp av appen Inställningar

Du kan ändra och ställa in PowerShell-exekveringspolicyn till RemoteSigned med hjälp av appen Inställningar. Allt du behöver göra är att justera PowerShell-inställningarna i utvecklarsektionen för att ändra exekveringspolicyn för att aktivera PowerShell-skriptkörning.

Så här ändrar du körningspolicy med Inställningar:

  1. Tryck Win + I för att öppna Settings.
  2. Öppna Sekretess och säkerhet fliken i den vänstra rutan.
  3. Klicka sedan på För utvecklare.
  4. Klicka för att expandera PowerShell sektion.
  5. Växla omkopplaren till ändra exekveringspolicyn så att lokala PowerShell-skript kan köras utan signering - Kräv signering för fjärrskript.
  6. När du är klar, öppna PowerShell, skriv get avrättningspolicy, och tryck Stiga på. Körningspolicyn för den aktuella användaren är nu inställd på Fjärrsignerad.
  7. Om du behöver inaktivera exekveringspolicyn, växla PowerShell-omkopplaren och ställ in den på Av.

Hur man tillåter att skript körs i PowerShell med PowerShell

Du kan använda en PowerShell cmdlet för att ställa in exekveringspolicyn till RemoteSigned. Kommandoradsgränssnittet gör det enkelt att snabbt ändra exekveringspolicy utan att använda appen Inställningar.

Dessutom kan appen Inställningar endast aktivera eller inaktivera RemoteSigned-körningspolicyn. Medan PowerShell låter dig ställa in andra policyer och omfattningar också.

Så här ändrar du körpolicyn med PowerShell:

  1. Öppna PowerShell som administratör.
  2. I PowerShell-fönstret skriver du följande kommando och trycker på Stiga på:
    Uppsättning- ExecutionPolicy Remote Signed
  3. Om du uppmanas, tryck A för att bekräfta åtgärden. Detta kommer att ställa in Fjärrsignerad exekveringspolicy för alla användare. Om du vill ställa in exekveringspolicyn för Nuvarande användaren endast använd parametern Scope följt av användarnamnet.
  4. Till exempel för att ställa in Fjärrsignerad utförandepolicy för Nuvarande användaren, använd följande kommando:
    Uppsättning-ExecutionPolicy RemoteSgined -Omfattning Nuvarande användaren
  5. Byta ut Nuvarande användaren i kommandot ovan med andra användare (Scope) enligt dina krav.

Hur man tar bort skriptkörningspolicy med PowerShell

Om du vill inaktivera körning av skript, ställ in körningspolicyn till Odefinierad använder the Set_ExecutionPolicy cmdlet. Detta är ett standardtillstånd och förhindrar PowerShell från att köra några skript.

Så här inaktiverar du skriptkörning med PowerShell:

  1. Öppna PowerShell med förhöjd behörighet.
  2. Skriv sedan följande kommando och tryck på enter för att inaktivera skriptkörning för alla användare:
    Uppsättning-Utförandepolicy odefinierad
  3. Ovanstående kommando kommer att ställa in exekveringspolicyn som standard (odefinierad) för alla användare. Om du vill inaktivera skriptkörning för ett specifikt omfång, använd följande kommando:
    Uppsättning-Utförandepolicy odefinierad -Omfattning CurrentUser
  4. Ovanstående kommando kommer att inaktivera skriptkörning för Nuvarande användaren.

Förstå utförandepolicyer och omfattningar

Enkelt uttryckt är PowerShells exekveringspolicy en policy som styr hur PowerShell exekverar konfigurationsfiler och skript. Syftet är att förhindra användare från att av misstag köra skadliga skript. De sju PowerShell-exekveringspolicyerna är Default, Restricted, Remote Signed, Allsigned, Unrestricted, Bypass och Undefined.

Tabellen nedan förklarar kortfattat alla PowerShell-körningsprinciper:

Utförandepolicy

Tillämpning

Standard

Ställer in standardkörningspolicyn som Begränsad på Windows-klient och RemoteSigned på Windows Server.

Allsignerad

Tillåter exekvering av förlagssignerade skript.

Gå förbi

Obegränsad exekvering av skript för större applikationer.

Fjärrsignerad

Tillåter lokalt skrivet skriptkörning. Kräver digitala signaturer för skript som laddas ner från internet.

Begränsad

Tillåter inte skriptkörning, utan endast individuella PowerShell-kommandon.

Odefinierad

Ställer in körningspolicyn till Begränsad för Windows-klienter och RemoteSigned för Windows Server.

Obegränsad

Tillåt osignerad körning av skript med en varning för skript som laddas ner från internet.

Utförandepolicy omfattning

Du kan ställa in körningspolicy för ett visst omfång i PowerShell. De fem exekveringspolicyerna är MachinePolicy, UserPolicy, Process, CurrentUser, och LocalMachine.

Tabellen nedan förklarar kortfattat alla tillämpningsområden för exekveringspolicyn:

Utförandepolicy omfattning

Tillämpning

Användarpolicy

Konfigurerad av en grupprincip för den aktuella användaren.

Maskinpolicy

Konfigurerad av en gruppolicy för alla användare.

CurrenUser

Konfigurerad för den aktuella användaren och lagrad i HKEY_CURRENT_MACHINE registerundernyckel.

LocalMachine

Konfigurerad för alla användare och lagrad i HKEY_CURRENT_MACHINE registerundernyckel.

Bearbeta

Påverkar aktuell PowerShell-session och raderas automatiskt när sessionen stängs.

Lägg till eller ta bort PowerShell Script Execution Policy på Windows

Skriptkörning på PowerShell är inaktiverat som standard för Windows-klienter och inställt på RemoteSigned för Windows-server. Avancerade användare kan dock ändra körningsprinciper för att köra lokala, signerade och osignerade PowerShell-skript.

Alternativt kan du kringgå PowerShell-exekveringspolicyn genom att klistra in skriptet i en PowerShell-konsol eller ECHO ditt skript i PowerShells standardindata. Detta är användbart om du vill köra skript utan att ändra körningspolicyn.