Aquí se explica cómo aprovechar al máximo Windows PowerShell habilitando la política de ejecución de scripts.

iPowerShell, de forma predeterminada, le permite ejecutar comandos (cmdlets) a través de su consola. Para ejecutar un script, puede crear un archivo de bloc de notas con el código del script, guardarlo con una extensión de archivo .ps1 y ejecutarlo a través de la consola de PowerShell. También puede pegar directamente el script en la consola para su ejecución.

Sin embargo, si es la primera vez que ejecuta un script a través de PowerShell, encontrará el error "ejecutar script está deshabilitado". De forma predeterminada, la ejecución de secuencias de comandos en PowerShell está deshabilitada como medida de seguridad para evitar que se ejecuten secuencias de comandos maliciosas en su sistema. Aquí le mostramos las dos formas de habilitar la política de ejecución de scripts en Windows PowerShell.

Cómo verificar su política de ejecución existente

Puede usar un cmdlet de PowerShell para obtener su política de ejecución actual. Conocer su política de ejecución actual es necesario para saber si necesita un cambio de política o no.

instagram viewer

Para obtener su política de ejecución actual para el usuario actual:

  1. Abra Windows PowerShell como administrador.
  2. Escriba el siguiente comando en la consola de PowerShell y presione Entrar:
    conseguir-política de ejecución
  3. Dado que encontró un error al ejecutar el script, es probable que el retorno muestre Restringido como su política de ejecución actual.
  4. Si necesita ver la política de ejecución para todos los ámbitos admitidos:
    conseguir- política de ejecución - lista

Deberá cambiar la política de ejecución a RemoteSigned para ejecutar scripts locales sin el error. Puede cambiar la política de ejecución desde la aplicación Configuración y PowerShell.

Cómo habilitar la política de ejecución de PowerShell mediante la aplicación de configuración

Puede cambiar y establecer la política de ejecución de PowerShell en RemoteSigned mediante la aplicación Configuración. Todo lo que tiene que hacer es modificar la configuración de PowerShell en la sección de desarrolladores para cambiar la política de ejecución y permitir la ejecución de secuencias de comandos de PowerShell.

Para cambiar la política de ejecución mediante Configuración:

  1. Prensa ganar + yo para abrir setcosas
  2. Abre el Privacidad y seguridad pestaña en el panel izquierdo.
  3. A continuación, haga clic en Para desarrolladores.
  4. Haga clic para expandir la Potencia Shell sección.
  5. Cambia el interruptor a cambiar la política de ejecución para permitir que los scripts locales de PowerShell se ejecuten sin firmar - Requerir firma para scripts remotos.
  6. Una vez hecho esto, abra PowerShell, escriba get política de ejecución, y presiona Ingresar. La política de ejecución para el usuario actual ahora está establecida en Firmado a distancia.
  7. Si necesita deshabilitar la política de ejecución, cambie el interruptor de PowerShell y configúrelo en Apagado.

Cómo permitir que se ejecuten scripts en PowerShell usando PowerShell

Puedes usar un Cmdlet de PowerShell para establecer la política de ejecución en RemoteSigned. La interfaz de línea de comandos facilita cambiar rápidamente la política de ejecución sin usar la aplicación Configuración.

Además, la aplicación Configuración solo puede habilitar o deshabilitar la política de ejecución de RemoteSigned. Mientras que PowerShell también le permite establecer otras políticas y ámbitos.

Para cambiar la política de ejecución usando PowerShell:

  1. Abra PowerShell como administrador.
  2. En la ventana de PowerShell, escriba el siguiente comando y presione Ingresar:
    Colocar-ExecutionPolicy RemoteSigned
  3. Si se le solicita, presione A para confirmar la acción. Esto establecerá el RemotoFirmado política de ejecución para todos los usuarios. Si desea establecer la política de ejecución para el Usuario actual únicamente, use el parámetro Scope seguido del nombre de usuario.
  4. Por ejemplo, para configurar el RemotoFirmado política de ejecución de Usuario actual, use el siguiente comando:
    Colocar-ExecutionPolicy diseñado de forma remota -Alcance Usuario actual
  5. Reemplazar Usuario actual en el comando anterior con otros usuarios (Alcance) según sus requisitos.

