Compartir a través de


Uso de scripts de PowerShell en dispositivos Windows en Intune

El 14 de octubre de 2025, Windows 10 llegó al final del soporte técnico y no recibirá actualizaciones de calidad y características. Windows 10 es una versión permitida en Intune. Los dispositivos que ejecutan esta versión todavía pueden inscribirse en Intune y usar características aptas, pero la funcionalidad no se garantizará y puede variar.

Use la extensión de administración de Microsoft Intune para cargar los scripts de PowerShell en Intune. A continuación, ejecute estos scripts en dispositivos Windows. La extensión de administración mejora MDM y facilita el traslado a la administración moderna.

Nota:

Para obtener información sobre la extensión de administración de Intune para Windows, consulte Extensión de administración de Intune para Windows.

Antes de empezar

  • Los scripts establecidos en el contexto de usuario con derechos de administrador ejecutan PowerShell de forma predeterminada con privilegios de administrador.

  • No es necesario que los usuarios finales inicien sesión en el dispositivo para ejecutar scripts de PowerShell.

  • La extensión de administración de Intune comprueba después de cada reinicio si hay nuevos scripts o cambios. Después de asignar la directiva a los grupos de Microsoft Entra, se ejecuta el script de PowerShell y se notifican los resultados de la ejecución. Una vez que se ejecuta el script, no se vuelve a ejecutar salvo que haya un cambio en el script o en la directiva. Si se produce un error en el script, la extensión de administración de Intune reintenta el script tres veces para las tres siguientes solicitudes de comprobación consecutivas de la extensión de administración de Intune.

  • Los scripts de PowerShell asignados al dispositivo se ejecutan para todos los nuevos usuarios que inician sesión, excepto en las SKU de varias sesiones en las que la protección del usuario está deshabilitada.

  • Los scripts de PowerShell se ejecutan antes que las aplicaciones Win32. En otras palabras, los scripts de PowerShell se ejecutan primero. Acto seguido, se ejecutan las aplicaciones Win32.

  • El tiempo de espera de los scripts de PowerShell se agota al cabo de 30 minutos.

Importante

Los procedimientos recomendados para la concienciación de privacidad al usar scripts de PowerShell y scripts de corrección incluyen:

  • No incluya ningún tipo de información confidencial en scripts (como contraseñas)
  • No incluir datos personales en scripts
  • No usar scripts para recopilar datos personales de dispositivos
  • Siga siempre los procedimientos recomendados de privacidad.

Para obtener información relacionada, vea Correcciones.

Requisitos previos

Importante

Los scripts implementados en clientes que ejecutan la extensión de administración de Intune no se pueden ejecutar si el reloj del sistema del dispositivo está muy obsoleto en meses o años. Una vez actualizado el reloj del sistema, el script se ejecuta según lo previsto.

