PowerShell dice que "la ejecución de scripts está deshabilitada en este sistema".

2272

Estoy intentando ejecutar un cmdarchivo que llama a un script de PowerShell desde cmd.exe, pero recibo este error:

Management_Install.ps1 cannot be loaded because the execution of scripts is disabled on this system.

Ejecuté este comando:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Cuando ejecuto Get-ExecutionPolicydesde PowerShell, regresa Unrestricted.

PS C:\Users\Administrator\> Get-ExecutionPolicy
Unrestricted

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts> powershell .\Management_Install.ps1 1

WARNING: Running x86 PowerShell...

File C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.

At line:1 char:25

  • .\Management_Install.ps1 <<<< 1

    • CategoryInfo : NotSpecified: (:) [], PSSecurityException

    • FullyQualifiedErrorId : RuntimeException

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts> PAUSE

Press any key to continue . . .


El sistema es Windows Server 2008R2.

¿Qué estoy haciendo mal?

2
  • 3
    Vale la pena señalar que la Política de ejecución tiene varios ámbitos y que ejecutar PowerShell de diferentes maneras puede generar diferentes políticas. Para ver la lista de políticas, ejecute Get-ExecutionPolicy -List. 9/03/18 a las 16:26
  • Todas las explicaciones de las políticas están aquí . 1 de junio a las 13:20
2851

Si está utilizando Windows Server 2008 R2, existe una versión x64 y x86 de PowerShell, las cuales deben tener sus políticas de ejecución establecidas. ¿Estableció la política de ejecución en ambos hosts?

Como administrador , puede establecer la política de ejecución escribiendo esto en su ventana de PowerShell:

Set-ExecutionPolicy RemoteSigned

Para obtener más información, consulte Uso del cmdlet Set-ExecutionPolicy .

Cuando haya terminado, puede restablecer la política a su valor predeterminado con:

Set-ExecutionPolicy Restricted

Es posible que vea un error:

Access to the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. 
To change the execution policy for the default (LocalMachine) scope, 
  start Windows PowerShell with the "Run as administrator" option. 
To change the execution policy for the current user, 
  run "Set-ExecutionPolicy -Scope CurrentUser".

Por lo tanto, es posible que deba ejecutar el comando de esta manera (como se ve en los comentarios):

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
8
  • 165
    Set-ExecutionPolicy Restrictedparece ser la forma de deshacerlo si desea restablecer los permisos como estaban: technet.microsoft.com/en-us/library/ee176961.aspx . El método de bypass temporal @Jack Edmondsme parece más seguro:powershell -ExecutionPolicy ByPass -File script.ps1
    SharpC
    4/11/2014 a las 10:39
  • 50
    Para una política más segura, diríjase al usuario real: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 07/07/2015 a las 13:18
  • Set-ExecutionPolicy RemoteSigned no puede ser la primera línea de su secuencia de comandos. Si es así, resáltelo y ejecute el seleccionado solo INICIALMENTE antes de ejecutar el resto de su secuencia de comandos.
    Andrew
    21/06/2017 a las 13:36
  • Me encontré con una pregunta similar en el sitio de SF, "Política de ejecución de Powershell dentro de SQL Server", realizada el 10 de octubre de 2014. Las respuestas allí incluidas Get-ExecutionPolicy -Listme ayudaron a ver los diferentes ámbitos. El cmd Get-ExecutionPolicyno muestra todos los ámbitos. Import-Module SQLPSAhora está trabajando con políticas cambiaron de la siguiente manera: {Undefined- Process,MachinePolicy,UserPolicy,}; {RemoteSigned- CurrentUser, LocalMachine}. 1 feb 2019 a las 17:45
  • Si hago esto, ¿el cambio dura solo la duración del PowerShell actual? ¿O es más grande que eso? 1 de mayo de 2019 y 19:12
890

Puede omitir esta política para un solo archivo agregando -ExecutionPolicy Bypassal ejecutar PowerShell

