web-dev-qa-db-fra.com

Erreur cmd du code Visual Studio: impossible à charger car l'exécution des scripts est désactivée sur ce système

À 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.

16
Ricardo Rocha

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.

1
Jacob Fortuna

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.

1
bula

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)

0
postanote