Ik probeer een [tag:cmd] bestand uit te voeren dat een [tag:powershell] script aanroept vanuit cmd.exe
, en ik krijg de onderstaande foutmelding:
Management_Install.ps1
kan niet worden geladen omdat het uitvoeren van scripts is uitgeschakeld op dit systeem.
Ik heb
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
en wanneer ik Get-ExecutionPolicy
van [tag:powershell] uitvoer, krijg ik Unrestricted
terug.
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...
Bestand
C:
ProjectsMicrosoft.Practices.ESB/SourceSamplesManagement PortalInstallScriptsManagement_Install.ps1kan niet worden geladen omdat het uitvoeren van scripts is uitgeschakeld op dit systeem. Zie "
get-help about_signing`" voor meer details.
Op regel:1 char:25
.\Management_Install.ps1
<<<< 1
- CategoryInfo : Niet gespecificeerd: (:) [], PSSecurityException
- FullyQualifiedErrorId : RuntimeException
C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> PAUSE
Press any key to continue . . .
Het systeem is Windows Server 2008R2.
Wat doe ik verkeerd?
Als u Windows Server 2008 R2 gebruikt, dan is er een x64 en x86 versie van PowerShell die beide hun uitvoeringsbeleid moeten hebben ingesteld. Hebt u het uitvoeringsbeleid op beide hosts ingesteld?
Als Administrator kunt u het uitvoeringsbeleid instellen door dit in uw PowerShell-venster te typen:
Set-ExecutionPolicy RemoteSigned
Voor meer informatie, zie Het gebruik van de Set-ExecutionPolicy Cmdlet.
RemoteSigned: alle scripts die u zelf hebt gemaakt, zullen worden uitgevoerd, en alle scripts die u van het Internet downloadt, zullen door een vertrouwde uitgever moeten worden ondertekend.
OK, verander het beleid door simpelweg te typen:
Set-ExecutionPolicy RemoteSigned