powershell -ExecutionPolicy Bypass -File script.ps1
8
  • 7
    Esto también es muy útil si tiene una cuenta que no es de administrador. Hice un atajo a %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPassen mi barra de tareas.
    zek19
    14 de enero de 2015 a las 12:15
  • 3
    Tenga en cuenta que Microsoft Technet lo estiliza como "Bypass", no como "ByPass". Ver: technet.microsoft.com/nl-nl/library/hh849812.aspx 1 de marzo de 2016 a las 1:57
  • 2
    Esto no funciona para mí, obtengo el mismo permiso denegado como si lo llamara normalmente. Sin embargo, llamar a una ps1 desde un .bat type script.ps1 | powershell -funciona. 19/10/2017 a las 17:56
  • 10
    El propósito de la Política de ejecución es evitar que las personas hagan doble clic en un .ps1y ejecuten accidentalmente algo que no querían. Esto pasaría con los .batarchivos. 7/11/2017 a las 17:38
  • 1
    A parameter cannot be found that matches parameter name 'File' Mando: Set-ExecutionPolicy -ExecutionPolicy Bypass -File .\file.ps1
    JOATMON
    21/01/20 a las 17:31
264

Tuve un problema similar y noté que el valor predeterminado cmden Windows Server 2012 estaba ejecutando el x64.

Para Windows 10 , Windows 7 , Windows 8 , Windows Server 2008 R2 o Windows Server 2012 , ejecute los siguientes comandos como administrador :

x86 (32 bits)
Abrir C:\Windows\SysWOW64\cmd.exe
Ejecutar el comandopowershell Set-ExecutionPolicy RemoteSigned

x64 (64 bits)
Abrir C:\Windows\system32\cmd.exe
Ejecutar el comandopowershell Set-ExecutionPolicy RemoteSigned

Puede comprobar el modo utilizando

  • En CMD: echo %PROCESSOR_ARCHITECTURE%
  • En Powershell: [Environment]::Is64BitProcess

Referencias:
MSDN - Políticas de ejecución de Windows PowerShell
Windows - Explicación del directorio de 32 bits frente a 64 bits

8
  • 4
    Funciona para mí en windows10 22/11/20 a las 6:32
  • 1
    Me funcionó para el proceso de instalación de nodemon en vscode. salud. 14 feb a las 21:46
  • 1
    Trabajó en Windows 10 x64
    spacing
    27 feb a las 21:31
  • 1
    ¡Muchas gracias, funcionó para mí en Windows 10, VSCode! 20 abr a las 15:23
  • 1
    Muchas gracias 11 de junio a las 9:39
186

La mayoría de las respuestas existentes explican el cómo , pero muy pocas explican el por qué . Y antes de ejecutar código de extraños en Internet, especialmente código que desactiva las medidas de seguridad, debe comprender exactamente lo que está haciendo. Así que aquí hay un poco más de detalles sobre este problema.

Desde la página Acerca de las políticas de ejecución de TechNet :

Windows PowerShell execution policies let you determine the conditions under which Windows PowerShell loads configuration files and runs scripts.

Los beneficios de los cuales, según lo enumerado por los conceptos básicos de PowerShell: política de ejecución y firma de código , son:

  • Control of Execution - Control the level of trust for executing scripts.
  • Command Highjack - Prevent injection of commands in my path.
  • Identity - Is the script created and signed by a developer I trust and/or a signed with a certificate from a Certificate Authority I trust.
  • Integrity - Scripts cannot be modified by malware or malicious user.

Para comprobar su política de ejecución actual, puede ejecutar Get-ExecutionPolicy. Pero probablemente estés aquí porque quieres cambiarlo.

Para hacerlo, ejecutará el Set-ExecutionPolicycmdlet.

Tendrá que tomar dos decisiones importantes al actualizar la política de ejecución.

Tipo de política de ejecución:

  • Restricted - No se puede ejecutar ningún script local, remoto o descargado en el sistema.
  • AllSigned - Todos los scripts que se ejecutan deben estar firmados digitalmente.
  • RemoteSigned - Todos los scripts remotos (UNC) o descargados deben estar firmados.
  • Unrestricted - No se requiere firma para ningún tipo de guión.

Alcance del nuevo cambio

  • LocalMachine - La política de ejecución afecta a todos los usuarios de la computadora.
  • CurrentUser - La política de ejecución afecta solo al usuario actual.
  • Process - La política de ejecución afecta solo al proceso actual de Windows PowerShell.

