Impossible de définir Powershell ExecutionPolicy pour CurrentUser

11

Voici un exemple des commandes que j'exécute:

PS C:\> Get-ExecutionPolicy -List 

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted


PS C:\> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted

Je veux le régler CurrentUsersur Unrestricted, mais je n'arrive pas à le faire. J'ai vérifié les stratégies de groupe en place, comme indiqué dans ce document MSDN , mais je n'ai rien trouvé de configuré.

Un indice sur la façon dont je peux régler cela?

CamronBute
la source
Je ne suis pas en mesure de reproduire cela. Cela fonctionne comme prévu sur ma machine. Obtenez-vous des erreurs?
briantist
@briantist C'est un bogue de Windows 10.
CamronBute

Réponses:

11

Comme tous les autres l'ont dit, cela semble être un bogue dans la version préliminaire de Windows 10. Je l'ai fait fonctionner en fournissant simplement le paramètre -Force.

Réglage pour la machine locale:

Set-ExecutionPolicy RemoteSigned -Force

Réglage pour l'utilisateur actuel:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

ddcruver
la source
3

Cela semble être un bogue dans Windows 10. J'ai dû créer la clé HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellet créer une valeur de chaîne dans cette clé appelée ExecutionPolicyavec les données Unrestrictedavant que cela fonctionne. Même alors, je n'arrive pas à le changer sans modifier le registre.

CamronBute
la source
2

J'avais un problème de politique PowerShell plus généralisé que l'OP, mais une combinaison de réponses trouvées ici et ailleurs a finalement été nécessaire pour que mon édition anniversaire Win10 mette correctement à jour ses politiques:

1) Assurez-vous que cette entrée de registre existe et qu'elle est définie sur le niveau de sécurité le plus bas que vous souhaitez autoriser: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Assurez-vous que cette entrée de registre existe et qu'elle est définie sur le niveau de sécurité le plus bas que vous souhaitez autoriser: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) Mettez à jour votre stratégie de groupe en en cours d'exécution gpedit.mscet accédez à Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Sélectionner Turn on Script Execution, puis Modifier policy settingavec Enabledet dans la case en dessous qui dit Execution Policy, définissez-le surAllow All Scripts

Après avoir fait tout cela, vous pouvez utiliser la réponse de ddcruver en mettant à jour vos politiques en fonction de ce que vous voulez. Si vous définissez vos stratégies sur Non restreint, je vous conseillerais de définir tous les paramètres qui remplissent Get-ExecutionPolicy -Listà quelque chose de plus restrictif, comme RemoteSigned, car les scripts PowerShell malveillants sont l'une des principales causes des logiciels malveillants Windows basés sur la mémoire.

kayleeFrye_onDeck
la source
1

Je ne vois pas le bogue dans mon installation de Windows 10. J'ai simplement effectué l'installation à l'aide de VMWare Workstation 11 et construit une machine virtuelle. J'ai exécuté ce qui suit sans apporter de modifications avant:

entrez la description de l'image ici

Si vous souhaitez connaître la version de Windows 10, j'ai: 10.0.10074


la source
2
Je vois le comportement inattendu décrit par OP. Windows 10 Enterprise build 10130.
jscott
Si tel est le cas, vous devez soumettre le bogue via Connect ou voir s'il l'a déjà fait.
0

Vous devez exécuter powershell avec le mode élevé avant de modifier la stratégie d'exécution

agi
la source
Cela ne résout pas le problème du PO.
kayleeFrye_onDeck
0

J'ai trouvé que la clé de registre située à

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 

a été défini sur RemoteSigned. Définir la valeur sur Unrestricteda fonctionné pour moi.

Mike Morrison
la source