PowerShell tiene una política de ejecución que actúa como medida de seguridad para regular las condiciones para cargar archivos de configuración y ejecutar scripts. Esto ayuda a evitar que se ejecuten scripts maliciosos. Las políticas de ejecución dictan si puede cargar archivos de configuración como su perfil de PowerShell. Y si los scripts necesitan una firma digital antes de ejecutarse. Puede establecer una política de ejecución para el sistema informático local, el usuario actual o una sesión particular en una PC con Windows.

Table of Contents

Entonces, ¿qué sucede cuando intenta ejecutar un secuencia de comandos en PowerShell?

Cuando intenta ejecutar una secuencia de comandos en PowerShell, la política de ejecución que permanece configurada actualmente determinará si la secuencia de comandos se puede ejecutar. Si el script cumple con los requisitos de la política de ejecución actual, se ejecutará. Si no cumple con las necesidades de la política de ejecución actual, aparecerá un mensaje de error que indica que la ejecución de secuencias de comandos está desactivada en este sistema.

Por ejemplo, si su política de ejecución actual solo permite la ejecución de secuencias de comandos firmadas y usted intente ejecutar una secuencia de comandos sin firmar, recibirá un mensaje de error que indica que la ejecución de secuencias de comandos permanece”deshabilitada”en este sistema.

Entonces, si está buscando ejecutar scripts en su Windows 11, entonces necesita establecer una política de ejecución diferente. Hay varias políticas de ejecución que puede configurar para ejecutar scripts. Aprendamos más sobre las políticas de ejecución para que tenga una idea de cuál cambiar.

Lea también: Pasos para realizar copias de seguridad y restaurar configuraciones rápidas en Windows 11

¿Qué son las ejecuciones? ¿Cuántas políticas existen?

Las políticas de ejecución en PowerShell determinan si puede cargar archivos de configuración o ejecutar scripts y si los scripts deben firmarse digitalmente antes de ejecutarse. El ámbito predeterminado para el cmdlet Set-ExecutionPolicy es LocalMachine, que afecta a todos los que usan la computadora.

Es fundamental tener en cuenta que las políticas de ejecución no son una medida de seguridad. Se pueden pasar por alto fácilmente y están pensados ​​más como reglas primarias para evitar que infrinja las políticas sin querer. En otras palabras, las políticas de ejecución están ahí para ayudarlo a evitar ejecutar secuencias de comandos o configuraciones que podrían dañar su sistema sin darse cuenta.

Supongamos que tiene una secuencia de comandos llamada”myscript.ps1″que desea ejecutar en tu ordenador. Si su política de ejecución se designa como Restringida (predeterminada), no podrá ejecutar el script en absoluto.

Si su política de ejecución se especifica como AllSigned, solo podrá ejecutar el script si está firmado por un editor de confianza.

Lea también: Cómo ver los segundos para el reloj de Windows 11

Hay seis políticas de ejecución de PowerShell, analicemos cada una de ellas para que obtenga una mejor comprensión de cada tipo.

1. Política restringida

Todas las PC con Windows 11 generalmente asignan la política Restringida, que es la más estricta. No se permite ejecutar secuencias de comandos de PowerShell, archivos de configuración o archivos de secuencias de comandos de módulos, por lo que solo se pueden ejecutar comandos individuales.

2. Política sin restricciones

Los scripts sin firmar se pueden ejecutar de forma predeterminada en equipos que no sean Windows y esta política no se puede modificar. Existe la posibilidad de que se ejecuten scripts peligrosos como resultado. Antes de ejecutar scripts y archivos de configuración que no pertenecen a la zona de red local, se advierte al usuario.

Lea también: Cómo ver la lista de puntos de restauración disponibles en Windows 11

3. Política AllSigned

Solo los scripts de PowerShell firmados pueden ejecutarse bajo la política de ejecución All Signed. Esto incluye cualquier secuencia de comandos única que cree. Tendrá la opción de elegir si confiar o no en el editor del guión si no está clasificado.

4. Política firmada remota

Los scripts pueden ejecutarse en sistemas de servidor Windows gracias a la política de ejecución predeterminada. Los scripts y los archivos de configuración obtenidos a través de la web deben tener la firma digital de un editor confiable. Las firmas digitales no son necesarias para los scripts creados localmente que no se descargan de Internet. Si se desbloquea con el cmdlet”Desbloquear archivo”, las secuencias de comandos que se obtienen de Internet pero que permanecen sin firmar aún pueden ejecutarse. Ejecutar scripts dañinos firmados y sin firmar de fuentes distintas a Internet es un riesgo asociado con esta política.

