PowerShell hovorí "vykonávanie skriptov je v tomto systéme zakázané."

Snažím sa spustiť súbor [tag:cmd], ktorý volá skript [tag:powershell] zo súboru cmd.exe, a dostávam nasledujúcu chybu:

Management_Install.ps1 nemožno načítať, pretože vykonávanie skriptov je v tomto systéme zakázané.

Spustil som

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

a keď spustím Get-ExecutionPolicy z [tag:powershell], dostanem späť Unrestricted.

PS C:\Users\Administrator\> Get-ExecutionPolicy
Unrestricted

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> powershell .\Management_Install.ps1 1

WARNING: Running x86 PowerShell...

Súbor C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 nemožno načítať, pretože vykonávanie skriptov je v tomto systéme zakázané. Ďalšie podrobnosti nájdete v časti "get-help about_signing".

Na riadku:1 znak:25

  • .\Management_Install.ps1 <<<< 1
  • CategoryInfo : NotSpecified: (:) [], PSSecurityException
  • FullyQualifiedErrorId : RuntimeException
C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> PAUSE

Press any key to continue . . .

Systém je Windows Server 2008R2.

Čo robím zle?

Riešenie

Ak používate Windows Server 2008 R2, potom existuje x64 a x86 verzia prostredia PowerShell, v oboch prípadoch je potrebné nastaviť zásady vykonávania. Nastavili ste zásady vykonávania na oboch hostiteľoch?

Ako administrátor môžete nastaviť politiku vykonávania tak, že do okna PowerShell napíšete toto:

Set-ExecutionPolicy RemoteSigned

Viac informácií nájdete v časti Použitie príkazu Set-ExecutionPolicy Cmdlet.

Komentáre (6)

Túto zásadu môžete obísť pridaním -ExecutionPolicy ByPass pri spustení prostredia PowerShell

powershell -ExecutionPolicy ByPass -File script.ps1
Komentáre (5)

RemoteSigned: všetky skripty, ktoré ste sami vytvorili, budú spustené a všetky skripty stiahnuté z internetu budú musieť byť podpísané dôveryhodným vydavateľom.

OK, zásady zmeníte jednoduchým zadaním:

Set-ExecutionPolicy RemoteSigned
Komentáre (1)