Delen via


Aangepaste nalevingsdetectiescripts voor Microsoft Intune

Voordat u aangepaste instellingen kunt gebruiken voor naleving met Microsoft Intune, moet u een script definiëren waarmee de aangepaste nalevingsinstellingen kunnen worden gedetecteerd die beschikbaar zijn op apparaten. Het script dat u gebruikt, is afhankelijk van het platform:

  • Windows-apparaten gebruiken een PowerShell-script.
  • Linux-apparaten kunnen scripts in elke taal uitvoeren zolang de bijbehorende interpreter op het apparaat is geïnstalleerd en geconfigureerd.

Het detectiescript wordt geïmplementeerd op apparaten als onderdeel van uw aangepaste nalevingsbeleid. Wanneer naleving wordt uitgevoerd op een apparaat, detecteert het script de instellingen die zijn gedefinieerd door het JSON-bestand dat u ook opgeeft via aangepast nalevingsbeleid.

Alle detectiescripts:

  • Worden toegevoegd aan Intune voordat u een nalevingsbeleid maakt. Nadat deze zijn toegevoegd, kunt u scripts selecteren wanneer u een nalevingsbeleid met aangepaste instellingen maakt.
    • Elk detectiescript kan slechts met één nalevingsbeleid worden gebruikt en elk nalevingsbeleid kan slechts één detectiescript bevatten.
    • Detectiescripts die zijn toegewezen aan een nalevingsbeleid, kunnen pas worden verwijderd als het script niet meer is toegewezen aan het beleid.
  • Uitvoeren op een apparaat dat het nalevingsbeleid ontvangt. Het script evalueert de voorwaarden van het JSON-bestand dat u uploadt bij het maken van een aangepast nalevingsbeleid.
  • Identificeer een of meer instellingen, zoals gedefinieerd in de JSON, en retourneert een lijst met gedetecteerde waarden voor deze instellingen. Er kan één script worden toegewezen aan elk beleid en biedt ondersteuning voor de detectie van meerdere instellingen.

Daarnaast is het PowerShell-script voor Windows:

  • Moet worden gecomprimeerd tot uitvoerresultaten in één regel.
  • Bijvoorbeeld: $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} moet de volgende regel aan het einde van het script bevatten: return $hash | ConvertTo-Json -Compress

Grens

De scripts die u schrijft, moeten binnen de volgende limieten vallen om nalevingsgegevens naar Intune te kunnen retourneren:

  • Scripts mogen niet groter zijn dan 1 megabyte (MB) per stuk.
  • De uitvoer die door elk script wordt gegenereerd, mag niet groter zijn dan 1 MB.
  • Scripts moeten een beperkte uitvoeringstijd hebben:
    • In Linux duurt het vijf minuten of minder om scripts uit te voeren.
    • In Windows duurt het 10 minuten of minder om scripts uit te voeren.

Voorbeeld van detectiescript voor Windows

Het volgende voorbeeld is een PowerShell-voorbeeldscript dat u kunt gebruiken voor Windows-apparaten:

$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

Hier volgt een voorbeeld van de uitvoer van het voorbeeldscript voor Windows:

{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}

Voorbeeld van detectiescript voor Linux

Opmerking

Detectiescripts in Linux worden uitgevoerd in de context van de gebruiker en als zodanig kunnen ze niet controleren op instellingen op systeemniveau waarvoor uitbreiding is vereist. Een voorbeeld hiervan is de state/hash van het /etc/sudoers bestand.

Detectiescripts voor Linux kunnen elke interpreter aanroepen die aan uw vereisten voldoen. Zorg ervoor dat de gekozen interpreter correct is geïnstalleerd en geconfigureerd op het doelapparaat voordat het script wordt geïmplementeerd. Als u de interpreter voor een script wilt opgeven, voegt u boven aan het script een shebang-regel toe, waarmee het pad naar het binaire interpreterbestand wordt aangegeven.

Als uw script bijvoorbeeld de Bash-shell als interpreter moet gebruiken, voegt u de volgende regel boven aan het script toe:

[ !/bin/bash ]

Als u Python wilt gebruiken voor uw script, geeft u aan waar de interpreter is geïnstalleerd. Voeg bijvoorbeeld het volgende toe aan het begin van uw script: [ !/usr/bin/python3 ] of [ !/usr/bin/env python ]

Aanbevolen best practice: als u wilt dat uw scripts scenario's zoals onderbrekingen of annuleringssignalen kunnen verwerken, implementeert u een goede beëindigingsmechanismen. Wanneer een script deze signalen correct in de cache opslaat en verwerkt, kan het script opschoontaken uitvoeren en probleemloos bestaan, zodat resources correct worden vrijgegeven. U kunt bijvoorbeeld specifieke signalen zoals SIGINT (interruptsignaal) of SIGTERM (beëindigingssignaal) opvangen en aangepaste acties definiëren die moeten worden uitgevoerd wanneer deze signalen worden ontvangen. Deze acties kunnen bestaan uit het sluiten van geopende bestanden, het vrijgeven van verworven vergrendelingen of het opschonen van tijdelijke resources. De juiste verwerking van signalen helpt de integriteit van scripts te behouden en de algehele gebruikerservaring te verbeteren.

Zie de handleiding Aangepaste nalevingsvoorbeelden voor Intune voor Linux voor meer informatie.

Een detectiescript toevoegen aan Intune

Voordat u uw script in productie implementeert, test u het in een geïsoleerde omgeving om ervoor te zorgen dat de syntaxis die u gebruikt, zich gedraagt zoals verwacht.

  1. Meld u aan bij het Microsoft Intune-beheercentrum en ga naar Eindpuntbeveiliging>Apparaatnaleving>Scripts>Toevoegen>(kies uw platform).

  2. Geef bij Basisbeginselen een naam op.

  3. Voeg in Instellingen uw script toe aan Detectiescript. Controleer uw script zorgvuldig. Intune valideert het script niet voor syntaxis- of programmatische fouten.

  4. Alleen voor Windows : configureer bij Instellingen het volgende gedrag voor het PowerShell-script:

    • Voer dit script uit met behulp van de aangemelde referenties : standaard wordt het script uitgevoerd in de systeemcontext op het apparaat. Stel deze waarde in op Ja om deze uit te voeren in de context van de aangemelde gebruiker. Als de gebruiker niet is aangemeld, wordt het script standaard teruggezet naar de systeemcontext.
    • Controle van scripthandtekening afdwingen : zie about_Signing in de PowerShell-documentatie voor meer informatie.
    • Script uitvoeren in de 64-bits PowerShell-host : standaard wordt het script uitgevoerd met behulp van de 32-bits PowerShell-host. Stel deze waarde in op Ja om af te dwingen dat het script wordt uitgevoerd met behulp van de 64-bits host.
  5. Voltooi het proces voor het maken van het script. Het script is nu zichtbaar in het deelvenster Scripts van het Microsoft Intune-beheercentrum en is beschikbaar om te selecteren bij het configureren van nalevingsbeleid.

Omdat de werkstroom voor het uploaden van deze scripts naar het Microsoft Intune-beheercentrum geen bereiktags ondersteunt, moet u de standaardbereiktag toegewezen krijgen om aangepaste scripts voor nalevingsdetectie te maken, te bewerken of weer te geven.

Volgende stappen