Freigeben über


Benutzerdefinierte Konformitätsermittlungsskripts für Microsoft Intune

Bevor Sie benutzerdefinierte Einstellungen für die Konformität mit Microsoft Intune verwenden können, müssen Sie ein Skript definieren, das die benutzerdefinierten Konformitätseinstellungen ermitteln kann, die auf Geräten verfügbar sind. Das verwendete Skript hängt von der Plattform ab:

  • Windows-Geräte verwenden ein PowerShell-Skript.
  • Linux-Geräte können Skripts in jeder Sprache ausführen, solange der entsprechende Interpreter auf dem Gerät installiert und konfiguriert ist.

Das Ermittlungsskript wird im Rahmen Ihrer benutzerdefinierten Konformitätsrichtlinien auf Geräten bereitgestellt. Wenn die Konformität auf einem Gerät ausgeführt wird, ermittelt das Skript die Einstellungen, die durch die JSON-Datei definiert sind, die Sie auch über eine benutzerdefinierte Konformitätsrichtlinie bereitstellen.

Alle Ermittlungsskripts:

  • Werden Intune hinzugefügt, bevor Sie eine Konformitätsrichtlinie erstellen. Nach dem Hinzufügen können Skripts ausgewählt werden, wenn Sie eine Konformitätsrichtlinie mit benutzerdefinierten Einstellungen erstellen.
    • Jedes Ermittlungsskript kann nur mit einer Konformitätsrichtlinie verwendet werden, und jede Konformitätsrichtlinie kann nur ein Ermittlungsskript enthalten.
    • Ermittlungsskripts, die einer Konformitätsrichtlinie zugewiesen sind, können erst gelöscht werden, wenn die Zuweisung des Skripts aus der Richtlinie aufgehoben wurde.
  • Führen Sie auf einem Gerät aus, das die Konformitätsrichtlinie empfängt. Das Skript wertet die Bedingungen der JSON-Datei aus, die Sie beim Erstellen einer benutzerdefinierten Konformitätsrichtlinie hochladen.
  • Identifizieren Sie eine oder mehrere Einstellungen, wie im JSON-Code definiert, und geben Sie eine Liste der ermittelten Werte für diese Einstellungen zurück. Jeder Richtlinie kann ein einzelnes Skript zugewiesen werden, das die Ermittlung mehrerer Einstellungen unterstützt.

Darüber hinaus kann das PowerShell-Skript für Windows:

  • Muss komprimiert werden, um Ergebnisse in einer einzelnen Zeile auszugeben.
  • Beispiel: $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} muss die folgende Zeile am Ende des Skripts enthalten: return $hash | ConvertTo-Json -Compress

Einschränkungen

Die skripts, die Sie schreiben, müssen innerhalb der folgenden Grenzwerte sein, damit Compliancedaten erfolgreich an Intune zurückgegeben werden können:

  • Skripts dürfen nicht größer als 1 MB sein.
  • Die von jedem Skript generierte Ausgabe darf nicht größer als 1 MB sein.
  • Skripts müssen über eine begrenzte Laufzeit verfügen:
    • Unter Linux muss die Ausführung von Skripts maximal fünf Minuten dauern.
    • Unter Windows muss die Ausführung von Skripts maximal 10 Minuten dauern.

Beispiel für ein Ermittlungsskript für Windows

Das folgende Beispiel ist ein PowerShell-Beispielskript, das Sie für Windows-Geräte verwenden können:

$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

Im Folgenden finden Sie ein Beispiel für die Ausgabe des Beispielskripts für Windows:

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

Beispiel für ein Ermittlungsskript für Linux

Hinweis

Ermittlungsskripts unter Linux werden im Kontext des Benutzers ausgeführt und können daher nicht nach Einstellungen auf Systemebene suchen, die erhöhte Rechte erfordern. Ein Beispiel hierfür ist die state/hash datei /etc/sudoers .

Ermittlungsskripts für Linux können jeden Interpreter aufrufen, der Ihre Anforderungen erfüllt. Stellen Sie sicher, dass der ausgewählte Interpreter auf dem Zielgerät ordnungsgemäß installiert und konfiguriert ist, bevor das Skript bereitgestellt wird. Um den Interpreter für ein Skript anzugeben, fügen Sie oben im Skript eine Shebang-Linie ein, die den Pfad zur Interpreter-Binärdatei angibt.