Cree una directiva de script y asígnela

  1. Inicie sesión en el Centro de administración de Microsoft Intune.

  2. SeleccioneScripts y correccionesde dispositivos> Scripts > dela plataformaAgregar>Windows 10 y versiones posteriores>.

    Captura de pantalla que muestra cómo crear un nuevo script para un dispositivo Windows.

  3. En Datos básicos, escriba las siguientes propiedades y seleccione Siguiente:

    • Nombre: escriba un nombre para el script de PowerShell.
    • Descripción: escriba una descripción para el script de PowerShell. Esta configuración es opcional pero recomendada.
  4. En Configuración de script, escriba las siguientes propiedades y seleccione Siguiente:

    • Ubicación del script: busque el script de PowerShell. El script debe ser inferior a 200 KB (ASCII).

    • Ejecute este script con las credenciales iniciadas: seleccione (valor predeterminado) para ejecutar el script con las credenciales del usuario en el dispositivo. Elija No para ejecutar el script en el contexto del sistema. Muchos administradores eligen . Si es necesario que el script se ejecute en el contexto del sistema, elija No.

    • Aplicar comprobación de firma de script: seleccione (valor predeterminado) si el script debe estar firmado por un publicador de confianza. Seleccione No si no hay ningún requisito para que el script se firme.

    • Ejecutar script en un host de PowerShell de 64 bits: seleccione para ejecutar el script en un host de PowerShell de 64 bits en una arquitectura de cliente de 64 bits. Si selecciona No (valor predeterminado) el script se ejecutará en un host de PowerShell de 32 bits.

      Cuando la establezca en o No, use la siguiente tabla para los comportamientos nuevos y existentes de la directiva:

      Ejecución de scripts en un host de 64 bits Arquitectura de cliente Nuevo script Script de directiva existente
      No 32 bits Compatible con host de PowerShell de 32 bits Solo se ejecuta en un host de PowerShell de 32 bits, que funciona en arquitecturas de 32 y 64 bits.
      64 bits Ejecuta el script en un host de PowerShell de 64 bits para arquitecturas de 64 bits. Si se ejecuta en 32 bits, el script se ejecutará en un host de PowerShell de 32 bits. Ejecuta el script en un host de PowerShell de 32 bits. Si esta configuración cambia a 64 bits, el script se abrirá (no se ejecutará) en un host de PowerShell de 64 bits y se notificarán los resultados. Si se ejecuta en 32 bits, el script se ejecutará en un host de PowerShell de 32 bits.
  5. Seleccione Etiquetas de ámbito. Las etiquetas de ámbito son opcionales. Usar el control de acceso basado en rol y las etiquetas de ámbito para ti distribuida tiene más información.

    Para agregar una etiqueta de ámbito, realice lo siguiente:

    • Elija Seleccionar etiquetas> de ámbito seleccione una etiqueta de ámbito existente en la lista >Seleccionar.

    • Cuando termine, seleccione Siguiente.

  6. Seleccione Asignaciones>Seleccionar grupos para incluir. Se muestra una lista existente de grupos de Microsoft Entra.

    • Seleccione uno o varios grupos que incluyan los usuarios cuyos dispositivos reciben el script. Elija Seleccionar. Los grupos elegidos se muestran en la lista y reciben la directiva.

      Nota:

      Los scripts de PowerShell en Intune se pueden destinar a Microsoft Entra grupos de seguridad de dispositivos o Microsoft Entra grupos de seguridad de usuarios. Sin embargo, al dirigirse a dispositivos unidos al área de trabajo (WPJ), solo se pueden usar Microsoft Entra grupos de seguridad de dispositivos (se omite la segmentación de usuarios).

    • Seleccione Siguiente.

      Asigne o implemente el script de PowerShell a grupos de dispositivos en Microsoft Intune

  7. En Revisar y agregar, se muestra un resumen de la configuración. Seleccione Agregar para guardar el script. Al seleccionar Agregar, la directiva se implementa en los grupos que ha elegido.

Escenario: error al ejecutar el script

8.00 h

  • Protección
  • Ejecución del script ConfigScript01
  • Error de script

9 a.m.

  • Protección
  • Ejecución del script ConfigScript01
  • Error de script (número de reintentos = 1)

10 a.m.

  • Protección
  • Ejecución del script ConfigScript01
  • Error de script (número de reintentos = 2)

11 a.m.

  • Protección
  • Ejecución del script ConfigScript01
  • Error de script (número de reintentos = 3)

12 p.m.

  • Protección
  • No se realiza ningún otro intento para ejecutar el script ConfigScript01.
  • Si no se realiza ningún otro cambio en el script, no se realiza ningún otro intento para ejecutar el script.

Supervisión del estado de ejecución

Puede supervisar el estado de ejecución de scripts de PowerShell para usuarios y dispositivos en el portal.

En Scripts de PowerShell, seleccione el script que quiere supervisar, elija Supervisar y luego elija uno de estos informes:

  • Estado del dispositivo
  • Estado del usuario

