Som standard har Microsoft förhindrat körning av anpassade PowerShell-skript, bland annat cmdlets, genom att ställa in PowerShell "ExecutionPolicy" till "Begränsad". Detta kan ändras enkelt.
Du kan ändra ExecutionPolicy för PowerShell-skript / cmdlets genom att köra PowerShell-kommandot Set-ExecutionPolicy.
För att utarbeta dina alternativ för det här kommandot, kör du bara följande i PowerShell:
Set-ExecutionPolicy -ExecutionPolicy -?
Personligen föredrar jag att ställa ExecutionPolicy till "RemoteSigned". Detta tillåter mig att köra mina egna skript, men förhindrar unsigned scripts från andra att springa:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Testa detta på följande sätt: Skapa ett nytt PowerShell-skript på skrivbordet. Högerklicka på skrivbordet, nytt> textdokument. Namn det test.ps1
Högerklicka test.ps1 och välj Redigera. Det ska öppnas med PowerShell ISE (Integrated Scripting Environment). Skriv följande i den övre rutan:
Echo "Hej världen!"
start sömn 10
Spara den med Ctrl + S och stäng den.
Öppna nu powerhell, byt till skrivbordet och försök att köra skriptet:
cd "$ env: userprofile \ Desktop"
. \ Test.ps1
Ändra sedan din ExecutionPolicy till "RemoteSigned" och försök igen:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
. \ Test.ps1
Observera att manuset / cmdletet refereras med ". \". Du kan också använda hela sökvägen, men kan inte köra den genom att bara skriva sitt namn (väldigt Unix som, eh?).
Notera också användningen av "$ env: userprofile" för att representera sökvägen till din användarprofil. I den klassiska Windows Command Processor representerades detta med "% userprofile%".
Slutligen, var vänlig observera att det inte fungerar som angivet om du inte befinner dig i den lokala administratörsgruppen. Det är i själva verket en bästa praxis att undvika daglig användning av ett konto som finns i den lokala administratörsgruppen, så det kan vara fallet för dig. För att omgärda det, starta du powerhell som administratör för att ange exekveringspolicy. Kolla här.