Compartir a través de


Use scripts de PowerShell para dispositivos Windows 10/11 en Intune

Use la extensión de administración de Microsoft Intune para cargar los scripts de PowerShell en Intune. A continuación, ejecútelos en dispositivos Windows 10. La extensión de administración mejora la administración de dispositivos móviles Windows (MDM) y facilita el paso a una administración moderna.

Nota:

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

Antes de empezar

  • Cuando los scripts están establecidos en el contexto del usuario y el usuario final tiene derechos de administración, de manera predeterminada, el script de PowerShell se ejecuta bajo el privilegio 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 los 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 vuelve a intentar el script tres veces durante los tres siguientes registros consecutivos de extensión de administración de Intune.

  • Un script de PowerShell asignado al dispositivo se ejecutará para todos los nuevos usuarios que inicien 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 son los siguientes:

  • No incluya ningún tipo de información confidencial en scripts (como contraseñas)
  • No incluir información de identificación personal (PII) en scripts
  • No usar scripts para recopilar PII 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 ejecutarán si el reloj del sistema del dispositivo se ha quedado obsoleto. Una vez actualizado el reloj del sistema, el script se ejecutará correctamente.

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 la creación de un nuevo script para un dispositivo Windows 10.

  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. En la sección Uso de control de acceso basado en rol (RBAC) y etiquetas de ámbito para TI distribuida encontrará 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 que ha elegido se muestran en la lista y recibirán la directiva.

      Nota:

      Los scripts de PowerShell de Intune pueden tener como destino Microsoft Entra grupos de seguridad de dispositivos o Microsoft Entra grupos de seguridad de usuario. Sin embargo, al dirigirse a dispositivos unidos al área de trabajo (WPJ), solo se pueden usar Microsoft Entra grupos de seguridad de dispositivos (se omitirá 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 realizan más intentos de ejecutar el script ConfigScript01.
  • Si no se realizan más cambios en el script, no se lleva a cabo ningún intento adicional de ejecutarlo.

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

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, es posible que el servicio también lo haga y compruebe si hay algún script de PowerShell asignado con el servicio de Intune. Si el servicio de extensión de administración de Microsoft Intune está establecido en Manual, es posible que el servicio no se reinicie después de que el dispositivo se reinicialice.

  • Asegúrese de que los dispositivos están unidos a Microsoft Entra ID. Los dispositivos que solo están unidos a su área de trabajo u organización (registrados en Microsoft Entra ID) no recibirán 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 dispositivos Surface Hub ni con Windows 10 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 ha realizado correctamente, pero no ha sido así en realidad, es posible que el servicio antivirus se encuentre en un espacio aislado por 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 pueden 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.