J'ai essayé d'exécuter PowerShell comme mon terminal sur Windows dans pycharm, j'ai donc fait ce qui suit:
Cependant, quand j'essaye ceci, il indique qu'il ne peut pas exécuter mes scripts, et par conséquent j'obtiens l'erreur suivante: SecurityError
et l'ID entièrement qualifié est: UnAuthorizedAccess
.
Cela vient du fait que le terminal de pycharm ne peut pas exécuter mon Powershell_profile.ps1
fichier de profil.
Comment exécuter avec succès le terminal de Pycharm avec Powershell?
Ce que j'ai essayé jusqu'à présent, va dans mon répertoire PowerShell principal comme dans %windir%/system32/WindowsPowerShell/1.0/profile.ps1
, puis modifiez-le pour inclure les éléments suivants:
Set-ExecutionPolicy Unrestricted
Cependant, cela n'aide pas et j'obtiens la même erreur lorsque j'essaie d'ouvrir le terminal de pycharm.
J'ai également essayé d'exécuter pycharm en tant qu'administrateur, mais cela ne résout pas non plus le problème, et j'obtiens l'erreur identique susmentionnée.
J'ai remplacé cmd.exe par powershell.exe d'une manière plus simple et j'espère que cela peut aider. J'utilise webstorm2017 et Win10 os.
1.Trouvez l'emplacement exact de powershell.exe
. Dans le mien et je crois que dans la plupart des ordinateurs, l'emplacement serait C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
. Copiez le chemin entier dans votre presse-papiers.
2.Dans votre IDE ouvrez Fichier => Paramètre => Outils => Terminal, et collez le chemin dans le "Chemin du shell" vide.
3.Redémarrez le IDE et tout irait bien.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Accédez à l'exécutable PowerShell, cliquez avec le bouton droit, exécutez en tant qu'administrateur.
Dans l'invite, utilisez la même commande que vous avez essayée:
Set-ExecutionPolicy Unrestricted
Une fois cela fait, fermez PowerShell et essayez de le réutiliser à partir de votre application.
Remarque: Vous ne pouvez pas définir la politique d'exécution à partir d'un script, car la politique d'exécution par défaut vous empêche d'exécuter des scripts. (même si c'est le script de profil - toujours un script)
J'ai mis à jour le chemin powershell.exe dans IntelliJ -> Paramètres -> Terminal
Ouverture d'une instance PowerShell en mode Admin.
Réalisé Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Redémarrage d'IntelliJ et le problème a été résolu.
L'étape 3 est de réponse de ebelanger .
Dans la zone de texte par défaut du shell, vous pouvez ajouter l'option de ligne de commande de la stratégie d'exécution comme suit:
powershell.exe -Executionpolicy Unrestricted
Si vous utilisez Windows 8 x64, l'exécution des deux commandes ci-dessous peut vous aider. Ça a marché pour moi.
Set-ExecutionPolicy Unrestricted
start-job { Set-ExecutionPolicy Unrestricted -Force } -RunAs32
Crédit à un commentaire trouvé ici: Powershell sur Windows 7: Set-ExecutionPolicy pour les utilisateurs réguliers
Comme mentionné dans d'autres réponses, si après avoir défini powershell.exe
comme votre terimal dans IntelliJ → Paramètres → Outils → Terminal → Chemin du shell qu'il lance UnAuthorizedAccess
erreurs, la manière normale de résoudre ce problème consiste à modifier la politique d'exécution:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Notez que le niveau Unrestricted
est le moins sûr de tous, et vous pouvez généralement utiliser RemoteSigned
afin de désactiver les scripts non signés téléchargés à partir du Web jusqu'à ce que vous supprimiez manuellement Internet
ou Intranet
Zone.Identifier
d'eux, généralement avec le bouton Déverrouiller dans les propriétés du fichier.
Cependant, vous pouvez vous présenter à une occasion où vous ne pouvez pas modifier la stratégie d'exécution. Cela est généralement dû aux paramètres de sécurité de l'entreprise dans Active Directory. Dans PowerShell, cela correspond aux étendues MachinePolicy
et UserPolicy
. Un des principaux symptômes de cette situation est le message suivant:
Set-ExecutionPolicy: Windows PowerShell a correctement mis à jour votre stratégie d'exécution, mais le paramètre est remplacé par une stratégie définie à une portée plus spécifique. En raison de la substitution, votre Shell conservera sa politique d'exécution effective actuelle d'AllSigned. Tapez "Get-ExecutionPolicy -List" pour afficher vos paramètres de stratégie d'exécution. Pour plus d'informations, veuillez consulter "Get-Help Set-ExecutionPolicy".
Vous ne pouvez pas définir de stratégies d'exécution sur ces étendues avec PowerShell ou gpedit.msc. Les tentatives de modification de ces paramètres directement dans le registre sont également inefficaces: elles sont appliquées au redémarrage ou à la connexion, mais en même temps, elles sont réimportées depuis Active Directory. Cependant, bien que vous ne puissiez pas exécuter des scripts PowerShell arbitraires tout autour, pour les profils et autres scripts locaux qui ne sont modifiés que manuellement il y a toujours une solution :
Exécutez la commande suivante dans PowerShell pour créer les fichiers ceritificate root.pvk et root.cer - il vous demandera de définir puis de confirmer le mot de passe du certificat:
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
Dans le même dossier, exécutez la commande suivante pour importer les fichiers de certificat générés en tant que certificat auto-signé - il vous demandera le mot de passe défini ci-dessus:
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
Signez votre script de profil avec la commande suivante:
Set-AuthenticodeSignature "[script path]" @(Get-ChildItem cert:\CurrentUser\My -codesign)[0]
Lorsque vous exécutez un script signé avec l'auto-certification pour la première fois, PowerShell vous demandera de faire confiance au certificat comme ceci:
Le fichier [chemin du script] est publié par CN = PowerShell User. Cet éditeur n'est pas approuvé sur votre système. Exécutez uniquement les scripts des éditeurs de confiance.
[V] Ne jamais exécuter [D] Ne pas exécuter [R] Exécuter une fois [A] Toujours exécuter [?] Aide (la valeur par défaut est "D")
Répondez A
pour toujours exécuter des certificats auto-signés.
Maintenant, votre script de profil ne causera aucune erreur. Cependant, notez que la signature d'un certificat ajoute un bloc de signature à la fin de votre script contenant son hachage. Si vous êtes sur le point de modifier le script, supprimez ce bloc et, une fois la modification du script terminée, signez-le à nouveau en répétant l'étape 3.
Au moment d'écrire ces lignes (2018-9-20), un plugin PowerShell est désormais disponible ici .
J'ai installé la v1.1 dans PyCharm v2018.2.3 (Professional), et cela semble fonctionner comme un charme, sans jeu de mots.
Ce plugin fournit une prise en charge de type Intellisense des scripts PS1, ainsi qu'un terminal PowerShell intégré. Pour ouvrir le terminal, allez dans Outils> Console PowerShell ...
Il ne semble pas nécessaire de se moquer de tout type de paramètres ou d'autorisations pour le faire fonctionner. Ça marche.