Cómo eliminar la política de ejecución de scripts mediante PowerShell

Si desea deshabilitar la ejecución del script, establezca la política de ejecución en Indefinido usando the Set_ExecutionPolicy cmdlet. Este es un estado predeterminado e impide que PowerShell ejecute scripts.

Para deshabilitar la ejecución de secuencias de comandos mediante PowerShell:

  1. Abra PowerShell con permisos elevados.
  2. A continuación, escriba el siguiente comando y presione Intro para deshabilitar la ejecución del script para todos los usuarios:
    Colocar-Política de ejecución indefinido
  3. El comando anterior establecerá la política de ejecución predeterminada (indefinida) para todos los usuarios. Si desea deshabilitar la ejecución del script para un ámbito específico, use el siguiente comando:
    Colocar-Política de ejecución indefinido -Usuario actual de alcance
  4. El comando anterior deshabilitará la ejecución del script para Usuario actual.

Comprender las políticas de ejecución y los alcances

En pocas palabras, la política de ejecución de PowerShell es una política que controla cómo PowerShell ejecuta los archivos de configuración y los scripts. El propósito previsto es evitar que los usuarios ejecuten accidentalmente scripts maliciosos. Las siete políticas de ejecución de PowerShell son Predeterminado, Restringido, RemoteSigned, AllSigned, Sin restricciones, Omitir e Indefinido.

La siguiente tabla explica brevemente todas las políticas de ejecución de PowerShell:

Política de Ejecución

Aplicación

Por defecto

Establece la política de ejecución predeterminada como Restringida en Windows Client y RemoteSigned en Windows Server.

TodosFirmados

Permite la ejecución de scripts firmados por el editor.

Derivación

Ejecución sin restricciones de scripts para aplicaciones más grandes.

RemotoFirmado

Permite la ejecución de scripts escritos localmente. Requiere firmas digitales para scripts descargados de Internet.

Restringido

No permite la ejecución de scripts, sino solo comandos individuales de PowerShell.

Indefinido

Establece la política de ejecución en Restringido para clientes Windows y RemoteSigned para Windows Server.

Irrestricto

Permita la ejecución de scripts sin firmar con una advertencia para los scripts descargados de Internet.

Alcance de la política de ejecución

Puede establecer una política de ejecución para un ámbito particular en PowerShell. Los cinco alcances de la política de ejecución son MachinePolicy, UserPolicy, Proceso, UsuarioActual, y Máquina local.

La siguiente tabla explica brevemente todos los alcances de la política de ejecución:

Alcance de la política de ejecución

Aplicación

Política de usuario

Configurado por una directiva de grupo para el usuario actual.

Política de máquinas

Configurado por una directiva de grupo para todos los usuarios.

Usuario actual

Configurado para el usuario actual y almacenado en la subclave de registro HKEY_CURRENT_MACHINE.

Máquina local

Configurado para todos los usuarios y almacenado en la subclave de registro HKEY_CURRENT_MACHINE.

Proceso

Afecta a la sesión actual de PowerShell y se elimina automáticamente cuando se cierra la sesión.

Agregar o quitar la política de ejecución de scripts de PowerShell en Windows

La ejecución de secuencias de comandos en PowerShell está deshabilitada de forma predeterminada para los clientes de Windows y se establece en RemoteSigned para el servidor de Windows. Sin embargo, los usuarios avanzados pueden cambiar las políticas de ejecución para ejecutar scripts de PowerShell locales, firmados y sin firmar.

Como alternativa, puede omitir la política de ejecución de PowerShell pegando el script en una consola de PowerShell o haciendo ECHO su script en la entrada estándar de PowerShell. Esto es útil si desea ejecutar scripts sin cambiar la política de ejecución.