À l'intérieur du code de Visual Studio, j'essaie d'exécuter un script.bat à partir de la ligne de commande, mais j'obtiens l'erreur suivante:
Le fichier C:\Theses_Repo\train-cnn\environment\Scripts\activate.ps1 ne peut pas être chargé car l'exécution des scripts est désactivée sur ce système.
Après avoir lu this j'ai essayé d'exécuter le code de Visual Studio en mode administrateur, pensant que le problème était une question de privilèges. Mais l'erreur jette quand même.
Exécutez VS-Code en tant qu'ADMIN.
Cela a résolu mon problème sur mon ordinateur personnel avec l'exécution de la nouvelle application my qui avait produit cette erreur lorsque j'ai ouvert VS-Code pour la première fois depuis le processus d'installation.
Si vous n'avez pas besoin de l'exécuter explicitement sur PowerShell, vous pouvez essayer de l'exécuter dans l'invite de commandes.
Tapez simplement cmd
et appuyez sur Entrée. Cela ouvrira l'invite de commande dans la fenêtre de terminal actuelle. Il se comportera comme une invite de commande normale.
Ce n'est pas un problème spécifique à VSCode, c'est un problème de système d'exploitation. Il existe différents niveaux pour la machine, l'utilisateur, le processus qui permettent aux scripts PowerShell de s'exécuter et il doit être activé.
S'il s'agit de votre machine, modifiez simplement la stratégie d'exécution en RemoteSigned ou sans restriction afin qu'elle s'applique à l'ensemble de votre système. Si vous souhaitez simplement l'utiliser dans VSCode, modifiez votre fichier de paramètres ou modifiez votre raccourci pour inclure la stratégie d'exécution que vous souhaitez utiliser. La recommandation est RemoteSigned. Cela signifie que tout le code local s'exécutera, mais tous les scripts distants doivent être signés.
S'il s'agit d'une machine d'entreprise dont l'exécution est définie sur Restreint, aucun code ne s'exécutera tant que ce paramètre n'aura pas été modifié. Vous pouvez toujours exécuter du code en le sélectionnant dans l'éditeur VSCode et en appuyant sur F8. Maintenant, s'ils ont appliqué cette politique, vous devez parler au service informatique pour qu'ils la changent pour vous.
Tout cela est détaillé dans les fichiers d'aide de PowerShell.
Get-Command -Name '*executionpolicy*' | ft -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Set-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
# get function / cmdlet details
(Get-Command -Name Get-ExecutionPolicy).Parameters
Get-help -Name Get-ExecutionPolicy -Full
Get-help -Name Get-ExecutionPolicy -Online
Get-help -Name Get-ExecutionPolicy -Examples
Get-ExecutionPolicy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Get-ExecutionPolicy -List
(Get-Command -Name Set-ExecutionPolicy).Parameters
Set-help -Name Set-ExecutionPolicy -Full
Set-help -Name Set-ExecutionPolicy -Online
Set-help -Name Set-ExecutionPolicy -Examples
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy -ExecutionPolicy Restricted
Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ExecutionPolicy} | Set-ExecutionPolicy -Force
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy AllSigned -Force
Get-ExecutionPolicy -List
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Undefined
Set-ExecutionPolicy -Scope Process -ExecutionPolicy AllSigned
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Notez que si votre organisation contrôle cela, à nouveau, parlez-leur avant d'essayer de contourner la stratégie , car s'ils l'ont fait, cela signifie également qu'ils le surveillent, et si vous le faites, cela savoir. J'ai vu des choses comme celle-ci engendrer des RPE. (Reprendre la production d'événements)