Hier leest u hoe u optimaal gebruik kunt maken van Windows PowerShell door het Scriptuitvoeringsbeleid in te schakelen.
Met iPowerShell kunt u standaard opdrachten (cmdlets) uitvoeren via de console. Om een script uit te voeren, kunt u een kladblokbestand maken met de scriptcode, dit opslaan met de bestandsextensie .ps1 en het uitvoeren via de PowerShell-console. U kunt het script ook rechtstreeks in de console plakken voor uitvoering.
Als het echter de eerste keer is dat u een script uitvoert via PowerShell, krijgt u de foutmelding "script actief is uitgeschakeld". De uitvoering van scripts op PowerShell is standaard uitgeschakeld als beveiligingsmaatregel om te voorkomen dat kwaadaardige scripts op uw systeem worden uitgevoerd. Hier laten we u de twee manieren zien om het scriptuitvoeringsbeleid op Windows PowerShell in te schakelen.
Hoe u uw bestaande uitvoeringsbeleid kunt controleren
U kunt een PowerShell-cmdlet gebruiken om uw huidige uitvoeringsbeleid op te halen. Het kennen van uw huidige uitvoeringsbeleid is noodzakelijk om te weten of u een beleidswijziging nodig heeft of niet.
Om uw huidige uitvoeringsbeleid voor de huidige gebruiker te krijgen:
- Open Windows PowerShell als beheerder.
- Typ de volgende opdracht in de PowerShell-console en druk op Enter:
krijgen-uitvoeringsbeleid
- Aangezien u een fout bent tegengekomen bij het uitvoeren van het script, zal de return waarschijnlijk verschijnen Beperkt als uw huidige uitvoeringsbeleid.
- Als u het uitvoeringsbeleid voor alle ondersteunde bereiken wilt bekijken:
krijgen-uitvoeringsbeleid -lijst
U moet het uitvoeringsbeleid wijzigen in RemoteSigned om lokale scripts zonder de fout uit te voeren. U kunt het uitvoeringsbeleid wijzigen via de app Instellingen en PowerShell.
Hoe PowerShell-uitvoeringsbeleid in te schakelen met behulp van de app Instellingen
U kunt het PowerShell-uitvoeringsbeleid wijzigen en instellen op RemoteSigned met behulp van de app Instellingen. Het enige dat u hoeft te doen, is de PowerShell-instellingen in de ontwikkelaarssectie aanpassen om het uitvoeringsbeleid te wijzigen om PowerShell-scriptuitvoering mogelijk te maken.
Uitvoeringsbeleid wijzigen via Instellingen:
- druk op Win + ik Se openenTdingen.
- Open de Privacy en beveiliging tabblad in het linkerdeelvenster.
- Klik vervolgens op Voor ontwikkelaars.
- Klik om uit te vouwen PowerShell sectie.
- Zet de schakelaar op wijzig het uitvoeringsbeleid zodat lokale PowerShell-scripts kunnen worden uitgevoerd zonder ondertekening - Vereist ondertekening voor externe scripts.
- Als u klaar bent, opent u PowerShell en typt u get uitvoeringsbeleid, en druk op Binnenkomen. Het uitvoeringsbeleid voor de huidige gebruiker is nu ingesteld op Op afstand ondertekend.
- Als u het uitvoeringsbeleid moet uitschakelen, schakelt u de PowerShell-schakelaar in en stelt u deze in op Uit.
Scripts laten uitvoeren in PowerShell met behulp van PowerShell
U kunt een PowerShell-cmdlet om het uitvoeringsbeleid in te stellen op RemoteSigned. De opdrachtregelinterface maakt het eenvoudig om het uitvoeringsbeleid snel te wijzigen zonder de app Instellingen te gebruiken.
Ook kan de app Instellingen alleen het uitvoeringsbeleid RemoteSigned in- of uitschakelen. Terwijl u met PowerShell ook andere beleidsregels en bereiken kunt instellen.
Het uitvoeringsbeleid wijzigen met PowerShell:
- Open PowerShell als beheerder.
- Typ in het PowerShell-venster de volgende opdracht en druk op Binnenkomen:
Set-ExecutionPolicy RemoteSigned
- Druk op als daarom wordt gevraagd A om de actie te bevestigen. Dit stelt de Op afstand ondertekend uitvoeringsbeleid voor alle gebruikers. Als u het uitvoeringsbeleid voor de Huidige gebruiker gebruik alleen de Scope-parameter gevolgd door de gebruikersnaam.
- Bijvoorbeeld om de Op afstand ondertekend uitvoeringsbeleid voor Huidige gebruiker, gebruik de volgende opdracht:
Set-ExecutionPolicy RemoteSgined -Domein Huidige gebruiker
- Vervangen Huidige gebruiker in de bovenstaande opdracht met andere gebruikers (Scope) volgens uw vereisten.
Scriptuitvoeringsbeleid verwijderen met PowerShell
Als u de uitvoering van scripts wilt uitschakelen, stelt u het uitvoeringsbeleid in op Ongedefinieerd met behulp van the Set_ExecutionPolicy cmdlet. Dit is een standaardstatus en voorkomt dat PowerShell scripts uitvoert.
De uitvoering van scripts uitschakelen met PowerShell:
- Open PowerShell met verhoogde rechten.
- Typ vervolgens de volgende opdracht en druk op Enter om de uitvoering van scripts voor alle gebruikers uit te schakelen:
Set-Uitvoeringsbeleid ongedefinieerd
- De bovenstaande opdracht stelt het standaard uitvoeringsbeleid in (ongedefinieerd) voor alle gebruikers. Als u de uitvoering van scripts voor een specifiek bereik wilt uitschakelen, gebruikt u de volgende opdracht:
Set-Uitvoeringsbeleid ongedefinieerd -Bereik huidige gebruiker
- De bovenstaande opdracht schakelt scriptuitvoering uit voor Huidige gebruiker.
Inzicht in uitvoeringsbeleid en bereik
Simpel gezegd, het uitvoeringsbeleid van PowerShell is een beleid dat bepaalt hoe PowerShell configuratiebestanden en scripts uitvoert. Het beoogde doel is om te voorkomen dat gebruikers per ongeluk kwaadaardige scripts uitvoeren. De zeven PowerShell-uitvoeringsbeleidslijnen zijn Standaard, Beperkt, RemoteSigned, AllSigned, Onbeperkt, Bypass en Ongedefinieerd.
In de onderstaande tabel wordt in het kort al het uitvoeringsbeleid van PowerShell uitgelegd:
Uitvoeringsbeleid |
Handhaving |
Standaard |
Stelt het standaard uitvoeringsbeleid in als Beperkt op Windows Client en RemoteSigned op Windows Server. |
AllSigned |
Maakt uitvoering van door uitgever ondertekende scripts mogelijk. |
Omzeilen |
Onbeperkte uitvoering van scripts voor grotere applicaties. |
Op afstand ondertekend |
Staat lokaal geschreven scriptuitvoering toe. Vereist digitale handtekeningen voor scripts die van internet zijn gedownload. |
Beperkt |
Staat geen scriptuitvoering toe, maar alleen individuele PowerShell-opdrachten. |
Ongedefinieerd |
Stelt het uitvoeringsbeleid in op Beperkt voor Windows-clients en RemoteSigned voor Windows Server. |
Onbeperkt |
Sta niet-ondertekende scriptuitvoering toe met een waarschuwing voor de scripts die van internet zijn gedownload. |
Bereik van uitvoeringsbeleid
U kunt uitvoeringsbeleid instellen voor een bepaald bereik in PowerShell. De vijf uitvoeringsbeleidsbereiken zijn Machinebeleid, Gebruikersbeleid, Proces, Huidige gebruiker, En Lokaal apparaat.
In de onderstaande tabel worden alle uitvoeringsbeleidsbereiken kort uitgelegd:
Bereik van uitvoeringsbeleid |
Handhaving |
Gebruikersbeleid |
Geconfigureerd door een groepsbeleid voor de huidige gebruiker. |
Machinebeleid |
Geconfigureerd door een Groepsbeleid voor alle gebruikers. |
Huidige gebruiker |
Geconfigureerd voor de huidige gebruiker en opgeslagen in de registersubsleutel HKEY_CURRENT_MACHINE. |
Lokaal apparaat |
Geconfigureerd voor alle gebruikers en opgeslagen in de registersubsleutel HKEY_CURRENT_MACHINE. |
Proces |
Heeft invloed op de huidige PowerShell-sessie en wordt automatisch verwijderd wanneer de sessie wordt gesloten. |
PowerShell-scriptuitvoeringsbeleid toevoegen of verwijderen op Windows
Scriptuitvoering op PowerShell is standaard uitgeschakeld voor Windows-clients en ingesteld op RemoteSigned voor Windows-server. Hoofdgebruikers kunnen echter het uitvoeringsbeleid wijzigen om lokale, ondertekende en niet-ondertekende PowerShell-scripts uit te voeren.
U kunt ook het uitvoeringsbeleid van PowerShell omzeilen door het script in een PowerShell-console te plakken of uw script ECHO in de standaardinvoer van PowerShell te plaatsen. Dit is handig als u scripts wilt uitvoeren zonder het uitvoeringsbeleid te wijzigen.