powershell intellij-idea pycharm

Uso de Powershell como terminal en IDE de IDEA de IntelliJ como PyCharm, PHPStorm o RubyMine



intellij-idea (9)

He estado intentando ejecutar powershell como mi terminal en windows en pycharm, así que hice lo siguiente:

Sin embargo, cuando intento esto, dice que no puede ejecutar mis scripts y, por lo tanto, recibo el siguiente error: SecurityError y la identificación completamente calificada es: UnAuthorizedAccess .

Esto se debe al hecho de que el terminal de pycharm no puede ejecutar mi archivo de perfil Powershell_profile.ps1 .

¿Cómo puedo ejecutar con éxito la terminal de Pycharm con Powershell?

Lo que he intentado hasta ahora, es ingresar a mi directorio principal de powershell como en %windir%/system32/WindowsPowerShell/1.0/profile.ps1 , y luego cambiarlo para incluir lo siguiente:

Set-ExecutionPolicy Unrestricted

Sin embargo, esto no ayuda, y recibo el mismo error cuando intento abrir la terminal de pycharm.

También he intentado ejecutar pycharm como administrador, sin embargo, esto tampoco resuelve el problema y recibo el mismo error mencionado anteriormente.


  1. Actualicé la ruta de powershell.exe en IntelliJ -> Configuración -> Terminal

  2. Abrió una instancia de powershell en modo Admin.

  3. Set-ExecutionPolicy Unrestricted -Scope CurrentUser

  4. Se reinició IntelliJ y se resolvió el problema.

El paso 3 es de la respuesta de ebelanger .


A partir de este escrito (2018-9-20), ahora hay un complemento de PowerShell disponible here .

He instalado v1.1 en PyCharm v2018.2.3 (Profesional), y parece funcionar como un amuleto, sin juego de palabras.

Este complemento proporciona soporte de tipo Intellisense para los scripts de PS1, así como un terminal PowerShell integrado. Para abrir el terminal, vaya a Herramientas> Consola PowerShell ...

Parece que no hay necesidad de revolcarse con ningún tipo de configuración o permisos para que funcione. Simplemente funciona.


Como se mencionó en otras respuestas, si después de configurar powershell.exe como su terimal en IntelliJ → Configuración → Herramientas → Terminal → Shell, UnAuthorizedAccess errores de acceso no UnAuthorizedAccess , la forma normal de resolver esto es alterar la política de ejecución:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Tenga en cuenta que el nivel Unrestricted es el menos seguro de todos, y por lo general puede RemoteSigned para deshabilitar los scripts sin firmar descargados de la web hasta que elimine manualmente Internet o Intranet Zone.Identifier .

Sin embargo, puede correr a una ocasión en la que no pueda cambiar la política de ejecución. Por lo general, eso se debe a la configuración de seguridad corporativa en Active Directory. En PowerShell, eso corresponde a los ámbitos MachinePolicy y UserPolicy . Un síntoma principal de esta situación es el siguiente mensaje:

Set-ExecutionPolicy: Windows PowerShell actualizó su política de ejecución con éxito, pero la configuración está anulada por una política definida en un ámbito más específico. Debido a la anulación, su shell mantendrá su actual política de ejecución efectiva de AllSigned. Escriba "Get-ExecutionPolicy -List" para ver la configuración de la directiva de ejecución. Para obtener más información, consulte "Get-Help Set-ExecutionPolicy".

No puede establecer políticas de ejecución en estos ámbitos con PowerShell o gpedit.msc. Los intentos de cambiar esta configuración directamente en el registro también son ineficaces: se aplican al reiniciar o iniciar sesión, pero al mismo tiempo se reimportan desde Active Directory. Sin embargo, aunque no podrá ejecutar todos los scripts de PowerShell arbitrarios, para los perfiles y otros scripts locales que solo se modifican manualmente , todavía hay una solución :

  1. Ejecute el siguiente comando en PowerShell para crear los archivos ceritificate root.pvk y root.cer. Le pedirá que defina y luego confirme la contraseña del certificado:

    makecert -n "CN=PowerShell Local Certificate Root" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine

  2. En la misma carpeta, ejecute el siguiente comando para importar los archivos de certificado generados como su certificado autofirmado: le pedirá la contraseña que se definió anteriormente:

    makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer

  3. Firme su script de perfil con el siguiente comando:

    Set-AuthenticodeSignature "[script path]" @(Get-ChildItem cert:/CurrentUser/My -codesign)[0]

  4. Al ejecutar un script firmado con autocertificado por primera vez, PowerShell le preguntará si confía en el certificado de esta manera:

    El archivo [ruta del script] es publicado por CN = PowerShell User. Este editor no es de confianza en su sistema. Sólo ejecute scripts de editores de confianza.

    [V] Nunca ejecute [D] No ejecute [R] Ejecute una vez [A] Siempre ejecute [?] Ayuda (el valor predeterminado es "D")

    Responda A para ejecutar siempre certificados autofirmados.

Ahora su script de perfil no causará ningún error. Sin embargo, tenga en cuenta que firmar un certificado agrega un bloque de firma al final de su script que contiene su hash. Si está a punto de modificar el script, elimine ese bloque y, una vez que haya terminado de editar el script, vuelva a firmarlo repitiendo el paso 3.


En el Default TextBox del Shell puede agregar la opción de línea de comando de la política de ejecución de la siguiente manera:

powershell.exe -Executionpolicy Unrestricted


He reemplazado cmd.exe con powershell.exe de una manera más simple y espero que pueda ayudar. Estoy usando webstorm2017 y Win10 os.

1.Encuentre la ubicación exacta de powershell.exe . En la mía y creo que en la mayoría de las computadoras, la ubicación sería C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe Copie la ruta completa en su portapapeles.

2.En su IDE, abra Archivo => Configuración => Herramientas => Terminal, y pegue la ruta en "Ruta de Shell" en blanco.

3. Reinicie el IDE y todo estaría bien.



Vaya al archivo ejecutable de PowerShell, haga clic con el botón derecho y ejecute como administrador.

Desde el indicador, use el mismo comando que intentó:

Set-ExecutionPolicy Unrestricted

Una vez hecho esto, cierre PowerShell e intente usarlo nuevamente desde su aplicación.

Nota: No puede establecer la política de ejecución desde un script, ya que la política de ejecución predeterminada le impide ejecutar scripts. (incluso si es la secuencia de comandos de perfil - sigue siendo una secuencia de comandos)


Para WebStorm y PowerShell 6+ en Windows 10. Simplemente siga esta captura de pantalla y cambie el cmd.exe predeterminado a pwsh.exe desde la configuración. Finalmente reinicie el ide. ¡Hecho!


Set-ExecutionPolicy Unrestricted -Scope CurrentUser