No se puede establecer Powershell ExecutionPolicy para CurrentUser

11

Aquí hay una muestra de los comandos que estoy ejecutando:

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

Quiero configurar el CurrentUsera Unrestricted, pero me parece que no puede hacerlo. Verifiqué las políticas de grupo establecidas como se describe en este documento de MSDN , pero no encontré nada configurado.

¿Alguna pista de cómo puedo configurar esto?

CamronBute
fuente
No puedo reproducir esto. Funciona según lo previsto en mi máquina. ¿Tienes algún error?
briantist
@briantist Es un error de Windows 10.
CamronBute

Respuestas:

11

Como todos los demás han dicho, esto parece ser un error en la compilación de vista previa de Windows 10. Lo hice funcionar simplemente proporcionando el parámetro -Force.

Configuración para máquina local:

Set-ExecutionPolicy RemoteSigned -Force

Configuración para el usuario actual:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

ddcruver
fuente
3

Esto parece ser un error en Windows 10. Tuve que crear la clave HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShelly crear un valor de cadena en esa clave llamada ExecutionPolicycon los datos Unrestrictedantes de que funcionara. Incluso entonces, parece que no puedo cambiarlo sin modificar el registro.

CamronBute
fuente
2

Tenía un problema de política de PowerShell más generalizado que el OP, pero una combinación de respuestas encontradas aquí y en otros lugares terminó siendo necesaria para que mi Edición Win10 Anniversary actualizara correctamente sus políticas:

1) Asegúrese de que esta entrada de registro exista y esté configurada en el nivel de seguridad más bajo que desea permitir: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Asegúrese de que esta entrada de registro exista y esté configurada en el nivel de seguridad más bajo que desee permitir: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) Actualice su Política de grupo corriendo gpedit.mscy navegue hasta Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Seleccionar Turn on Script Execution, luego Editar policy settingcon Enabledy en el cuadro debajo de eso que dice Execution Policy, configúrelo enAllow All Scripts

Una vez que haya hecho todo eso, puede usar la respuesta de ddcruver actualizando a la fuerza sus políticas según lo que desee. Si configura sus políticas como Sin restricciones, le aconsejaría que configure todas las configuraciones que se convierten Get-ExecutionPolicy -Listen algo más restrictivo, como los RemoteSignedscripts maliciosos de PowerShell son una de las principales causas del malware de Windows basado en memoria.

kayleeFrye_onDeck
fuente
1

No veo el error en mi instalación de Windows 10. Simplemente realicé la instalación usando VMWare Workstation 11 y construí una VM. Ejecuté lo siguiente sin hacer ningún cambio antes:

ingrese la descripción de la imagen aquí

En caso de que quieras saber la versión de Windows 10 tengo: 10.0.10074


fuente
2
Veo el comportamiento inesperado descrito por OP. Windows 10 Enterprise build 10130.
jscott
Si ese es el caso, debe enviar el error a través de Connect o ver si ya lo ha hecho.
0

Debe ejecutar powershell con modo elevado antes de cambiar la política de ejecución

agi
fuente
Eso no soluciona el problema del OP.
kayleeFrye_onDeck
0

Encontré que la clave de registro ubicada en

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

se estableció en RemoteSigned. Establecer el valor a Unrestrictedha funcionado para mí.

Mike Morrison
fuente