• Habillitar la ejecución de scripts en Windows 10

    Para habilitar la ejecución de scripts en PowerShell hay que cambiar su directiva de ejecución. Hay varios «scopes» donde podemos cambiar esta directiva. Para verlos ejecutamos en PowerShell:

    Get-ExecutionPolicy -List

    Nos dará un resultado como esto:

            Scope ExecutionPolicy
            ----- ---------------
    MachinePolicy       Undefined
    UserPolicy          Undefined
    Process             Undefined
    CurrentUser         Undefined
    LocalMachine        Undefined

    Vemos entonces que tenemos los scopes:

    MachinePolicy
    UserPolicy
    Process
    CurrentUser
    LocalMachine

    En el caso de arriba ninguno de los scopes tiene una directiva de ejecución definida. Para definir una directiva para un scope, ejecutamos en PowerShell:

    Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>

    Por ejemplo, si queremos cambiar la directiva de ejecución del scope CurrentUser e indicarle la directiva Unrestricted, ejecutamos es PowerShell:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

    DIRECTIVAS A ELEGIR

    AllSigned

    • Los scripts se pueden ejecutar.
    • Requiere que todos los scripts y archivos de configuración estén firmados por un editor de confianza, incluidos los scripts que se escriban en el equipo local.
    • Le pregunta antes de ejecutar los scripts de los publicadores que todavía no se han clasificado como de confianza o que no son de confianza.
    • Riesgos con scripts firmados, pero malintencionados.

    Bypass

    • No se bloquea nada y tampoco se muestran advertencias ni mensajes.
    • Esta directiva de ejecución está diseñada para configuraciones en las que un script de PowerShell se integra en una aplicación más grande o en configuraciones en las que PowerShell es la base de un programa que tiene su propio modelo de seguridad.

    Default

    • Establece la Directiva de ejecución predeterminada.
    • Restringido para clientes Windows.
    • RemoteSigned para servidores Windows.

    RemoteSigned

    • La Directiva de ejecución predeterminada para equipos con Windows Server.
    • Los scripts se pueden ejecutar.
    • Requiere una firma digital de un editor de confianza en los scripts y archivos de configuración que se descargan de Internet y que incluyen programas de correo electrónico y mensajería instantánea.
    • No requiere firmas digitales en los scripts que se escriben en el equipo local y no se descargan de Internet.
    • Ejecuta scripts que se descargan de Internet y que no están firmados, si los scripts están desbloqueados, por ejemplo, mediante el Unblock-File cmdlet.
    • Riesgos para ejecutar scripts sin firmar desde orígenes distintos de Internet y scripts firmados que podrían ser malintencionados.

    Restricted

    • La Directiva de ejecución predeterminada para equipos cliente de Windows.
    • Permite comandos individuales, pero no permite scripts.
    • Evita la ejecución de todos los archivos de script, incluidos los archivos de formato y configuración ( .ps1xml ), los archivos de script de módulo ( .psm1 ) y los perfiles de PowerShell ( .ps1 ).

    Undefined

    • No hay ninguna directiva de ejecución establecida en el ámbito actual.
    • Si la Directiva de ejecución en todos los ámbitos no está definida , la Directiva de ejecución efectiva está restringida para los clientes de Windows y RemoteSigned para Windows Server.

    Unrestricted

    • La Directiva de ejecución predeterminada para equipos que no son de Windows y no se puede cambiar.
    • Se pueden ejecutar scripts sin firmar. Existe el riesgo de ejecutar scripts malintencionados.
    • Avisa al usuario antes de ejecutar scripts y archivos de configuración que no son de la zona de Intranet local.