PowerShell saka "Skriptu izpilde šajā sistēmā ir atspējota."

Es mēģinu palaist [tag:cmd] failu, kas izsauc [tag:powershell] skriptu no cmd.exe, un es saņemu tālāk minēto kļūdu:

_Uzstādīšana.ps1` nevar tikt ielādēts, jo šajā sistēmā ir atspējota skriptu izpilde.

Es esmu palaidis

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

un, kad no [tag:powershell] palaidu Get-ExecutionPolicy, man atgriežas 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...

Failu C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 nevar ielādēt, jo šajā sistēmā ir atspējota skriptu izpilde. Sīkāku informāciju skatiet "get-help about_signing".

At line:1 char: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 . . .

Sistēma ir Windows Server 2008R2.

Ko es daru nepareizi?

Risinājums

Ja izmantojat Windows Server 2008 R2, ir pieejama x64 un x86 PowerShell versija, kurām abām ir jāiestata izpildes politikas. Vai esat iestatījis izpildes politiku abos resursdatoros?

administrators varat iestatīt izpildes politiku, ievadot PowerShell logā šādu tekstu:

Set-ExecutionPolicy RemoteSigned

Lai iegūtu vairāk informācijas, skatiet Izmantojot Set-ExecutionPolicy Cmdlet.

Komentāri (6)

Var apiet šo politiku, pievienojot -ExecutionPolicy ByPass, kad palaižat PowerShell.

powershell -ExecutionPolicy ByPass -File script.ps1
Komentāri (5)

RemoteSigned: tiks palaisti visi paša izveidotie skripti, un visiem no interneta lejupielādētajiem skriptiem būs jābūt parakstītiem no uzticama izdevēja.

Labi, mainiet politiku, vienkārši ierakstot:

Set-ExecutionPolicy RemoteSigned
Komentāri (1)