PowerShell sanoo "Skriptien suoritus on poistettu käytöstä tässä järjestelmässä."

Yritän ajaa [tag:cmd]-tiedostoa, joka kutsuu [tag:powershell]-skriptiä `cmd.exe-ohjelmasta, ja saan alla olevan virheen:

Management_Install.ps1 ei voida ladata, koska komentosarjojen suorittaminen on poistettu käytöstä tässä järjestelmässä.

Olen suorittanut

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

ja kun suoritan Get-ExecutionPolicy [tag:powershell], saan takaisin 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...

Tiedostoa C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 ei voida ladata, koska komentosarjojen suoritus on poistettu käytöstä tässä järjestelmässä. Lisätietoja on kohdassa "get-help about_signing".

Rivillä:1 merkkijono:25

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

Press any key to continue . . .

Järjestelmä on Windows Server 2008R2.

Mitä teen väärin?

Ratkaisu

Jos käytät Windows Server 2008 R2:ta, PowerShellistä on olemassa x64- ja x86-versio, joiden molempien suorituskäytännöt on määritettävä. Asetitko suorituspolitiikan molemmille isännille?

Administraattorina voit asettaa suorituskäytännön kirjoittamalla tämän PowerShell-ikkunaan:

Set-ExecutionPolicy RemoteSigned

Lisätietoja on kohdassa Set-ExecutionPolicy Cmdlet -komennon käyttäminen.

Kommentit (6)

Voit ohittaa tämän käytännön lisäämällä -ExecutionPolicy ByPass, kun suoritat PowerShelliä.

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

RemoteSigned: kaikki itse luodut komentosarjat suoritetaan, ja kaikkien Internetistä ladattujen komentosarjojen on oltava luotettavan julkaisijan allekirjoittamia.

OK, muuta käytäntöä kirjoittamalla yksinkertaisesti:

Set-ExecutionPolicy RemoteSigned
Kommentit (1)