PowerShell är inte digitalt signerad – fixa det nu

PowerShell är inte ett digitalt signerat fel som ofta utlöser medan användare Kör PowerShell-skript. Det händer vanligtvis på grund av de värden som ställts in för PowerShell-Exekveringspolicyn.

som en del av våra Serverhanteringstjänster hjälper vi våra kunder att regelbundet åtgärda windows-relaterade fel.

Låt oss idag diskutera möjliga orsaker och korrigeringar för detta fel.

Vad är PowerShell är inte digitalt signerat fel?

När du försöker köra ett PowerShell-skript som inte har signerats av betrodd Utgivare ser användare ofta ett säkerhetsfel ”PowerShell är inte digitalt signerad” som visas nedan:

det här säkerhetsfelet kan uppstå när vi har en Allsigned eller RemoteSigned PowerShell-exekveringspolicy.

låt oss nu diskutera några möjliga metoder för att åtgärda detta fel.

hur man fixar PowerShell är inte ett digitalt signerat fel?

det finns några möjliga metoder för att åtgärda detta fel. Låt oss ta en titt på var och en av dem en efter en.

kontrollera och ändra exekveringspolicy

det första steget här är att kontrollera Exekveringspolicyn. Vi kan köra Get-ExecutionPolicy cmdlet för att få Exekveringspolicyn. Listparametern I Get-ExecutionPolicy cmdlet berättar policyn för varje omfattning.

PS C:\> Get-ExecutionPolicy -list

När vi har en uppfattning om Exekveringspolicyn är den enklaste men osäkra metoden att bli av med detta felmeddelande att ändra Exekveringspolicyn till obegränsad.

vidare kan vi ändra Exekveringspolicyn med SetExecutionPolicy cmdlet. Följande kommando ställer in exekveringspolicyn till obegränsad:

PS C:> Set-ExecutionPolicy unrestricted.

Tryck på Y för att bekräfta ändringen när du uppmanas.

den uppdaterar sedan policyändringen i registret och förblir så tills vi ändrar den igen

kringgå den aktuella PowerShell-sessionen

för att ändra exekveringspolicyn tillfälligt kan vi använda Set-ExecutionPolicy cmdlet med ByPass-inställning.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy ByPass

detta enkla kommando ovan ställer in exekveringspolicyn för att kringgå den aktuella PowerShell-sessionen. När vi stänger denna PowerShell-session förlorar den Dessa inställningar.

acceptabla värden för ExecutionPolicy parameter

nedan är detaljerna i acceptabla värden för-ExecutionPolicy parameter:

  • begränsad. Laddar inte konfigurationsfiler eller Kör skript. Begränsad är standard exekveringspolicyn.
  • AllSigned. Kräver en betrodd utgivare att underteckna alla skript och konfigurationsfiler, inklusive skript som vi skriver på den lokala datorn.
  • RemoteSigned. Kräver att en betrodd utgivare signerar alla skript och konfigurationsfiler som hämtas från Internet.
  • obegränsad. Laddar alla konfigurationsfiler och kör alla skript. Ber om tillstånd om vi kör ett osignerat skript som laddas ner från Internet.
  • Bypass. Kommer inte att blockera något och det finns inga varningar eller uppmaningar.
  • Odefinierad. Tar bort den för närvarande tilldelade exekveringsprincipen från det aktuella omfånget. Den här parametern tar inte bort en exekveringsprincip som anges i ett Grupprincipomfång.

standardomfånget för kommandot Set-ExecutionPolicy är LocalMachine. Vi kan också ange utrymme för policy genom att lägga till-Scope parameter. Till exempel inkluderar några av de omfattningar som vi kan ställa in:

  • Process: exekveringspolicyn påverkar endast den aktuella PowerShell-processen.
  • CurrentUser: exekveringspolicyn påverkar endast den aktuella användaren.
  • LocalMachine: exekveringspolicyn påverkar alla användare av datorn.

om du vill ta bort en exekveringsprincip från ett visst omfång anger du exekveringspolicyn för det omfånget till Odefinierat.

avblockera den nedladdade filen

För RemoteSignedExecution Policy, underteckna alla skript och konfigurationsfiler som hämtas från Internet eller från e-post av en betrodd utgivare.

om vi litar på att innehållet i skriptet är säkert kan vi avblockera det för att köra på sessionen med hjälp av cmdlet Unblock-File:

PS C:> Unblock-File -Path C:Downloadsscript1.ps1

slutsats

kort sagt, PowerShell är inte digitalt signerad säkerhetsfel kan uppstå när PowerShell-Exekveringspolicyn är inställd på AllSigned eller RemoteSigned. Idag såg vi hur våra supportingenjörer åtgärdar detta fel.

Lämna ett svar

Din e-postadress kommer inte publiceras.