Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para poder usar la configuración personalizada para el cumplimiento con Microsoft Intune, debe crear un script que detecte la configuración de cumplimiento personalizada en los dispositivos. El script que use depende de la plataforma:
- Los dispositivos Windows usan un script de PowerShell.
- Linux dispositivos pueden ejecutar scripts en cualquier idioma siempre que el intérprete correspondiente esté instalado y configurado en el dispositivo.
El script de detección se implementa en los dispositivos como parte de las directivas de cumplimiento personalizadas. Cuando el cumplimiento se ejecuta en un dispositivo, el script detecta la configuración definida en el archivo JSON que proporciona al crear la directiva de cumplimiento.
Todos los scripts de detección:
- Se agregan a Intune antes de crear una directiva de cumplimiento. Después de agregar un script, está disponible para seleccionarlo al crear una directiva de cumplimiento con la configuración personalizada.
- Cada script de detección solo se puede usar con una directiva de cumplimiento y cada directiva de cumplimiento solo puede incluir un script de detección.
- No puede eliminar los scripts de detección asignados a una directiva de cumplimiento hasta que desasocie el script de la directiva.
- Ejecute en un dispositivo que reciba la directiva de cumplimiento. El script evalúa las condiciones del archivo JSON que carga al crear una directiva de cumplimiento personalizada.
- Identifique una o varias opciones de configuración, como se define en json, y devuelva una lista de valores detectados para esa configuración.
Además, el script de PowerShell para Windows:
Debe comprimirse para generar resultados en una sola línea. Por ejemplo, el siguiente script debe incluirse
return $hash | ConvertTo-Json -Compresscomo la última línea:$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} return $hash | ConvertTo-Json -Compress
Límites
Para devolver correctamente los datos de cumplimiento a Intune, los scripts deben permanecer dentro de los límites siguientes:
- Los scripts no pueden tener más de 1 megabyte (MB) cada uno.
- La salida generada por cada script no puede ser mayor que 1 MB.
- Los scripts deben tener un tiempo de ejecución limitado:
- En Linux, los scripts deben tardar cinco minutos o menos en ejecutarse.
- En Windows, los scripts deben tardar 10 minutos o menos en ejecutarse.
Script de detección de ejemplo para Windows
El ejemplo siguiente es un script de PowerShell de ejemplo que puede usar para dispositivos Windows:
$WMI_ComputerSystem = Get-WMIObject -class Win32_ComputerSystem
$WMI_BIOS = Get-WMIObject -class Win32_BIOS
$TPM = Get-Tpm
$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
return $hash | ConvertTo-Json -Compress
En el ejemplo siguiente se muestra la salida del script de ejemplo para Windows:
{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}
Script de detección de ejemplo para Linux
Nota:
En Linux, los scripts de detección se ejecutan en el contexto del usuario. No pueden comprobar si hay configuraciones de nivel de sistema que requieran elevación. Un ejemplo de esta limitación es el state/hash del /etc/sudoers archivo.
Los scripts de detección para Linux pueden llamar a cualquier intérprete que cumpla sus requisitos. Asegúrese de que el intérprete elegido está instalado y configurado correctamente en el dispositivo de destino antes de implementar el script. Para especificar el intérprete de un script, incluya una línea shebang en la parte superior del script, que indica la ruta de acceso al binario del intérprete.
Por ejemplo, si el script debe usar el shell de Bash como intérprete, agregue la siguiente línea en la parte superior del script:
#!/bin/bash
Para usar Python, especifique la ruta de acceso del intérprete. Por ejemplo, agregue la siguiente línea a la parte superior del script: #!/usr/bin/python3 o #!/usr/bin/env python3
Sugerencia
Para controlar las señales de interrupción o cancelación, implemente mecanismos de terminación correctos en los scripts. Cuando un script controla estas señales, puede realizar tareas de limpieza y salir correctamente, lo que garantiza que los recursos se liberen correctamente. Por ejemplo, capture señales como SIGINT (señal de interrupción) o SIGTERM (señal de terminación) y defina acciones personalizadas que se ejecutarán cuando se reciban. Estas acciones pueden incluir el cierre de archivos abiertos, la liberación de bloqueos adquiridos o la limpieza de recursos temporales.
Para obtener más información, consulte la guía de ejemplos de cumplimiento personalizado de Intune Linux.
Agregar un script de detección a Intune
Antes de implementar el script en producción, pruébelo en un entorno aislado para asegurarse de que la sintaxis que usa se comporta según lo esperado.
Nota:
El flujo de trabajo de carga de script no admite etiquetas de ámbito. Debe tener asignada la etiqueta de ámbito predeterminada para crear, editar o ver scripts de detección de cumplimiento personalizados.
Inicie sesión en el centro de administración de Microsoft Intune y vaya a Seguridad de punto de conexión>Scripts> decumplimiento> de dispositivosAgregar. A continuación, elija la plataforma.
En Aspectos básicos, escriba un nombre descriptivo para el script.
En Configuración, agregue el script al script de detección. Revise el script cuidadosamente. Intune no valida el script para los errores de sintaxis o programación.
Solo para Windows : en Configuración, configure el comportamiento siguiente para el script de PowerShell:
- Ejecute este script con las credenciales iniciadas : de forma predeterminada, el script se ejecuta en el contexto del sistema en el dispositivo. Establezca este valor en Sí para que se ejecute en el contexto del usuario que ha iniciado sesión. Si el usuario no ha iniciado sesión, el script vuelve de forma predeterminada al contexto del sistema.
- Aplicar comprobación de firma de script : para obtener más información, consulte about_Signing en la documentación de PowerShell.
- Ejecutar script en un host de PowerShell de 64 bits : de forma predeterminada, el script se ejecuta mediante el host de PowerShell de 32 bits. Establezca este valor en Sí para forzar que el script se ejecute mediante el host de 64 bits en su lugar.
Complete el proceso de creación del script. El script aparece en el panel Scripts y está disponible para seleccionarlo al configurar las directivas de cumplimiento.