Пользовательские скрипты обнаружения соответствия требованиям для Microsoft Intune

Прежде чем использовать настраиваемые параметры для соответствия требованиям Microsoft Intune, необходимо определить сценарий, который может обнаруживать настраиваемые параметры соответствия, доступные на устройствах. Используемый скрипт зависит от платформы:

  • Устройства Windows используют скрипт PowerShell.
  • На устройствах Linux можно выполнять скрипты на любом языке, если на устройстве установлен и настроен соответствующий интерпретатор.

Сценарий обнаружения развертывается на устройствах в рамках настраиваемых политик соответствия требованиям. Когда на устройстве выполняется соответствие требованиям, скрипт обнаруживает параметры, определенные JSON-файлом, который также предоставляется с помощью настраиваемой политики соответствия.

Все скрипты обнаружения:

  • Добавляются в Intune перед созданием политики соответствия требованиям. После добавления скрипты будут доступны для выбора при создании политики соответствия с пользовательскими параметрами.
    • Каждый скрипт обнаружения может использоваться только с одной политикой соответствия требованиям, а каждая политика соответствия может включать только один скрипт обнаружения.
    • Скрипты обнаружения, назначенные политике соответствия, не могут быть удалены до тех пор, пока скрипт не будет назначен из политики.
  • Запустите на устройстве, которое получает политику соответствия требованиям. Скрипт оценивает условия JSON-файла, отправляемого при создании настраиваемой политики соответствия.
  • Определите один или несколько параметров, как определено в JSON, и верните список обнаруженных значений для этих параметров. Каждой политике можно назначить один скрипт, который поддерживает обнаружение нескольких параметров.

Кроме того, сценарий PowerShell для Windows:

  • Должен быть сжат для вывода результатов в одной строке.
  • Например: $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} в конце скрипта должна быть указана следующая строка: return $hash | ConvertTo-Json -Compress

Ограничения

Для успешного возврата данных о соответствии в Intune скрипты должны находиться в пределах следующих ограничений:

  • Размер скриптов не может превышать 1 мегабайт (МБ).
  • Выходные данные, создаваемые каждым скриптом, не могут превышать 1 МБ.
  • Скрипты должны иметь ограниченное время выполнения:
    • В Linux выполнение скриптов должно занять пять минут или меньше.
    • В Windows выполнение скриптов должно занять не более 10 минут.

Пример скрипта обнаружения для Windows

Ниже приведен пример сценария PowerShell, который можно использовать для устройств 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

Ниже приведен пример выходных данных примера скрипта для Windows:

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

Пример скрипта обнаружения для Linux

Примечание.

Скрипты обнаружения в Linux выполняются в контексте пользователя и поэтому не могут проверять параметры уровня системы, требующие повышения прав. Примером этого является state/hash/etc/sudoers файл файла .

Скрипты обнаружения для Linux могут вызывать любой интерпретатор, соответствующий вашим требованиям. Перед развертыванием скрипта убедитесь, что выбранный интерпретатор правильно установлен и настроен на целевом устройстве. Чтобы указать интерпретатор для скрипта, добавьте строку shebang в верхней части скрипта, указывающую путь к двоичному коду интерпретатора.

Например, если скрипт должен использовать оболочку Bash в качестве интерпретатора, добавьте следующую строку в начало скрипта:

[ !/bin/bash ]

Если вы хотите использовать Python для скрипта, укажите, где установлен интерпретатор. Например, добавьте следующий код в начало скрипта: [ !/usr/bin/python3 ] или [ !/usr/bin/env python ]

Рекомендуемая рекомендация. Чтобы скрипты могли обрабатывать такие сценарии, как прерывания или сигналы отмены, реализуйте механизмы корректного завершения. Если скрипт правильно кэширует и обрабатывает эти сигналы, он может выполнять задачи очистки и корректно существовать, обеспечивая правильное высвобождение ресурсов. Например, можно перехватывать определенные сигналы, такие как SIGINT (сигнал прерывания) или SIGTERM (сигнал завершения), и определять пользовательские действия, выполняемые при получении этих сигналов. Эти действия могут включать закрытие открытых файлов, освобождение полученных блокировок или очистку временных ресурсов. Правильная обработка сигналов помогает поддерживать целостность скриптов и улучшать общее взаимодействие с пользователем.

Дополнительные сведения см. в руководстве По пользовательским примерам соответствия требованиям Intune Для Linux .

Добавление скрипта обнаружения в Intune

Перед развертыванием скрипта в рабочей среде протестируйте его в изолированной среде, чтобы убедиться, что используемый синтаксис работает должным образом.

  1. Войдите в Центр администрирования Microsoft Intune и перейдите в раздел Безопасность конечных> точек. Скрипты>соответствия устройств>Добавить>(выберите свою платформу).

  2. В разделе Основные сведения укажите имя.

  3. В разделе Параметры добавьте скрипт в скрипт обнаружения. Внимательно просмотрите сценарий. Intune не проверяет скрипт на наличие синтаксических или программных ошибок.

  4. Только для WindowsOn Settings (Только для Windows — On Settings) настройте для сценария PowerShell следующее поведение:

    • Запустите этот скрипт, используя учетные данные для входа . По умолчанию скрипт выполняется в контексте системы на устройстве. Задайте для этого значения значение Да, чтобы оно выполнялось в контексте вошедшего в систему пользователя. Если пользователь не вошел в систему, сценарий по умолчанию возвращается в контекст системы.
    • Принудительное применение проверки подписи скрипта . Дополнительные сведения см . в about_Signing документации по PowerShell.
    • Выполнение скрипта на 64-разрядном узле PowerShell . По умолчанию скрипт выполняется с помощью 32-разрядного узла PowerShell. Присвойте этому значению значение Да , чтобы скрипт выполнялся с помощью 64-разрядного узла.
  5. Завершите процесс создания скрипта. Скрипт теперь отображается в области Скрипты Центра администрирования Microsoft Intune и доступен для выбора при настройке политик соответствия.

Так как рабочий процесс отправки этих скриптов в Центр администрирования Microsoft Intune не поддерживает теги области, необходимо назначить тег области по умолчанию для создания, изменения или просмотра пользовательских сценариев обнаружения соответствия требованиям.

Дальнейшие действия