Lea también: ahora puede ejecutar Windows 11 en una Mac Apple Silicon

5. Política no definida

Si el alcance actual no especifica una política de ejecución. Y la política de ejecución en todos los ámbitos es Indefinida. Luego, la política de ejecución efectiva restringirá para clientes de Windows y RemoteSigned para Windows Server. Esto significa que si no se ha establecido una política de ejecución específica, los clientes de Windows adoptarán de forma predeterminada la política más restrictiva, mientras que Windows Server adoptará de forma predeterminada una política menos restrictiva que todavía requiere que los scripts descargados de Internet estén firmados por un editor de confianza.

6. Omitir política

Permite que todos los scripts se ejecuten sin advertencias ni avisos. Este tipo de política pretende beneficiarse en escenarios específicos donde un script es parte de una aplicación más grande. O donde el propio PowerShell se utiliza como base para un programa junto con las medidas de seguridad implementadas.

Además, para controlar qué scripts permiten ejecutarse en su sistema, se pueden establecer políticas de ejecución en varios ámbitos. MachinePolicy, UserPolicy, Process, CurrentUser y LocalMachine son los ámbitos disponibles.

MachinePolicy: Este ámbito se define mediante una Política de grupo para todos los usuarios de la computadora.UserPolicy: Este alcance describe una Política de grupo para el usuario actual de la PC.Proceso: Este alcance solo afecta el proceso actual de PowerShell.CurrentUser: Este alcance solo afecta al usuario actual de la computadora.LocalMachine: Este alcance afecta a todos los usuarios de la computadora. (establecido de forma predeterminada al asignar la política de ejecución)

Puede especificar el alcance al configurar una política de ejecución mediante el parámetro-Scope con el cmdlet Set-ExecutionPolicy. Por ejemplo, para establecer una política de ejecución solo para el usuario actual, usaría:

Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned

Ahora saber todo sobre las políticas de ejecución y los alcances particulares. Pasemos a cómo puede cambiar la Política de ejecución de scripts de PowerShell en Windows 11

Lea también: Cómo descargar fuentes para todos los idiomas en Windows 11

cambie la Política de ejecución de scripts de PowerShell en Windows 11

Siga los pasos que se detallan a continuación para cambiar la Política de ejecución:

Nota: Si tiene Windows Vista o más versiones nuevas, inicie PowerShell con el Ejecutar como opción de administrador para obtener privilegios de administrador para ejecutar comandos.

Windows PowerShell: Ejecutar como administrador

Paso 1: verifique su política de ejecución actual

Para hacerlo, anote el siguiente comando y presione ingrese
Get-ExecutionPolicy

Establecer política de ejecución

Paso 2: Cambiar la política de ejecución

para cambiar la política, escribe el siguiente comando y luego presiona enter.

Set-Executi onPolicy RemoteSigned

Política firmada remota

Como puede ver en la ilustración anterior, obtendrá la Ejecución Aviso de cambio de política una vez que presione Intro.

Ahora que ha seguido con éxito el procedimiento. Repita el script una vez más y comenzará a ejecutarse en su Windows 11.

Para un Scope en particular:

En caso de que quiera configurarlo para un ámbito en particular, puede utilizar el siguiente comando y pulsar Intro:

Set-ExecutionPolicy-ExecutionPolicy -Scope

Para eliminar la política de ejecución

Para eliminar un conjunto de políticas de ejecución para un ámbito específico. Puede usar el cmdlet Set-ExecutionPolicy con el parámetro -Scope y especificar Undefined como política de ejecución. Esto elimina cualquier política de ejecución establecida para el alcance especificado.

Por ejemplo, para eliminar la política de ejecución para todos los usuarios de computadoras locales, puede escribir el comando como este:

Set-ExecutionPolicy-ExecutionPolicy Undefined-Scope LocalMachine

Recuerde que cuando cambia la política de ejecución para los ámbitos LocalMachine o CurrentUser. El cambio permanece almacenado en el registro y permanece vigente hasta que lo cambie nuevamente. Sin embargo, si establece la política de ejecución para el ámbito del proceso. Por lo tanto, permanece sin guardar en el registro y solo dura hasta que se cierra el proceso actual y cualquier proceso secundario.

Lea también: Cómo habilitar o deshabilitar el cambio de fondo de escritorio en Windows 11

By Henry Taylor

Trabajo como desarrollador back-end. Algunos me habréis visto en la conferencia de desarrolladores. Últimamente he estado trabajando en un proyecto de código abierto.