Powershell File cannot be loaded because running scripts is disabled on this system

By | 04/05/2022

Last Updated on 27/06/2023 by administrator

Powershell cannot be loaded because running scripts is disabled on this system

Problém:

File <script> cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/g
o.microsoft.com/fwlink/?LinkID=135170
, je hláška, která se může objevit při spustěni scriptu v Powershell ve Windows 10. Toto přesněji ukazuje hláška níže:

PS C:\Windows\system32> PowerShell C:\pingbeep.ps1
C:\pingbeep.ps1 : File C:\pingbeep.ps1 cannot be loaded because running scripts is disabled on this system. 
For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ C:\pingbeep.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Vysvětlení:

Řešením může moct změnit konfiguraci PowerShell Execution Policy, což jsou spouštěcí politiky v PowerShellu. Ty definují, zda je vyžadováno pro spouštění skriptů, aby byly digitálně podepsány či nikoliv.

Windows 10 definuje politiku Restricted a ve Windows Server zase politiku RemoteSigned.

Jednotlivé typy Execution policy jsou definované zde [2].

Řešení:

1. Otevřít Powershell jako administrátor:

powershell administrator

2. Aplikovat příkaz níže, který ukáže aktuální konfiguraci PowerShell Execution Policy:

Get-ExecutionPolicy -List

Výstup příkazu Get-ExecutionPolicy -List ukazuje, že aktuální okno Powershellu pro uživatele je nastaveno na Restricted, díky kterému nebylo možné spustit script:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser      Restricted
 LocalMachine    RemoteSigned

Pro změnu Aplikovat příkaz níže:

Set-ExecutionPolicy Unrestricted

Je možné že po tomto příkazu vyskočí chyba níže:

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y
Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a
 policy defined at a more specific scope.  Due to the override, your shell will retain its current effective execution
policy of Restricted. Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more information ple
ase see "Get-Help Set-ExecutionPolicy".
At line:1 char:1
+ Set-ExecutionPolicy Unrestricted
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
    + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

3. V tomto případě zadat příkaz níže, který vypne Execution Policy pro uživatele

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force

4. Znovu spustit script:

PS C:\Windows\system32> PowerShell C:\pingbeep.ps1
01/19/2022 17:20:28 Unreachable: 192.168.0.8

Zdroj:

[1] https://stackoverflow.com/questions/27753917/how-do-you-successfully-change-execution-policy-and-enable-execution-of-powershe

[2] https://www.michalzobec.cz/powershell-jak-deaktivovat-powershell-execution-policy-8149

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *