Пользовательские скрипты обнаружения соответствия для 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

Ниже приведен пример выходных данных примера скрипта выше.

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

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

Примечание.

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

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

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

[ !/bin/bash ]

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

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

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

Добавление скрипта обнаружения в 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 в настоящее время не поддерживает теги область. Для создания, изменения или просмотра пользовательских сценариев обнаружения соответствия необходимо использовать тег область по умолчанию.

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