Program PowerShell pravi "izvajanje skript je v tem sistemu onemogočeno."

Poskušam zagnati datoteko [tag:cmd], ki kliče skripto [tag:powershell] iz programa cmd.exe, in dobim spodnjo napako:

V tem sistemu ni mogoče naložiti datoteke Management_Install.ps1, ker je izvajanje skript onemogočeno.

Izvedel sem

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

in ko zaženem Get-ExecutionPolicy iz [tag:powershell], dobim nazaj 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...

Datoteke C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 ni mogoče naložiti, ker je izvajanje skript na tem sistemu onemogočeno. Za več podrobnosti glejte "get-help about_signing".

V vrstici: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 . . .

Sistem je Windows Server 2008R2.

Kaj delam narobe?

Rešitev

Če uporabljate Windows Server 2008 R2, sta na voljo različici x64 in x86 programa PowerShell, za obe je treba nastaviti politike izvajanja. Ali ste izvajalno politiko nastavili na obeh gostiteljih?

Kot administrator lahko politiko izvajanja nastavite tako, da v okno PowerShell vnesete tole:

Set-ExecutionPolicy RemoteSigned

Za več informacij glejte Using the Set-ExecutionPolicy Cmdlet.

Komentarji (6)

To politiko lahko obidete tako, da pri izvajanju programa PowerShell dodate -ExecutionPolicy ByPass.

powershell -ExecutionPolicy ByPass -File script.ps1
Komentarji (5)

RemoteSigned: vse skripte, ki ste jih ustvarili sami, se bodo zaganjale, vse skripte, prenesene iz interneta, pa bo moral podpisati zaupanja vreden izdajatelj.

V redu, politiko spremenite tako, da preprosto vnesete:

Set-ExecutionPolicy RemoteSigned
Komentarji (1)