När du försöker köra ett PowerShell-skript som inte har signerats av en betrodd utgivare kan du få följande säkerhetsfel:
”script.ps1 :File path\script.ps1 cannot be loaded. Filen path\script.ps1 är inte digitalt signerad. Du kan inte köra det här skriptet på det aktuella systemet.”

Detta säkerhetsfel kan uppstå när PowerShells exekveringspolicy är inställd på Allsigned eller Remotesigned och skriptet inte är signerat.

Exekveringspolicyn Allsigned tillåter exekvering av alla Powershell-skript som är signerade. Innan du kör skriptet uppmanas du att bekräfta att du litar på utgivaren som har signerat skriptet.

Principen för fjärrstyrd körning begränsar körningen av nedladdade skript som inte är signerade. Skript som exekveras från den lokala datorn behöver inte vara signerade.

Lösning

Det finns olika metoder för att komma till rätta med det här felet. Du kan välja att antingen signera PowerShell-skriptet, ändra exekveringspolicyn, kringgå policyn eller avblockera filen så att den kan köras en gång på den sessionen.

Kontrollera exekveringspolicy

Först av allt kontrollerar du din exekveringspolicy med hjälp av cmdlet Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

Listanparametern i cmdlet Get-ExecutionPolicy talar om exekveringspolicyn för varje scope.

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

Den förvalda exekveringspolicyn för alla Windows-versioner utom Windows 2012 R2 är Restricted. Standardutförandepolicyn i Windows 2012 R2 är RemoteSigned.

Ändra utförandepolicy permanent

Den enklaste men osäkra metoden för att bli av med det här felmeddelandet är att ändra ExecutionPolicy med hjälp av cmdlet SetExecutionPolicy. Följande kommando ställer in exekveringsprincipen till obegränsad.

PS C:\> Set-ExecutionPolicy unrestricted

Tryck på Y för att bekräfta ändringen när du blir tillfrågad. Policyändringen uppdateras i registret och finns kvar tills du ändrar den igen.

Ändra exekveringspolicy tillfälligt

Istället för att ändra exekveringspolicyn permanent kan du ställa in en annan policy för en enskild PowerShell-session. Detta görs med hjälp av parametern ExecutionPolicy i powershell.exe

Öppna en kommandotolk eller PowerShell och kör kommandot:

C:\> powershell.exe -executionpolicy -bypass

Ovanstående kommando öppnar en PowerShell-session med exekveringspolicy för den sessionen inställd på Bypass, vilket innebär att ingenting blockeras.

Unblockering av en fil som laddades ner

När exekveringspolicyn är RemoteSigned blockeras filer som laddas ner från internet (eller från e-post) för att skydda dig från att köra osäkra skript. Om du litar på att innehållet i skriptet är säkert kan du avblockera det så att det kan köras i din session med hjälp av cmdlet Unblock-File

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

När du har ändrat exekveringspolicyn permanent eller tillfälligt för en session eller ett visst skript kan du fortsätta att köra skriptet, men innan du gör det måste du försäkra dig om att innehållet i skriptet inte skadar din dator

Lämna ett svar

Din e-postadress kommer inte publiceras.