Pokud se pokusíte spustit skript prostředí PowerShell, který nebyl podepsán důvěryhodným vydavatelem, může dojít k následující chybě zabezpečení:
„script.ps1 :Soubor path\script.ps1 nelze načíst. Soubor path\script.ps1 není digitálně podepsán. Tento skript nelze v aktuálním systému spustit.“

Tato chyba zabezpečení může nastat, pokud je zásada spouštění prostředí PowerShell nastavena na Allsigned nebo Remotesigned a skript není podepsán.

Zásada spouštění Allsigned umožňuje spouštění všech skriptů prostředí Powershell, které jsou podepsány. Před spuštěním skriptu budete vyzváni k potvrzení, že důvěřujete vydavateli, který skript podepsal.

Zásada vzdáleného spouštění omezuje spouštění stažených skriptů, které nejsou podepsané. Skripty, které jsou spouštěny z místního počítače, nemusí být podepsané.

Řešení

Existují různé metody, jak tuto chybu překonat. Můžete zvolit buď podepsání skriptu prostředí PowerShell, změnu zásad spouštění, obejití zásad nebo odblokování souboru tak, aby mohl být jednou spuštěn v dané relaci.

Kontrola zásad provádění

Nejprve zkontrolujte zásady provádění pomocí rutiny Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

Parametr seznamu v rutině Get-ExecutionPolicy vám sdělí zásady provádění pro jednotlivé obory.

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

Výchozí zásady provádění pro všechny verze systému Windows s výjimkou systému Windows 2012 R2 jsou Restricted. Výchozí zásadou provádění v systému Windows 2012 R2 je RemoteSigned.

Změna zásad provádění trvale

Nejjednodušší, ale nezabezpečený způsob, jak se zbavit tohoto chybového hlášení, je změna zásady provádění pomocí rutiny SetExecutionPolicy. Následující příkaz nastaví zásady provádění na neomezené.

PS C:\> Set-ExecutionPolicy unrestricted

Stisknutím tlačítka Y po výzvě změnu potvrdíte. Změna zásad se aktualizuje v registru a zůstane zachována, dokud ji znovu nezměníte.

Dočasná změna zásad provádění

Místo trvalé změny zásad provádění můžete nastavit jiné zásady pro jednu relaci prostředí PowerShell. To se provádí pomocí parametru ExecutionPolicy souboru powershell.exe

Otevřete příkazový řádek nebo prostředí PowerShell a spusťte příkaz:

C:\> powershell.exe -executionpolicy -bypass

Výše uvedený příkaz otevře relaci prostředí PowerShell s politikou provádění pro tuto relaci nastavenou na hodnotu Bypass, což znamená, že nebude nic blokováno.

Odblokování staženého souboru

Pokud jsou zásady provádění nastaveny na RemoteSigned, jsou soubory stažené z internetu (nebo z e-mailů) blokovány, aby bylo chráněno spuštění nebezpečných skriptů. Pokud věříte, že obsah skriptu je bezpečný, můžete jej odblokovat pro spuštění v relaci pomocí rutiny Unblock-File

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

Po trvalé nebo dočasné změně zásad provádění pro relaci nebo konkrétní skript můžete skript dále spouštět, ale předtím se ujistěte, že obsah skriptu nepoškodí váš počítač

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.