Kör skript och ange körningsprincipen i Windows PowerShell
Innan du kan börja ändra Windows PowerShell-skript eller skapa egna måste du veta hur du kör ett Windows PowerShell-skript. Du kanske är bekant med tanken på att dubbelklicka på en körbar fil eller välja den och sedan välja Retur för att köra den, men den processen fungerar inte för Windows PowerShell-skript.
Ett av problemen med många skriptspråk är att det är för enkelt att köra skripten av misstag. Användare kan av misstag köra ett skript genom att dubbelklicka på det eller välja det och sedan välja Retur. Den här åtgärden är särskilt problematisk när filtillägget är dolt och skadlig kod ingår som en e-postbilaga. Till exempel skulle en bifogad fil med namnet receipt.txt.vbs visas som receipt.txt och användarna skulle köra den av misstag och tro att det är en enkel textfil. Den här inställningen är inte ett problem för Windows PowerShell-skript på grund av de åtgärder som krävs för att köra ett skript.
Integrering med Utforskaren
För att göra Windows PowerShell-skript säkrare är .ps1-filtillägget associerat med Anteckningar. När du dubbelklickar på en .ps1-fil eller väljer den och sedan väljer Retur öppnas den i Anteckningar. Den här inställningen innebär att användare inte kan luras att köra ett Windows PowerShell-skript genom att dubbelklicka på det eller välja det och sedan välja Retur.
När du högerklickar på ett Windows PowerShell-skript eller aktiverar snabbmenyn har du tre alternativ:
- Öppna. Det här alternativet öppnar skriptet i Anteckningar.
- Kör med PowerShell. Det här alternativet kör skriptet, men Windows PowerShell-prompten förblir inte öppen när skriptet är klart.
- Redigera. Det här alternativet öppnar skriptet i Windows PowerShell ISE.
I de flesta fall vill du att Windows PowerShell-prompten ska vara öppen när du kör ett skript. Om du vill utföra den här uppgiften kör du skriptet från en Windows PowerShell-prompt som redan är öppen.
Köra skript i PowerShell-prompten
När du kör en körbar fil i en kommandotolk kan du ange dess namn för att köra den i den aktuella katalogen. När den aktuella katalogen till exempel är C:\app kan du ange app.exe för att köra C:\app\app.exe. Du kan inte använda den här processen för att köra Windows PowerShell-skript eftersom den inte söker i den aktuella katalogen.
Om du vill köra ett Windows PowerShell-skript i Windows PowerShell-prompten kan du använda följande metoder:
- Ange den fullständiga sökvägen till skriptet. till exempel C:\Scripts\MyScript.ps1.
- Ange en relativ sökväg till skriptet. till exempel \Scripts\MyScript.ps1.
- Referera till den aktuella katalogen; till exempel .\MyScript.ps1.
Skriptkörningsprincipen
Du kan styra om Windows PowerShell-skript kan köras på Windows-datorer. Du utför den här uppgiften genom att ange körningsprincipen på datorn. Standardkörningsprincipen på en dator varierar beroende på operativsystemversionen. För att vara säker på den aktuella konfigurationen kan du använda cmdleten Get-ExecutionPolicy .
Alternativen för körningsprincipen är:
- Begränsad. Inga skript tillåts köras.
- AllSigned. Skript kan bara köras om de är digitalt signerade.
- RemoteSigned. Skript som laddas ned kan bara köras om de är digitalt signerade.
- Obegränsad. Alla skript kan köras, men en bekräftelsefråga visas när du kör osignerade skript som laddas ned.
- Kringgå. Alla skript körs utan frågor.
Kommentar
Om du ställer in skriptkörningsprincipen får du ett säkerhetsnät som kan förhindra att skript som inte är betrodda körs av misstag. Körningsprincipen kan dock alltid åsidosättas.
Du kan ange körningspolicyn på en dator med hjälp av cmdleten Set-ExecutionPolicy. Den här inställningen är dock svår att hantera på många datorer. När du konfigurerar körningsprincipen för många datorer kan du använda inställningen Datorkonfiguration\Principer\Administrativa mallar\Windows-komponenter\Windows PowerShell\Aktivera grupprincip för skriptkörning för att åsidosätta den lokala inställningen.
Du kan åsidosätta körningsprincipen för en enskild Windows PowerShell-instans. Den här inställningen är användbar om företagspolicyn kräver att körningsprincipen anges som Begränsad, men du måste fortfarande köra skript ibland. Om du vill åsidosätta körningsprincipen kör PowerShell.exe med parametern -ExecutionPolicy.
Powershell.exe -ExecutionPolicy ByPass
Om du har ändrat ett skript som laddats ned från Internet har skriptet fortfarande de attribut som identifierar det som en nedladdad fil. Om du vill ta bort den statusen från ett skript använder du cmdleten Avblockera fil .