Sådan får du mest muligt ud af Windows PowerShell ved at aktivere Script Execution Policy.
iPowerShell lader dig som standard køre kommandoer (cmdlets) via dens konsol. For at udføre et script kan du oprette en notesblokfil med scriptkoden, gemme den med en .ps1 filtypenavn og udføre den via PowerShell-konsollen. Du kan også indsætte scriptet direkte på konsollen til udførelse.
Men hvis det er første gang, du udfører et script via PowerShell, vil du støde på fejlen "kørende script er deaktiveret". Som standard er scriptudførelse på PowerShell deaktiveret som en sikkerhedsforanstaltning for at forhindre ondsindede scripts i at køre på dit system. Her viser vi dig de to måder at aktivere scrip-udførelsespolitikken på Windows PowerShell.
Sådan tjekker du din eksisterende eksekveringspolitik
Du kan bruge en PowerShell-cmdlet til at få din aktuelle udførelsespolitik. Det er nødvendigt at kende din nuværende udførelsespolitik for at vide, om du har brug for en politikændring eller ej.
Sådan får du din aktuelle udførelsespolitik for den aktuelle bruger:
- Åbn Windows PowerShell som administrator.
- Skriv følgende kommando i PowerShell-konsollen og tryk på Enter:
få-udførelsespolitik
- Da du er stødt på en fejl under udførelse af scriptet, vil returneringen sandsynligvis blive vist Begrænset som din nuværende udførelsespolitik.
- Hvis du har brug for at se udførelsespolitikken for alle de understøttede områder:
få-udførelsespolitik -liste
Du skal ændre udførelsespolitikken til RemoteSigned for at køre lokale scripts uden fejlen. Du kan ændre udførelsespolitikken fra appen Indstillinger og PowerShell.
Sådan aktiverer du PowerShell-udførelsespolitik ved hjælp af appen Indstillinger
Du kan ændre og indstille PowerShell-udførelsespolitikken til RemoteSigned ved hjælp af appen Indstillinger. Alt du skal gøre er at justere PowerShell-indstillingerne i udviklersektionen for at ændre udførelsespolitikken for at aktivere PowerShell-scriptudførelse.
Sådan ændrer du udførelsespolitik ved hjælp af Indstillinger:
- Trykke Win + I for at åbne Setting.
- Åbn Privatliv og sikkerhed fanen i venstre rude.
- Klik derefter på For udviklere.
- Klik for at udvide PowerShell afsnit.
- Skift kontakten til ændre udførelsespolitikken for at tillade lokale PowerShell-scripts at køre uden signering - Kræv signering for eksterne scripts.
- Når du er færdig, skal du åbne PowerShell, skrive get udførelsespolitik, og tryk Gå ind. Udførelsespolitikken for den aktuelle bruger er nu indstillet til Fjernsigneret.
- Hvis du har brug for at deaktivere udførelsespolitikken, skal du skifte PowerShell-kontakten og indstille den til Af.
Sådan tillades scripts at køre i PowerShell ved hjælp af PowerShell
Du kan bruge en PowerShell cmdlet for at indstille udførelsespolitikken til RemoteSigned. Kommandolinjegrænsefladen gør det nemt at ændre udførelsespolitik hurtigt uden at bruge appen Indstillinger.
Appen Indstillinger kan også kun aktivere eller deaktivere RemoteSigned-udførelsespolitikken. Mens PowerShell også lader dig indstille andre politikker og omfang.
Sådan ændrer du udførelsespolitikken ved hjælp af PowerShell:
- Åbn PowerShell som administrator.
- I PowerShell-vinduet skal du skrive følgende kommando og trykke på Gå ind:
Sæt-ExecutionPolicy Remote Signed
- Tryk på, hvis du bliver bedt om det EN for at bekræfte handlingen. Dette vil indstille Fjernsigneret udførelsespolitik for alle brugere. Hvis du vil indstille udførelsespolitikken for Nuværende bruger Brug kun parameteren Scope efterfulgt af brugernavnet.
- For eksempel at indstille Fjernsigneret udførelsespolitik for Nuværende bruger, brug følgende kommando:
Sæt-ExecutionPolicy RemoteSgined -Omfang Nuværende bruger
- Erstatte Nuværende bruger i ovenstående kommando med andre brugere (Scope) i henhold til dit krav.
Sådan fjerner du scriptudførelsespolitik ved hjælp af PowerShell
Hvis du vil deaktivere udførelse af script, skal du indstille udførelsespolitikken til Udefineret ved hjælp af the Set_ExecutionPolicy cmdlet. Dette er en standardtilstand og forhindrer PowerShell i at udføre scripts.
Sådan deaktiveres scriptudførelse ved hjælp af PowerShell:
- Åbn PowerShell med forhøjet tilladelse.
- Skriv derefter følgende kommando og tryk på enter for at deaktivere scriptudførelse for alle brugere:
Sæt-Udførelsespolitik udefineret
- Ovenstående kommando vil indstille udførelsespolitikken som standard (udefineret) for alle brugere. Hvis du vil deaktivere scriptudførelse for et specifikt omfang, skal du bruge følgende kommando:
Sæt-Udførelsespolitik udefineret -Scope CurrentUser
- Ovenstående kommando vil deaktivere scriptudførelse for Nuværende bruger.
Forståelse af udførelsespolitikker og omfang
Kort sagt er PowerShells eksekveringspolitik en politik, der styrer, hvordan PowerShell eksekverer konfigurationsfiler og scripts. Formålet er at forhindre brugere i at køre ondsindede scripts ved et uheld. De syv PowerShell-udførelsespolitikker er Standard, Restricted, Remote Signed, All Signed, Unrestricted, Bypass og Undefined.
Nedenstående tabel forklarer kort alle PowerShell-udførelsespolitikkerne:
Udførelsespolitik |
Håndhævelse |
Standard |
Indstiller standardudførelsespolitikken som Begrænset på Windows-klient og RemoteSigned på Windows Server. |
Allesigneret |
Tillader udførelse af udgiversignerede scripts. |
Bypass |
Ubegrænset udførelse af scripts til større applikationer. |
Fjernsigneret |
Tillader lokalt skrevet script udførelse. Kræver digitale signaturer til scripts downloadet fra internettet. |
Begrænset |
Tillader ikke scriptudførelse, men kun individuelle PowerShell-kommandoer. |
Udefineret |
Indstiller udførelsespolitik til Begrænset for Windows-klienter og RemoteSigned til Windows Server. |
Ubegrænset |
Tillad usigneret scriptkørsel med en advarsel for de scripts, der er downloadet fra internettet. |
Udførelsespolitikkens omfang
Du kan indstille udførelsespolitik for et bestemt omfang i PowerShell. De fem eksekveringspolitikomfang er MachinePolicy, UserPolicy, Process, CurrentUser, og LocalMachine.
Nedenstående tabel forklarer kort alle udførelsespolitikkens omfang:
Udførelsespolitikkens omfang |
Håndhævelse |
Brugerpolitik |
Konfigureret af en gruppepolitik for den aktuelle bruger. |
Maskinpolitik |
Konfigureret af en gruppepolitik for alle brugere. |
Nuværende bruger |
Konfigureret til den aktuelle bruger og gemt i HKEY_CURRENT_MACHINE registreringsdatabasenøgle. |
LocalMachine |
Konfigureret til alle brugere og gemt i HKEY_CURRENT_MACHINE registreringsdatabasenøgle. |
Behandle |
Påvirker den aktuelle PowerShell-session og slettes automatisk, når sessionen lukkes. |
Tilføj eller fjern PowerShell Script Execution Policy på Windows
Scriptudførelse på PowerShell er som standard deaktiveret for Windows-klienter og indstillet til RemoteSigned for Windows-server. Superbrugere kan dog ændre udførelsespolitikker for at køre lokale, signerede og usignerede PowerShell-scripts.
Alternativt kan du omgå PowerShell-udførelsespolitikken ved at indsætte scriptet i en PowerShell-konsol eller ECHO dit script i PowerShell-standardinput. Dette er nyttigt, hvis du ønsker at udføre scripts uden at ændre udførelsespolitikken.