Wenn Ihr Skript beispielsweise die Bash-Shell als Interpreter verwenden soll, fügen Sie die folgende Zeile oben im Skript hinzu:

[ !/bin/bash ]

Wenn Sie Python für Ihr Skript verwenden möchten, geben Sie an, wo der Interpreter installiert ist. Fügen Sie beispielsweise Folgendes am Anfang Ihres Skripts hinzu: [ !/usr/bin/python3 ] oder [ !/usr/bin/env python ]

Empfohlene bewährte Methode: Damit Ihre Skripts Szenarien wie Unterbrechungen oder Abbruchsignale verarbeiten können, implementieren Sie ordnungsgemäße Beendigungsmechanismen. Wenn ein Skript diese Signale ordnungsgemäß zwischenspeichert und verarbeitet, kann das Skript Bereinigungsaufgaben ausführen und ordnungsgemäß vorhanden sein, um sicherzustellen, dass Ressourcen ordnungsgemäß freigegeben werden. Beispielsweise können Sie bestimmte Signale wie SIGINT (Interruptsignal) oder SIGTERM (Beendigungssignal) abfangen und benutzerdefinierte Aktionen definieren, die ausgeführt werden, wenn diese Signale empfangen werden. Diese Aktionen können das Schließen geöffneter Dateien, das Freigeben von erworbenen Sperren oder das Bereinigen temporärer Ressourcen umfassen. Die ordnungsgemäße Behandlung von Signalen trägt dazu bei, die Skriptintegrität aufrechtzuerhalten und die Allgemeine Benutzererfahrung zu verbessern.

Weitere Informationen finden Sie im Leitfaden Intune Benutzerdefinierte Linux-Compliancebeispiele.

Hinzufügen eines Ermittlungsskripts zu Intune

Bevor Sie Ihr Skript in der Produktion bereitstellen, testen Sie es in einer isolierten Umgebung, um sicherzustellen, dass sich die verwendete Syntax wie erwartet verhält.

  1. Melden Sie sich bei Microsoft Intune Admin Center an, und wechseln Sie zu Endpunktsicherheit>Gerätekonformität>Skripts>Hinzufügen>(Plattform auswählen).

  2. Geben Sie unter Grundlagen einen Namen an.

  3. Fügen Sie unter Einstellungen Ihr Skript zum Erkennungsskript hinzu. Überprüfen Sie Ihr Skript sorgfältig. Intune überprüft das Skript nicht auf Syntax- oder programmgesteuerte Fehler.

  4. Nur Für Windows : Konfigurieren Sie unter Einstellungen das folgende Verhalten für das PowerShell-Skript:

    • Ausführen dieses Skripts mit den angemeldeten Anmeldeinformationen : Standardmäßig wird das Skript im Systemkontext auf dem Gerät ausgeführt. Legen Sie diesen Wert auf Ja fest, damit er im Kontext des angemeldeten Benutzers ausgeführt wird. Wenn der Benutzer nicht angemeldet ist, wird das Skript standardmäßig auf den Systemkontext zurückgesetzt.
    • Überprüfung der Skriptsignatur erzwingen – Weitere Informationen finden Sie unter about_Signing in der PowerShell-Dokumentation.
    • Ausführen eines Skripts im 64-Bit-PowerShell-Host : Standardmäßig wird das Skript mit dem 32-Bit-PowerShell-Host ausgeführt. Legen Sie diesen Wert auf Ja fest, um die Ausführung des Skripts mithilfe des 64-Bit-Hosts zu erzwingen.
  5. Schließen Sie den Skripterstellungsprozess ab. Das Skript wird jetzt im Bereich Skripts des Microsoft Intune Admin Center angezeigt und kann beim Konfigurieren von Konformitätsrichtlinien ausgewählt werden.

Da der Workflow zum Hochladen dieser Skripts in das Microsoft Intune Admin Center keine Bereichstags unterstützt, muss Ihnen das Standardbereichstag zugewiesen sein, um benutzerdefinierte Complianceermittlungsskripts erstellen, bearbeiten oder anzeigen zu können.

Nächste Schritte