† = Predeterminado

Por ejemplo : si desea cambiar la política a RemoteSigned solo para CurrentUser, debe ejecutar el siguiente comando:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Nota : Para cambiar la política de ejecución, debe ejecutar PowerShell como administrador . Si está en modo normal e intenta cambiar la política de ejecución, obtendrá el siguiente error:

Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. To change the execution policy for the default (LocalMachine) scope, start Windows PowerShell with the "Run as administrator" option.

Si desea reforzar las restricciones internas en sus propios scripts que no se han descargado de Internet (o al menos no contienen los metadatos UNC), puede forzar la política para que solo ejecute sripts firmados. Para firmar sus propios scripts, puede seguir las instrucciones del artículo de Scott Hanselman sobre Firma de scripts de PowerShell .

Nota : Es probable que la mayoría de las personas obtengan este error cada vez que abren Powershell porque lo primero que intenta hacer PS cuando se inicia es ejecutar la secuencia de comandos de su perfil de usuario que configura su entorno como desee.

El archivo normalmente se encuentra en:

%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

Puede encontrar la ubicación exacta ejecutando la variable powershell

$profile

Si no hay nada que le importe en el perfil y no quiere preocuparse por su configuración de seguridad, puede simplemente eliminarlo y PowerShell no encontrará nada que no pueda ejecutar.

5
  • 9
    Siento que es importante tener en cuenta que, si bien la política de ejecución es una medida de seguridad, no está destinada a evitar que los usuarios ejecuten código PowerShell. La política de ejecución es algo que tiene la intención de proteger sus scripts y determinar quién los escribió, modificó o aprobó y eso es todo. Es trivial sortear la política de ejecución con algo tan simple como Get-Content .\MyFile.ps1 | powershell.exe -NoProfile -. 29 de marzo de 2016 a las 12:52
  • 3
    Sin -ExecutionPolicy ByPassembargo, dada la existencia , ¿cuál es el propósito de esta política de todos modos? ¿Es solo para evitar que los usuarios abran accidentalmente una consola PowerShell y ejecuten un script malicioso? ¿No podría el atacante usar un ejecutable o un script por lotes si quisiera evitar esto? Incluso después de leer el comentario de @BaconBits, no estoy muy seguro de qué escenario pretende prevenir esta política ...
    Ajedi32
    19/07/2016 a las 16:29
  • 2
    @ Ajedi32 Digamos que tengo una tarea que ejecuta un script en un recurso compartido de red. Cuando invoco mi secuencia de comandos, quiero que mi proceso verifique que la secuencia de comandos está firmada. Quiero que mi código verifique dos veces que el script que voy a ejecutar es el código que confío para ejecutar. No me importa si puedes ejecutar mi código. Detener eso es trabajo de los derechos de acceso. Solo quiero evitar que me hagas ejecutar un código que no escribí. Los derechos de acceso significa que el sistema operativo le impide modificar mi código cuando está conectado. La firma de código y la política de ejecución significa mi guión no se ha modificado, cuando me voy a ejecutarlo. 19/07/2016 a las 21:46
  • 1
    ¿Qué tal mostrar cómo firmar el script en lugar de cómo deshabilitar la seguridad? ¿Es esa una opción?
    gman
    14/08/20 a las 9:23
  • @gman, creo que es un buen punto. Para crowdsourcing del trabajo, ciertamente puede agregar esa respuesta o agregarla a esta.
    KyleMit
    15/08/20 a las 15:43
48

En Windows 7:

Vaya al menú Inicio y busque "Windows PowerShell ISE".

Haga clic con el botón derecho en la versión x86 y elija "Ejecutar como administrador".

En la parte superior, pega Set-ExecutionPolicy RemoteSigned; ejecutar el script. Elija "Sí".

Repita también estos pasos para la versión de 64 bits de Powershell ISE (la versión que no es x86).

Solo estoy aclarando los pasos que @Chad Miller insinuó. ¡Gracias Chad!

