Dela via


Anpassade identifieringsskript för efterlevnad för Microsoft Intune

Innan du kan använda anpassade inställningar för efterlevnad med Microsoft Intune måste du definiera ett skript som kan identifiera de anpassade kompatibilitetsinställningar som är tillgängliga på enheter. Vilket skript du använder beror på plattformen:

  • Windows-enheter använder ett PowerShell-skript.
  • Linux-enheter kan köra skript på valfritt språk så länge motsvarande tolk är installerad och konfigurerad på enheten.

Identifieringsskriptet distribueras till enheter som en del av dina anpassade efterlevnadsprinciper. När efterlevnad körs på en enhet identifierar skriptet de inställningar som definieras av JSON-filen som du också anger via en anpassad efterlevnadsprincip.

Alla identifieringsskript:

  • Läggs till i Intune innan du skapar en efterlevnadsprincip. När du har lagt till skript kan du välja när du skapar en efterlevnadsprincip med anpassade inställningar.
    • Varje identifieringsskript kan bara användas med en efterlevnadsprincip, och varje efterlevnadsprincip kan bara innehålla ett identifieringsskript.
    • Identifieringsskript som har tilldelats en efterlevnadsprincip kan inte tas bort förrän skriptet inte har tilldelats från principen.
  • Kör på en enhet som tar emot efterlevnadsprincipen. Skriptet utvärderar villkoren för JSON-filen som du laddar upp när du skapar en anpassad efterlevnadsprincip.
  • Identifiera en eller flera inställningar, enligt definitionen i JSON, och returnera en lista över identifierade värden för dessa inställningar. Ett enda skript kan tilldelas till varje princip och stöder identifiering av flera inställningar.

Dessutom powershell-skriptet för Windows:

  • Måste komprimeras till utdata resulterar i en enda rad.
  • Till exempel: $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} måste innehålla följande rad i slutet av skriptet: return $hash | ConvertTo-Json -Compress

Gränser

Skripten som du skriver måste ligga inom följande gränser för att kunna returnera efterlevnadsdata till Intune:

  • Skript får inte vara större än 1 MB vardera.
  • Utdata som genereras av varje skript får inte vara större än 1 MB.
  • Skript måste ha en begränsad körningstid:
    • I Linux måste det ta fem minuter eller mindre att köra skript.
    • Det måste ta 10 minuter eller mindre att köra skript i Windows.

Exempel på identifieringsskript för Windows

Följande exempel är ett PowerShell-exempelskript som du kan använda för Windows-enheter:

$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

Följande är ett exempel på utdata från exempelskriptet från Windows:

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

Exempel på identifieringsskript för Linux

Obs!

Identifieringsskript i Linux körs i användarens kontext och därför kan de inte söka efter inställningar på systemnivå som kräver utökade privilegier. Ett exempel på detta är state/hash/etc/sudoers filen .

Identifieringsskript för Linux kan anropa alla tolker som uppfyller dina krav. Kontrollera att den valda tolken är korrekt installerad och konfigurerad på målenheten innan skriptet distribueras. Om du vill ange tolken för ett skript inkluderar du en shebang-rad överst i skriptet, som anger sökvägen till tolkens binärfil.

Om skriptet till exempel ska använda Bash-gränssnittet som tolk lägger du till följande rad överst i skriptet:

[ !/bin/bash ]

Om du vill använda Python för skriptet anger du var tolken är installerad. Lägg till exempel till följande överst i skriptet: [ !/usr/bin/python3 ] eller [ !/usr/bin/env python ]

Rekommenderad metod: Implementera lämpliga avslutningsmekanismer för att göra det möjligt för skripten att hantera scenarier som avbrott eller annulleringssignaler. När ett skript cachelagrar och hanterar dessa signaler korrekt kan skriptet utföra rensningsuppgifter och finnas korrekt, så att resurserna släpps korrekt. Du kan till exempel fånga upp specifika signaler som SIGINT (avbrottssignal) eller SIGTERM (avslutningssignal) och definiera anpassade åtgärder som ska köras när dessa signaler tas emot. Dessa åtgärder kan omfatta att stänga öppna filer, frigöra förvärvade lås eller rensa tillfälliga resurser. Korrekt hantering av signaler hjälper till att upprätthålla skriptintegriteten och förbättra den övergripande användarupplevelsen.

Mer information finns i guiden Anpassade efterlevnadsexempel för Intune Linux .

Lägga till ett identifieringsskript i Intune

Innan du distribuerar skriptet i produktion testar du det i en isolerad miljö för att säkerställa att syntaxen du använder fungerar som förväntat.

  1. Logga in på administrationscentret för Microsoft Intune och gå till Slutpunktssäkerhet>Skript för enhetsefterlevnad>>Lägg till>(välj din plattform).

  2. Ange ett namnGrundläggande.

  3. Lägg till skriptet i Identifieringsskript iInställningar. Granska skriptet noggrant. Intune validerar inte skriptet för syntax- eller programmatiska fel.

  4. Endast för Windows – På inställningar konfigurerar du följande beteende för PowerShell-skriptet:

    • Kör det här skriptet med de inloggade autentiseringsuppgifterna – Som standard körs skriptet i systemkontexten på enheten. Ställ in det här värdet på Ja så att det körs i kontexten för den inloggade användaren. Om användaren inte är inloggad återgår skriptet som standard till systemkontexten.
    • Framtvinga signaturkontroll för skript – Mer information finns i about_Signing i PowerShell-dokumentationen.
    • Kör skript i 64-bitars PowerShell-värd – Som standard körs skriptet med hjälp av 32-bitars PowerShell-värden. Ställ in det här värdet på Ja för att tvinga skriptet att köras med 64-bitarsvärden i stället.
  5. Slutför processen för att skapa skript. Skriptet visas nu i fönstret Skript i administrationscentret för Microsoft Intune och kan väljas när du konfigurerar efterlevnadsprinciper .

Eftersom arbetsflödet för att ladda upp skripten till administrationscentret för Microsoft Intune inte stöder omfångstaggar måste du tilldelas standardomfångstaggen för att skapa, redigera eller se anpassade skript för efterlevnadsidentifiering.

Nästa steg