Niestandardowe skrypty odnajdywania zgodności dla usługi Microsoft Intune

Zanim będzie można używać niestandardowych ustawień zgodności z usługą Microsoft Intune, należy utworzyć skrypt, który wykrywa niestandardowe ustawienia zgodności na urządzeniach. Używany skrypt zależy od platformy:

  • Urządzenia z systemem Windows używają skryptu programu PowerShell.
  • Urządzenia z systemem Linux mogą uruchamiać skrypty w dowolnym języku, o ile odpowiedni interpreter jest zainstalowany i skonfigurowany na urządzeniu.

Skrypt odnajdywania jest wdrażany na urządzeniach w ramach niestandardowych zasad zgodności. Gdy zgodność jest uruchamiana na urządzeniu, skrypt odnajduje ustawienia zdefiniowane w pliku JSON podanym podczas tworzenia zasad zgodności.

Wszystkie skrypty odnajdywania:

  • Są dodawane do usługi Intune przed utworzeniem zasad zgodności. Po dodaniu skryptu można go wybrać podczas tworzenia zasad zgodności z ustawieniami niestandardowymi.
    • Każdy skrypt odnajdywania może być używany tylko z jednymi zasadami zgodności, a każda zasada zgodności może zawierać tylko jeden skrypt odnajdywania.
    • Nie można usunąć skryptów odnajdowania przypisanych do zasad zgodności, dopóki nie usuniesz przypisania skryptu z zasad.
  • Uruchom na urządzeniu, które otrzymuje zasady zgodności. Skrypt ocenia warunki pliku JSON przekazywanego podczas tworzenia niestandardowych zasad zgodności.
  • Zidentyfikuj co najmniej jedno ustawienie zdefiniowane w kodzie JSON i zwróć listę odnalezionych wartości dla tych ustawień.

Ponadto skrypt programu PowerShell dla systemu Windows:

  • Musi być skompresowany, aby wyświetlić wyniki w jednym wierszu. Na przykład następujący skrypt musi zawierać return $hash | ConvertTo-Json -Compress jako ostatni wiersz:

    $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
    return $hash | ConvertTo-Json -Compress
    

Limity

Aby pomyślnie zwrócić dane dotyczące zgodności do usługi Intune, skrypty muszą mieścić się w następujących limitach:

  • Skrypty nie mogą być większe niż 1 megabajt (MB) każdy.
  • Dane wyjściowe wygenerowane przez każdy skrypt nie mogą być większe niż 1 MB.
  • Skrypty muszą mieć ograniczony czas wykonywania:
    • W systemie Linux uruchamianie skryptów musi trwać nie dłużej niż pięć minut.
    • W systemie Windows uruchamianie skryptów musi trwać nie dłużej niż 10 minut.

Przykładowy skrypt odnajdowania dla systemu Windows

Poniższy przykład to przykładowy skrypt programu PowerShell, którego można użyć dla urządzeń z systemem 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

W poniższym przykładzie przedstawiono dane wyjściowe przykładowego skryptu dla systemu Windows:

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

Przykładowy skrypt odnajdowania dla systemu Linux

Uwaga

W systemie Linux skrypty odnajdowania są uruchamiane w kontekście użytkownika. Nie mogą sprawdzać ustawień na poziomie systemu, które wymagają podniesienia uprawnień. Przykładem tego ograniczenia jest state/hash/etc/sudoers ograniczenie pliku.

Skrypty odnajdywania dla systemu Linux mogą wywołać dowolnego interpretera spełniającego Twoje wymagania. Przed wdrożeniem skryptu upewnij się, że wybrany interpreter jest prawidłowo zainstalowany i skonfigurowany na urządzeniu docelowym. Aby określić interpreter dla skryptu, dołącz wiersz shebang na górze skryptu, wskazujący ścieżkę do pliku binarnego interpretera.

Na przykład, jeśli skrypt powinien używać powłoki Bash jako interpretera, dodaj następujący wiersz u góry skryptu:

#!/bin/bash

Aby użyć języka Python, określ ścieżkę interpretera. Na przykład dodaj następujący wiersz na początku skryptu: #!/usr/bin/python3 lub #!/usr/bin/env python3

Porada

Aby obsłużyć przerwania lub sygnały anulowania, zaimplementuj w skryptach mechanizmy płynnego zakończenia. Gdy skrypt obsługuje te sygnały, może wykonać zadania czyszczenia i płynnie zakończyć działanie, zapewniając poprawne zwolnienie zasobów. Na przykład przechwytuj sygnały, takie jak SIGINT (sygnał przerwania) lub SIGTERM (sygnał zakończenia) i definiuj akcje niestandardowe, które będą uruchamiane po ich odebraniu. Te akcje mogą obejmować zamykanie otwartych plików, zwalnianie przejętych blokad lub czyszczenie zasobów tymczasowych.

Aby uzyskać więcej informacji, zobacz Intune Linux Przewodnik po niestandardowych próbkach zgodności.

Add a discovery script to Intune

Przed wdrożeniem skryptu w środowisku produkcyjnym przetestuj go w odizolowanym środowisku, aby upewnić się, że używana składnia działa zgodnie z oczekiwaniami.

Uwaga

Przepływ pracy przekazywania skryptu nie obsługuje tagów zakresu. Aby tworzyć, edytować lub wyświetlać niestandardowe skrypty odnajdywania zgodności, musisz mieć przypisany domyślny tag zakresu.

  1. Zaloguj się do centrum administracyjnego usługi Microsoft Intune i przejdź do pozycji Zabezpieczenia> punktu końcowego,zgodność> urządzenia,dodajskrypty>. Następnie wybierz platformę.

  2. Na stronie Podstawowe wprowadź opisową nazwę skryptu.

  3. W obszarze Ustawienia dodaj skrypt do skryptu wykrywania. Przejrzyj uważnie swój skrypt. Usługa Intune nie sprawdza poprawności skryptu pod kątem błędów składni lub błędów programistycznych.

  4. Tylko dla systemu Windows — w obszarze Ustawienia skonfiguruj następujące zachowanie skryptu programu PowerShell:

    • Uruchom ten skrypt przy użyciu zalogowanych poświadczeń — domyślnie skrypt jest uruchamiany w kontekście systemowym na urządzeniu. Ustaw tę wartość na Tak , aby była ona uruchamiana w kontekście zalogowanego użytkownika. Jeśli użytkownik nie jest zalogowany, skrypt domyślnie powraca do kontekstu systemowego.
    • Wymuszanie sprawdzania podpisu skryptu — aby uzyskać więcej informacji, zobacz about_Signing w dokumentacji programu PowerShell.
    • Uruchamianie skryptu na 64-bitowym hoście programu PowerShell — domyślnie skrypt jest uruchamiany przy użyciu 32-bitowego hosta programu PowerShell. Ustaw tę wartość na Tak , aby wymusić uruchomienie skryptu przy użyciu 64-bitowego hosta.
  5. Zakończ proces tworzenia skryptu. Skrypt zostanie wyświetlony w okienku Skrypty i będzie dostępny do wyboru podczas konfigurowania zasad zgodności.

Następne kroki