1
  • En Windows 8 también, esto funcionó. Configuré Set-ExecutionPolicy RemoteSigned; solo en Windows Powershell, ejecutándolo como administrador. No fue necesario repetir el procedimiento para la versión x86. 14/10/20 a las 9:20
48

Además, ejecutar este comando antes del script también resuelve el problema:

set-executionpolicy unrestricted
3
  • 34
    -1 - Siga el principio del mínimo permiso. Al menos establezca la política en RemoteSignedantes de eliminar todas las restricciones de su política de seguridad. Si eso no funciona, vuelva a evaluar cuáles son sus puntos débiles y por qué no funciona. Puede establecerlo unrestrictedcomo último recurso, pero no debería ser su punto de partida.
    KyleMit
    16 de noviembre de 2014 a las 8:08
  • 5
    Gracias por señalar esta opción también. Con el debido respeto a las necesidades de seguridad para fines de producción, en los tiempos en que la demanda de capacidad de creación rápida de prototipos es tan alta, todas las políticas y la seguridad realmente se interponen en el camino para hacer las cosas.
    tishma
    2/04/2016 a las 12:27
  • 1
    Con respecto al comentario sobre la creación de prototipos, me temo que esta es la razón por la que el código de mierda se pone en producción. Por supuesto, este es solo un ejemplo trivial, pero si no puede resolver algo tan trivial durante el desarrollo, es una preocupación para el lanzamiento. Además, para el código a medida, y si puede, conozca el entorno de destino, configuramos la mayoría de nuestros sistemas internos como Remotesigned.
    LeeM
    12 feb 2017 a las 13:43
39

Si se encuentra en un entorno en el que no es un administrador, puede configurar la Política de ejecución solo para usted y no requerirá administrador.

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

o

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

Puede leerlo todo en la entrada de ayuda.

Help Get-ExecutionPolicy -Full
Help Set-ExecutionPolicy -Full
3
  • Funcionó muy bien para mí en Windows 8, incluso cuando, Set-ExecutionPolicy Unrestrictedcomo administrador, no parecía "irrestricto" lo suficiente como para ayudar. 21/08/2014 a las 15:32
  • 1
    Creo que lo que puede estar experimentando es un GPO o algo más que sobrescribe su configuración del nivel "LocalMachine" de ExecutionPolicy. No puede sobrescribir lo que tiene una política de dominio con el comando Set-ExecutionPolicy. Sin embargo, pero estableciendo el nivel de acceso "CurrentUser", usted y solo usted tendrá la Política de ejecución especificada. Esto se debe a que la computadora busca en CurrentUser la política de ejecución antes de ver la configuración de LocalMachine. 25 de septiembre de 2014 a las 14:57
  • 2
    Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted" es la única solución que funcionó para mí. Gracias
    Paulj
    23/08/2016 a las 19:43
38

Podemos obtener el estado actual ExecutionPolicymediante el siguiente comando:

Get-ExecutionPolicy;

Por defecto está restringido . Para permitir la ejecución de scripts de PowerShell, debemos establecer esta ExecutionPolicy como Bypass o Unrestricted .

Podemos establecer la política para el usuario actual como Bypasso Unrestrictedmediante cualquiera de los siguientes comandos de PowerShell:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force;

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force;

La política sin restricciones carga todos los archivos de configuración y ejecuta todos los scripts. Si ejecuta una secuencia de comandos sin firmar que se descargó de Internet, se le solicitará permiso antes de que se ejecute.

Mientras que en la política de omisión , nada está bloqueado y no hay advertencias ni avisos durante la ejecución del script. Bypass ExecutionPolicyes más relajado que Unrestricted.

2
  • 4
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force; También conocido como una forma rápida y sucia de decirle a VS2015 que deje de quejarse y ejecute mi maldito script. Gracias. salvador de la vida.
    Eon
    8 de septiembre de 2016 a las 13:48
  • 1
    Los puntos y comas al final de los comandos son superfluos. 27/11/18 a las 21:57
37

RemoteSigned: todas las secuencias de comandos que creó usted mismo se ejecutarán y todas las secuencias de comandos descargadas de Internet deberán estar firmadas por un editor de confianza.

De acuerdo, cambie la política simplemente escribiendo:

