Política de ejecución de PowerShell | Alcances y modos de política de ejecución
Introducción a la política de ejecución de PowerShell
La política de ejecución de PowerShell es la característica de seguridad para el entorno de PowerShell, que determina si los usuarios pueden cargar los archivos de configuración, como el perfil de PowerShell, los archivos de configuración básica o si los usuarios pueden ejecutar el script. También determina si los scripts deben firmarse digitalmente antes de ejecutarse en lugar de permitir que cualquier usuario ejecute el script como VBScript. La política de ejecución de PowerShell no es la característica de seguridad más importante que impide la acción del usuario, sino que evita que se ejecute código o script malicioso en el entorno. Los usuarios pueden cambiar la política de ejecución con la línea de comando para ejecutar el script.
Alcances de la política de ejecución de PowerShell
Cuando se aplica una política de ejecución, se aplica a ámbitos particulares. Los alcances se mencionan a continuación en su nivel de prioridad.
- Política de máquinas
- Política de usuario
- Proceso (sesión actual)
- Usuario actual
- Máquina local
1. Política de máquinas
Esta política la establece la política de grupo para todos los usuarios de la computadora. Se puede configurar a través de GPO: Configuración del equipo -> Políticas -> Plantillas administrativas -> Componentes de Windows -> Windows PowerShell.
2. Política de usuario
Esta política puede ser establecida por la política de grupo para el usuario actual de la computadora. Se puede configurar a través de GPO: Configuración de usuario -> Políticas -> Plantillas administrativas -> Componentes de Windows -> Windows PowerShell.
3.Proceso (Sesión actual)
Esta política es válida hasta la sesión de PowerShell, cuando se cierra la sesión, se elimina esta política. Esta política se establece en la variable de entorno de Windows $Env: PSExecutionPolicyPreference. De forma predeterminada, esta variable no existe y se crea solo cuando se establece esta política.
$env:PSExecutionPolicyPreference4. Usuario actual
Esta política es solo para el usuario actual. Cuando se establece esta política, se almacena en el registro.
5. Máquina local
Esta política está configurada para la computadora local. Cuando se establece esta política, se almacena en el registro HKEY_LOCAL_MACHINE
Modos de política de ejecución de PowerShell
A continuación se muestran los modos de política de ejecución de PowerShell:
1. Restringido
Esta es la política de ejecución predeterminada para los sistemas Windows para PowerShell. Lo que significa que no puede ejecutar ningún script (.ps1), archivos de configuración (.ps1xml) ni script de módulo (.psm1), pero puede ejecutar los cmdlets. Cuando se configura este modo e intenta ejecutar el script, obtendrá el error como se muestra en el siguiente ejemplo.
2. Todo firmado
Los usuarios pueden ejecutar scripts que sólo están firmados digitalmente por editores de confianza. Los scripts que no están firmados digitalmente, los usuarios recibirán un aviso.
3. Firmado remoto
Los scripts que se ejecutan desde la computadora local no requieren firma digital, pero no deben descargarse de Internet ni ejecutarse. Los scripts que se descargan de Internet, incluidas las aplicaciones de correo electrónico y la aplicación de mensajería instantánea, requieren firma digital. PowerShell puede ejecutar el script que se descarga de Internet y no se firma digitalmente si el archivo está desbloqueado. El archivo se puede desbloquear usando la propiedad del archivo o mediante Desbloquear archivo
4. Sin restricciones
Los usuarios pueden ejecutar el script que no está firmado, pero también puede ejecutar scripts maliciosos. PowerShell advierte a los usuarios cuando ejecutan el script que se descarga de Internet.
5. Evitar
Ningún script requiere firma digital cuando se establece esta política de ejecución. Los usuarios no recibirán ningún aviso para ejecutar scripts sin firmar. Esto es útil cuando hay una aplicación grande que necesita PowerShell como modelo base y necesita ejecutar varios archivos de configuración. Esta política generalmente no se recomienda porque es fácil apuntar a máquinas con Windows para ejecutar código malicioso cuando se establece esta política.
6. Indefinido
Cuando se establece la política indefinida, será la política predeterminada. La política predeterminada sería Restringida. Para eliminar la política de ejecución actual, en general, se establece esta política.
Ejemplos para implementar la política de ejecución de PowerShell
A continuación se mencionan algunos ejemplos:
Ejemplo #1
Para obtener la política de ejecución actual en la máquina
Código:
Get-ExecutionPolicySalida:
Ejemplo #2
Para obtener todas las políticas de ejecución y verificar qué política se aplica para el alcance, debe utilizar el siguiente comando.
Código:
Get-ExecutionPolicy -ListSalida:
Explicación: Aquí, según el resultado del ejemplo anterior, la política de omisión se aplica para el alcance de la sesión (proceso) actual.
Ejemplo #3
Para obtener la política de ejecución para un alcance particular, debe usar -Scope. Por ejemplo, para obtener la política de ejecución para el alcance del Proceso, use el siguiente comando.
Código:
Get-ExecutionPolicy -Scope ProcessSalida:
De manera similar, puede configurar la política para diferentes ámbitos. Por ejemplo,
Get-ExecutionPolicy -Scope MachinePolicy
Get-ExecutionPolicy -Scope UserPolicy
Get-ExecutionPolicy -Scope CurrentPolicyEjemplo #4
Para establecer la política de ejecución, debe utilizar la política Set-Execution
Código:
Set-ExecutionPolicy RemoteSignedCuando configura la política de ejecución sin ningún alcance, se configurará para la máquina local de forma predeterminada.
Ejemplo #5
Establezca la política de ejecución con -Scope
Código:
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RestrictedEjemplo #6
Establecer la política de ejecución con -Force
Cuando configura la política de ejecución, PowerShell solicita la confirmación del usuario. Para evitar este paso, debe utilizar los parámetros de Fuerza. Este parámetro aplica directamente la política al ámbito particular o al ámbito predeterminado.
Código:
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -ForceEjemplo #7
Eliminar política de ejecución
Para eliminar la política de ejecución para cualquier ámbito, debe utilizar una política indefinida. Establecerá la política por defecto. es decir, restringido.
Código:
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Undefined -Force
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Undefined -ForceConclusión
La política de ejecución de PowerShell es el componente crítico de la seguridad de los sistemas Windows para impedir que los usuarios ejecuten imprudentemente cualquier script desde la consola. Los administradores del sistema pueden usar la política de grupo para implementar la política de ejecución en un sistema con entorno de Windows grande, de modo que se pueda evitar que la ejecución de scripts desde Internet y otras aplicaciones se ejecute accidentalmente.





