J'essaie d'exécuter un fichier [tag:cmd] qui appelle un script [tag:powershell] depuis cmd.exe
, et j'obtiens l'erreur suivante :
Management_Install.ps1
ne peut être chargé car l'exécution de scripts est désactivée sur ce système.
J'ai exécuté
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
et lorsque j'exécute Get-ExecutionPolicy
à partir de [tag:powershell], j'obtiens Unrestricted
en retour.
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...
Le fichier
C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1
ne peut pas être chargé car l'exécution des scripts est désactivée sur ce système. Pour plus de détails, veuillez consulter la section "get-help about_signing
" ;.
A la ligne: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 . . .
Le système est Windows Server 2008R2.
Qu'est-ce que je fais de mal ?
Si vous utilisez [Windows Server 2008][1] R2, il existe une version x64 et x86 de PowerShell qui doivent toutes deux avoir leur stratégie d'exécution définie. Avez-vous défini la stratégie d'exécution sur les deux hôtes ?
En tant qu' Administrateur, vous pouvez définir la politique d'exécution en tapant ceci dans votre fenêtre PowerShell :
Set-ExecutionPolicy RemoteSigned
Pour plus d'informations, voir [Using the Set-ExecutionPolicy Cmdlet][2].
[1] : https://en.wikipedia.org/wiki/Windows_Server_2008 [2] : https://docs.microsoft.com/powershell/module/microsoft.powershell.security/set-executionpolicy
RemoteSigned : tous les scripts que vous avez créés vous-même seront exécutés, et tous les scripts téléchargés depuis l'Internet devront être signés par un éditeur de confiance.
OK, changez la politique en tapant simplement :
Set-ExecutionPolicy RemoteSigned