Set-ExecutionPolicy RemoteSigned
1
  • 1
    Como se recomienda en otras publicaciones: es aconsejable incluir "-Scope CurrentUser" para una política más segura, cuando tenga sentido. 6/11/19 a las 19:54
29

Estoy usando Windows 10 y no pude ejecutar ningún comando. El único comando que me dio algunas pistas fue este:

[x64]

  1. Open C:\Windows\SysWOW64\cmd.exe [as administrator]
  2. Run the command> powershell Set-ExecutionPolicy Unrestricted

Pero esto no funcionó. Fue limitado. Probablemente nuevas políticas de seguridad para Windows10. Tuve este error:

Set-ExecutionPolicy: Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of...

Entonces encontré otra forma ( solución ):

  1. Abrir Ejecutar comando / Consola ( Win+ R)
  2. Tipo: gpedit.msc ( Editor de políticas de grupo )
  3. Vaya a Política de equipo local -> Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> Windows Powershell .
  4. Habilite " Activar ejecución de script "
  5. Establezca la política según sea necesario. Configuré el mío en " Permitir todos los scripts ".

Ahora abre PowerShell y disfruta;)

6
  • ¿Es esta una instalación independiente o está conectado a un grupo de trabajo o dominio?
    MEMark
    2 oct 2015 a las 15:09
  • 1
    ¿Por qué abrir cmd para hacerlo? Simplemente abra ISE (como administrador) y escribaSet-ExecutionPolicy RemoteSigned 27/10/2016 a las 16:49
  • Dios mío, esto finalmente arregló mi caja win10, @kolob set-executionpolicy no es suficiente
    xer0x
    14 de enero de 2019 a las 6:48
  • No deberías usar Unrestricted. Es una mejor práctica usarRemoteSigned 14/01/19 a las 18:37
  • @ xer0x debería ser siempre que ejecute powershell como administrador 14/01/19 a las 18:38
24
  1. Abrir powershell como administración
Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

usa este comando

16

Win+ Ry escriba el comando copiar pegar y presione OK:

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

Y ejecuta tu script.

Luego revierte cambios como:

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "AllSigned"
11

puede probar esto y seleccionar la opción "Todos"

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
10

El establecimiento de la política de ejecución es específico del entorno. Si está intentando ejecutar un script desde el ISE x86 en ejecución , debe usar el PowerShell x86 para establecer la política de ejecución. Del mismo modo, si está ejecutando el ISE de 64 bits, debe establecer la política con PowerShell de 64 bits.

0
10

También puede omitir esto mediante el siguiente comando:

PS > powershell Get-Content .\test.ps1 | Invoke-Expression

También puede leer este artículo de Scott Sutherland que explica 15 formas diferentes de omitir PowerShell Set-ExecutionPolicysi no tiene privilegios de administrador:

15 formas de omitir la política de ejecución de PowerShell

1
  • Esta es probablemente una de las guías más convincentes para solucionar problemas y comprender esta restricción. 26/07/19 a las 19:42
10
  1. Abra Ejecutar comando / Consola (Win + R) Escriba: gpedit. msc (Editor de políticas de grupo)
  2. Vaya a Política de equipo local -> Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> Windows Powershell.
  3. Habilite " Activar ejecución de scripts " Configure la política según sea necesario. Configuré el mío en "Permitir todos los scripts" .

Ahora ejecute el comando de ejecución lo que sea que esté utilizando .. Confíe en que la aplicación se ejecutará .. Disfrute :)

9

También me he enfrentado a un problema similar, intente esto espero que ayude a alguien. Como estoy usando Windows, siga los pasos que se indican a continuación. Abra el símbolo del sistema como administrador y luego vaya a esta ruta.

C:\Users\%username%\AppData\Roaming\npm\

Busque el archivo ng.ps1 en esta carpeta (dir) y luego elimínelo (del ng.ps1)

También puede borrar la caché npm después de esto, aunque también debería funcionar sin este paso. Espero que ayude, ya que funcionó para mí.

Espero eso ayude

2
  • este funcionó, acabo de eliminar algunos archivos de extensión .ps1 y comenzó a funcionar 1 sep.2020 a las 18:08
  • gracias, esto funcionó para mi
    Ram
    14 de julio a las 22:40
