Niestandardowe skrypty odnajdywania zgodności dla Microsoft Intune
Przed użyciem ustawień niestandardowych na potrzeby zgodności z Microsoft Intune należy zdefiniować skrypt, który może odnajdywać niestandardowe ustawienia zgodności dostępne na urządzeniach. Skrypt, którego używasz, 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 przez plik JSON udostępniany również za pośrednictwem niestandardowych zasad zgodności.
Wszystkie skrypty odnajdywania:
- Są dodawane do Intune przed utworzeniem zasad zgodności. Po dodaniu skrypty są dostępne do wybrania podczas tworzenia zasad zgodności z ustawieniami niestandardowymi.
- Każdy skrypt odnajdywania może być używany tylko z jedną zasadą zgodności, a każda zasada zgodności może zawierać tylko jeden skrypt odnajdywania.
- Skryptów odnajdywania przypisanych do zasad zgodności nie można usunąć, dopóki skrypt nie zostanie nieprzypisany z zasad.
- Uruchom polecenie na urządzeniu, które odbiera zasady zgodności. Skrypt ocenia warunki przekazywania pliku JSON podczas tworzenia niestandardowych zasad zgodności.
- Zidentyfikuj co najmniej jedno ustawienie, zgodnie z definicją w formacie JSON, i zwróć listę odnalezionych wartości dla tych ustawień. Do poszczególnych zasad można przypisać pojedynczy skrypt i obsługiwać odnajdywanie wielu ustawień.
Ponadto skrypt programu PowerShell dla systemu Windows:
- Należy skompresować, aby dane wyjściowe były wykonywane w jednym wierszu.
- Na przykład:
$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
musi zawierać następujący wiersz na końcu skryptu:return $hash | ConvertTo-Json -Compress
Limity
Skrypty, które piszesz, muszą znajdować się w następujących limitach, aby pomyślnie zwrócić dane zgodności do Intune:
- Skrypty nie mogą być większe niż 1 megabajt (MB).
- Dane wyjściowe generowane 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 potrwać co najmniej pięć minut.
- W systemie Windows uruchamianie skryptów musi potrwać co najmniej 10 minut.
Przykładowy skrypt odnajdywania 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
Poniżej przedstawiono przykładowe dane wyjściowe przykładowego skryptu z systemem Windows:
{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}
Przykładowy skrypt odnajdywania dla systemu Linux
Uwaga
Skrypty odnajdywania w systemie Linux są uruchamiane w kontekście użytkownika i w związku z tym nie mogą sprawdzić ustawień na poziomie systemu, które wymagają podniesienia uprawnień. Przykładem tego jest state/hash
/etc/sudoers
plik.
Skrypty odnajdywania dla systemu Linux mogą wywoływać dowolny interpreter spełniający twoje wymagania. Przed wdrożeniem skryptu upewnij się, że wybrany interpreter jest poprawnie zainstalowany i skonfigurowany na urządzeniu docelowym. Aby określić interpreter skryptu, dołącz wiersz shebang u góry skryptu, wskazując ścieżkę do pliku binarnego interpretera.
Jeśli na przykład skrypt powinien używać powłoki Bash jako interpretera, dodaj następujący wiersz w górnej części skryptu:
[ !/bin/bash ]
Jeśli chcesz użyć języka Python dla skryptu, wskaż, gdzie jest zainstalowany interpreter. Na przykład dodaj następujące elementy w górnej części skryptu: [ !/usr/bin/python3 ]
lub [ !/usr/bin/env python ]
Zalecane najlepsze rozwiązanie: aby umożliwić skryptom obsługę scenariuszy, takich jak przerwania lub sygnały anulowania, zaimplementuj bezproblemowe mechanizmy kończenie. Gdy skrypt prawidłowo buforuje i obsługuje te sygnały, skrypt może wykonywać zadania oczyszczania i bezpiecznie istnieć, zapewniając poprawne zwalnianie zasobów. Można na przykład przechwytywać określone sygnały, takie jak SIGINT (sygnał przerwania) lub SIGTERM (sygnał zakończenia) i definiować niestandardowe akcje do uruchomienia po odebraniu tych sygnałów. Te akcje mogą obejmować zamykanie otwartych plików, zwalnianie nabytych blokad lub czyszczenie zasobów tymczasowych. Właściwa obsługa sygnałów pomaga utrzymać integralność skryptu i poprawić ogólne środowisko użytkownika.
Aby uzyskać więcej informacji, zobacz przewodnik Intune Przykłady zgodności niestandardowej systemu Linux.
Dodawanie skryptu odnajdywania do Intune
Przed wdrożeniem skryptu w środowisku produkcyjnym przetestuj go w izolowanym środowisku, aby upewnić się, że używana składnia działa zgodnie z oczekiwaniami.
Zaloguj się do centrum administracyjnego Microsoft Intune i przejdź do pozycji Zabezpieczenia punktu końcowego>Skrypty>zgodności> urządzeńDodaj>(wybierz platformę).
W obszarze Podstawy podaj nazwę.
W obszarze Ustawienia dodaj skrypt do skryptu wykrywania. Dokładnie przejrzyj skrypt. Intune nie weryfikuje skryptu pod kątem błędów składniowych ani programowych.
Tylko w przypadku systemu Windows — w obszarze Ustawienia skonfiguruj następujące zachowanie skryptu programu PowerShell:
- Uruchom ten skrypt przy użyciu poświadczeń logowania — domyślnie skrypt jest uruchamiany w kontekście systemowym na urządzeniu. Ustaw tę wartość na wartość Tak, aby została uruchomiona w kontekście zalogowanego użytkownika. Jeśli użytkownik nie jest zalogowany, skrypt domyślnie wraca do kontekstu systemowego.
- Wymuszanie sprawdzania podpisu skryptu — aby uzyskać więcej informacji, zobacz about_Signing w dokumentacji programu PowerShell.
- Uruchom skrypt w 64-bitowym hoście programu PowerShell — domyślnie skrypt jest uruchamiany przy użyciu 32-bitowego hosta programu PowerShell. Ustaw tę wartość na wartość Tak , aby wymusić uruchomienie skryptu przy użyciu hosta 64-bitowego.
Ukończ proces tworzenia skryptu. Skrypt jest teraz widoczny w okienku Skrypty centrum administracyjnego Microsoft Intune i jest dostępny do wybrania podczas konfigurowania zasad zgodności.
Ponieważ przepływ pracy przekazywania tych skryptów do centrum administracyjnego Microsoft Intune nie obsługuje tagów zakresu, musisz mieć przypisany domyślny tag zakresu, aby tworzyć, edytować lub wyświetlać niestandardowe skrypty odnajdywania zgodności.