Nota:

Las exportaciones de estado del dispositivo desde el Centro de administración de Intune para scripts de plataforma ahora usan la API de exportación de Intune y los nombres de columna CSV se alinean con el esquema de API.

Eliminación de un script

En Scripts de PowerShell, haga clic con el botón derecho en el script y seleccione Eliminar.

Problemas comunes y soluciones

Problema: los scripts de PowerShell no se ejecutan

Posibles soluciones:

  • Los scripts de PowerShell no se ejecutan en cada inicio de sesión. Se ejecuta en los siguientes casos:

    • Cuando se asigna el script a un dispositivo.

    • Si cambia el script, lo carga y asigna el script a un usuario o dispositivo.

      Sugerencia

      La extensión de administración de Microsoft Intune es un servicio que se ejecuta en el dispositivo, al igual que cualquier otro servicio que aparezca en la aplicación Servicios (services.msc). Después de reiniciar un dispositivo, este servicio podría reiniciarse y comprobar si hay scripts de PowerShell asignados con el servicio Intune. Si el servicio Microsoft Intune Management Extension está establecido en Manual, es posible que el servicio no se reinicie después de reiniciar el dispositivo.

  • Asegúrese de que los dispositivos están unidos a Microsoft Entra id. Los dispositivos que solo están registrados en su área de trabajo u organización en Microsoft Entra identificador no reciben los scripts.

  • Confirme que la extensión de administración de Intune se ha descargado en %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Los scripts no se ejecutan en Surface Hubs o Windows en modo S.

  • Revise los registros por si hay errores. Consulte, en este artículo, Registros de extensión de administración de Intune.

  • Para comprobar si existen problemas de permisos, asegúrese de que las propiedades del script de PowerShell estén establecidas en Run this script using the logged on credentials. Compruebe también que el usuario que ha iniciado sesión tenga los permisos adecuados para ejecutar el script.

  • Para aislar los problemas de scripts, haga lo siguiente:

    • Revise la configuración de ejecución de PowerShell en sus dispositivos. Vea la directiva de ejecución de PowerShell para obtener instrucciones.

    • Ejecute un script de ejemplo con la extensión de administración de Intune. Por ejemplo, cree el directorio C:\Scripts y conceda a todos el control total. Ejecute el siguiente script:

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      Si se ejecuta correctamente, se debería crear un archivo output.txt, el cual debería incluir el texto "Script Worked" (‘El script funcionó’).

    • Para ejecutar el script de prueba sin Intune, ejecute los scripts en la cuenta del sistema mediante el uso local de la herramienta psexec:

      psexec -i -s

    • Si el script informa de que se realizó correctamente, pero no se realizó correctamente, es posible que el servicio antivirus esté aislado agentExecutor. El siguiente script siempre informa de un error en Intune. Como prueba, puede usar este script:

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp"
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Si el script informa de que se ha realizado correctamente, consulte AgentExecutor.log para confirmar la salida de error. Si se ejecuta el script, la longitud debe ser >2.

    • Para capturar los archivos .error y .output, el fragmento de código siguiente ejecuta el script por medio de AgentExecutor en PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Mantiene los registros para que los revise. Recuerde que la extensión de administración de Intune limpia los registros después de que se ejecute el script:

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Problema: ¿Por qué se ejecutan scripts aunque Windows ya no esté administrado?

Cuando ya no se administra un dispositivo Windows con scripts asignados, el IME no se quita inmediatamente. El IME detecta que Windows no se administra en la siguiente comprobación de IME (normalmente cada 8 horas) y cancela las ejecuciones de scripts. Mientras tanto, se podrían ejecutar los scripts almacenados localmente. Cuando el IME no puede protegerse, reintenta la comprobación durante un máximo de 24 horas (tiempo de activación del dispositivo) y, a continuación, se quita del dispositivo Windows.

Siguientes pasos

Supervise y solucione los problemas de sus perfiles.