Estoy intentando ejecutar un archivo [tag:cmd] que llama a un script [tag:powershell] desde cmd.exe
, y estoy obteniendo el siguiente error:
No se puede cargar Management_Install.ps1
porque la ejecución de scripts está deshabilitada en este sistema.
He ejecutado
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
y cuando ejecuto Get-ExecutionPolicy
desde [tag:powershell], me devuelve 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...
El archivo
C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1
no se puede cargar porque la ejecución de scripts está deshabilitada en este sistema. Por favor, consulte "get-help about_signing`" para más detalles.
En la línea: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 . . .
El sistema es Windows Server 2008R2.
¿Qué estoy haciendo mal?
Si estás usando Windows Server 2008 R2 entonces hay una versión x64 y x86 de PowerShell, ambas tienen que tener sus políticas de ejecución establecidas. ¿Ha configurado la política de ejecución en ambos hosts?
Como Administrador, puede establecer la política de ejecución escribiendo esto en su ventana de PowerShell:
Set-ExecutionPolicy RemoteSigned
Para obtener más información, consulte Uso del cmdlet Set-ExecutionPolicy.
RemoteSigned: se ejecutarán todos los scripts que hayas creado tú mismo, y todos los scripts descargados de Internet deberán estar firmados por un editor de confianza.
Bien, cambie la política simplemente escribiendo:
Set-ExecutionPolicy RemoteSigned