7

En el editor de PowerShell ISE , encontré que ejecutar la siguiente línea primero permitía los scripts.

Set-ExecutionPolicy RemoteSigned -Scope Process
6
Set-ExecutionPolicy RemoteSigned

Ejecutar este comando en modo administrador en powershell resolverá el problema.

5
  1. Abra PowerShell como administrador y ejecute Set-ExecutionPolicy -Scope CurrentUser
  2. Proporcione RemoteSigned y presione Enter
  3. Ejecute Set-ExecutionPolicy -Scope CurrentUser
  4. Proporcione Unrestricted y presione Enter
5

En la ventana 10:

si no es administrador, puede utilizar este

powershell Set-ExecutionPolicy -Scope CurrentUser

cmdlet Set-ExecutionPolicy en la posición 1 de la canalización de comandos Proporcione valores para los siguientes parámetros: ExecutionPolicy: RemoteSigned

¡Resolvió mi problema como un encanto!

0
5

Abra el símbolo del sistema en Windows, si el problema es solo con PowerShell, use el siguiente comando,

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"
4

Esto resolvió mi problema

Abra el PowerShellcomando de Windows y ejecute la siguiente consulta para cambiarExecutionPolicy

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

si solicita confirmar los cambios, presione 'Y' y presione enter.

3

Recibo otra advertencia cuando intento correr Set-ExecutionPolicy RemoteSigned

Lo resolví con estos comandos

Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false

Set-ExecutionPolicy "RemoteSigned" -Scope CurrentUser -Confirm:$false
3

Abra la consola de Powershell como administrador y luego configure la política de ejecución

Set-ExecutionPolicy -ExecutionPolicy Remotesigned 
2

En PowerShell 2.0, la política de ejecución estaba deshabilitada de forma predeterminada.

A partir de ese momento, el equipo de PowerShell ha realizado muchas mejoras y confía en que los usuarios no romperán mucho las cosas mientras ejecutan scripts. Entonces, desde PowerShell 4.0 en adelante, está habilitado de forma predeterminada.

En su caso, escriba Set-ExecutionPolicy RemoteSigneddesde la consola de PowerShell y diga que sí.

2

Tuve el mismo problema hoy. La política de ejecución de 64 bits no estaba restringida, mientras que la de 32 bits estaba restringida.

A continuación, le mostramos cómo cambiar solo la política de 32 bits de forma remota:

Invoke-Command -ComputerName $servername -ConfigurationName Microsoft.PowerShell32 -scriptblock {Set-ExecutionPolicy unrestricted}
2

Ir a la ruta del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShelly conjunto ExecutionPolicya RemoteSigned.

1
  • 1
    1. Abra PowerShell como administrador y ejecute Set-ExecutionPolicy -Scope CurrentUser 2. Proporcione RemoteSigned y presione Enter 3. Ejecute Set-ExecutionPolicy -Scope CurrentUser 4. Proporcione Unrestricted y presione Enter 19/04/18 a las 5:12
1

Si está aquí porque lo ejecuta con Ruby o Chef y usa la ejecución del sistema, ejecute de la siguiente manera:

`powershell.exe -ExecutionPolicy Unrestricted -command [Environment]::GetFolderPath(\'mydocuments\')`

Ese comando es para obtener la carpeta "Mis documentos".

-ExecutionPolicy Unrestricted Hace el truco.

Espero que sea de ayuda para otra persona.

1
  • ¿Debería el adjunto `` estar realmente allí? 1 dic 14 a las 19:52
1

Varias respuestas apuntan a la política de ejecución. Sin embargo, algunas cosas también requieren "administrador runas". Esto es más seguro porque no hay un cambio permanente en la política de ejecución y puede superar la restricción del administrador. Úselo con schedtask para iniciar un lote con:

    runas.exe /savecred /user:administrator powershell -ExecutionPolicy ByPass -File script.ps1

de Jack Edmonds arriba y Peter Mortensen / Dhana de la publicación ¿Cómo ejecutar una aplicación como "ejecutar como administrador" desde el símbolo del sistema?