Cargando

Ir a contenido

X

 


PowerShell: No se puede cargar el archivo porque en el sistema está deshabilitada la ejecución de scripts

Tutorial para solucionar el error de Windows PowerShell:No se puede cargar el archivo porque en el sistema está deshabilitada la ejecución de scripts.


Escrito por el jun 14 2018 16:41



Microsoft ha integrado Windows PowerShell como la consola de administración por defecto en sus sistemas operativos tanto de hogar (Windows 10) como corporativos (Windows Server) con el fin de realizar cientos de tareas de una forma simple, segura y totalmente funcional.

 

Ahora bien, dentro de las tareas que podemos ejecutar con Windows PowerShell es la ejecución de scripts los cuales tiene la tarea de automatizar taras rutinarias o ejecutar una en particular facilitando las acciones administrativas, y aunque esto es algo realmente útil puede conllevar ciertos riesgos ya que un script con contenido malicioso puede llegar a afectar diversos componentes del sistema tales como sus registros o servicios creando un impacto negativo en todo el rendimiento y operatividad de este.

 

Por esta razón, Microsoft ofrece diversas opciones que como usuarios podemos seleccionar para la ejecución de los scripts, desde habilitarlos todos sin importar su fuente (nada recomendado) hasta restringirlos todos en absoluto.

 

 

Para estar al día, recuerda suscribirte a nuestro canal de YouTube!   SUSCRIBETE

 

 


1. Ver las directivas de ejecución de Windows PowerShell


Microsoft nos provee una serie de directivas de ejecución de Windows PowerShell en todo lo relacionado a los scripts las cuales son.

 

Restricted (Restringida)
Es la regla por defecto y con ella se permite la ejecución de comandos individuales, mas no se ejecutarán scripts, adicional a esto, se impide la ejecución de todos los archivos de scripts, incluyendo los archivos de configuración y formato (.ps1xml), los archivos de scripts de módulos (.psm1) y los perfiles de Windows PowerShell (.ps1).

 

Allsigned (Solo firmas)
Con este tipo de directiva se pueden ejecutar scripts, para ello se requiere que todos los scripts y archivos de configuración estén firmados por un editor de confianza, incluyendo los scripts que se escriban en el equipo local, adicional se solicita confirmación antes de ejecutar scripts de publicadores que no haya sido clasificados que son o no de confianza.

 

Remotesigned (Firma remota)
Esta directiva permite la ejecución de scripts, para ello requiere una firma digital de un editor de confianza en los scripts y archivos de configuración que se descarguen de Internet (incluyendo los programas de correo electrónico y de mensajería instantánea), no requiere de firmas digitales en los scripts que hayan sido escritos en el equipo local, es decir, que no hayan descargado de Internet y puede ejecutar scripts que sean descargados de Internet y no están firmados, si están desbloqueados, por ejemplo mediante el cmdlet Unblock-File.

 

Unrestricted (Sin restricción)
Esta directiva nos da la posibilidad de ejecutar scripts sin firmar lo cual es un riesgo de seguridad alto, y advierte al usuario antes de ejecutar archivos de configuración y scripts descargados de Internet con el fin de añadir seguridad.

 

Bypass
Con esta directiva, no se bloquea nada y tampoco serán desplegadas advertencias ni mensajes de seguridad, esta directiva de ejecución ha sido diseñada para configuraciones en las que un script de Windows PowerShell se integra en una aplicación más grande o en configuraciones en las que Windows PowerShell es la base de un programa que cuenta con su propio modelo de seguridad.

 

Undefined (Indefinido)
Esta opción indica que no existe ninguna directiva de ejecución establecida en el ámbito actual, de modo que, si la directiva de ejecución en todos los ámbitos es Undefined, la directiva de ejecución automática será Restricted, que es la directiva de ejecución por defecto en Windows 10.

 

Para ver todas las directivas de Windows PowerShell podemos ejecutar lo siguiente. Ahora vamos a ver como establecer una nueva directiva para ejecutar de forma correcta un script en Windows PowerShell.

Get-ExecutionPolicy -List

 

 


2. Ejecutar script con comando ExecutionPolicy Windows PowerShell

 

Paso 1

Para hacer uso de esta opción contamos con dos opciones a ejecutar en Windows PowerShell como administradores que son:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy RemoteSigned -Force
Paso 2

Una vez ejecutada alguna de estas líneas podremos validar el resultado usando el cmdlet siguiente:
Get-ExecutionPolicy -List

 

 


3. Ejecutar script en Windows PowerShell con Editor de registros

 

Paso 1

Para este método se recomienda crear una copia de seguridad de los archivos o crear un punto de restauración en caso de algún tipo de fallo, luego usaremos las teclas siguientes y ejecutamos lo siguiente:

 

+ R

Regedit
Paso 2

En la ventana que será desplegada vamos a la siguiente ruta.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Paso 3

Allí daremos clic derecho sobre “Microsoft.PowerShell” y seleccionamos la opción “Nuevo / Valor de cadena”:

 

 

 

 

3-nuevo-valor-de-cadena.png

 

Paso 4

Este nuevo valor será llamado “ExecutionPolicy”:

 

 

Paso 5

Daremos doble clic sobre este valor y en el campo “Información del valor” ingresamos “RemoteSigned”:

 

5-RemoteSigned.png

 

Paso 6

Pulsamos en Aceptar y veremos que se aplica dicha directiva:

 

 

 


4. Ejecutar script en Windows PowerShell con Políticas de grupo

 

Paso 1

Esta opción está disponible para las ediciones Pro y Enterprise de Windows 10 y para acceder a ellas usaremos las teclas siguientes y ejecutamos lo siguiente:

 

+ R

gpedit.msc
Paso 2

Al pulsar Enter será desplegada la siguiente ventana y allí iremos a la siguiente ruta:
  • Configuración del equipo
  • Plantillas administrativas
  • Componentes de Windows
  • Windows PowerShell

 

Paso 2

Allí seleccionamos y abrimos la política llamada “Activar la ejecución de scripts”:

 

 

Paso 3

En la ventana desplegada activamos la casilla “Habilitada” y en el campo “Directiva de ejecución” podemos seleccionar alguna de las siguientes opciones. Una vez definida la directiva pulsamos en Aplicar y Aceptar para guardar los cambios.
  • Permitir solo scripts firmados
  • Permitir scripts locales y scripts remotos firmados
  • Permitir todos los scripts

 

 

8-Directiva-de-ejecución”.png

 

Con alguno de estos métodos será posible hacer uso correcto de los scripts en ambientes Windows.

 

Te enseñamos cómo programar y ejecutar automáticamente un script usando comandos con PowerShell en Windows 10.



Tutoriales Relacionados



Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado jun 14 2018 16:41
  •   Visitas 868
  •   Nivel
    Avanzado