Kun yrität suorittaa PowerShell-skriptin, jota ei ole allekirjoitettu luotettavalla julkaisijalla, saatat saada seuraavan tietoturvavirheen:
”script.ps1 :File path\script.ps1 cannot be loaded. Tiedostoa path\script.ps1 ei ole digitaalisesti allekirjoitettu. Tätä komentosarjaa ei voi suorittaa nykyisessä järjestelmässä.”

Tämä tietoturvavirhe voi ilmetä, kun PowerShellin suorituskäytännöksi on asetettu Allsigned tai Remotesigned ja komentosarjaa ei ole allekirjoitettu.

Allsigned-toteutuskäytäntö sallii kaikkien allekirjoitettujen Powershell-komentosarjojen suorittamisen. Ennen komentosarjan suorittamista sinua pyydetään vahvistamaan, että luotat komentosarjan allekirjoittaneeseen julkaisijaan.

Kaukosuorituskäytäntö rajoittaa sellaisten ladattujen komentosarjojen suorittamista, joita ei ole allekirjoitettu. Paikallisesta tietokoneesta suoritettavia komentosarjoja ei tarvitse allekirjoittaa.

Ratkaisu

Tämän virheen voittamiseen on erilaisia menetelmiä. Voit joko allekirjoittaa PowerShell-skriptin, muuttaa suorituskäytäntöä, ohittaa käytännön tai poistaa tiedoston eston, jotta se voidaan suorittaa kerran kyseisessä istunnossa.

Tarkista suorituskäytäntö

Tarkista ensin suorituskäytäntösi käyttämällä komentoa Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

Get-ExecutionPolicy-komentokomennon listaparametri kertoo suorituskäytännön kullekin toimialueelle.

PS C:\> Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned

Kaikkien Windows-versioiden oletusarvoinen suorituskäytäntö Windows 2012 R2:ta lukuun ottamatta on Restricted. Windows 2012 R2:n oletussuorituskäytäntö on RemoteSigned.

Suorituskäytännön muuttaminen pysyvästi

Helpoisin mutta epävarma tapa päästä eroon tästä virheilmoituksesta on muuttaa ExecutionPolicy-käytäntöä SetExecutionPolicy-cmdletillä. Seuraava komento asettaa ExecutionPolicyn arvoksi unrestricted.

PS C:\> Set-ExecutionPolicy unrestricted

Vahvista muutos kehotettaessa painamalla Y. Käytäntömuutos päivitetään rekisteriin, ja se pysyy voimassa, kunnes muutat sitä uudelleen.

Toteutuskäytännön muuttaminen tilapäisesti

Toteutuskäytännön pysyvän muuttamisen sijasta voit asettaa erilaisen käytännön yksittäiselle PowerShell-istunnolle. Tämä tehdään käyttämällä powershell.exe:n ExecutionPolicy-parametria

Avaa komentorivi tai PowerShell ja suorita komento:

C:\> powershell.exe -executionpolicy -bypass

Yllä olevalla komennolla avataan PowerShell-istunto, jonka suorituspolitiikaksi on asetettu Bypass, mikä tarkoittaa, että mitään ei estetä.

Ladatun tiedoston eston poistaminen

Kun suorituskäytäntönä on RemoteSigned, Internetistä (tai sähköposteista) ladatut tiedostot estetään suojaamaan vaarallisten skriptien suorittamista. Jos luotat siihen, että komentosarjan sisältö on turvallinen, voit poistaa sen eston, jotta se voidaan suorittaa istunnossa Unblock-File-sentrolilla

PS C:\> Unblock-File -Path C:\Downloads\script1.ps1

Kun olet muuttanut istunnon tai tietyn komentosarjan suorituskäytäntöä pysyvästi tai tilapäisesti, voit jatkaa komentosarjan suorittamista, mutta ennen kuin teet sen, varmista, että komentosarjan sisältö ei vahingoita tietokonettasi

.

Vastaa

Sähköpostiosoitettasi ei julkaista.