Правила обнаружения для распространения приложений
Правила обнаружения для распространения приложений могут использоваться для определения, был ли пакет уже установлен и, поэтому его не нужно устанавливать повторно.
Сконфигурируйте правила обнаружения в разделе Распространение приложений > Каталог приложений. Добавьте или измените приложение и выберите вкладку Пакет.
Правила обнаружения проверяются только вначале обработки пакета, поэтому действие обнаружения всегда будет первым элементом в средстве сборки, если оно используется. Правила обнаружения выполняются в установленном порядке.
ВАЖНО: Если результат любого действия обнаружения окажется положительным, обработка пакета будет остановлена, а состояние приложения устройства будет отображено как соответствующее.
Доступные правила обнаружения:
Укажите полный путь к файлу и имя файла. Выберите Существует или Не существует.
Информация о версии файла обычно доступна только для исполняемых файлов. Функция распространения приложений использует значение "Версия файла", а не значение "Версия продукта". Укажите полный путь к файлу и имя файла. Варианты оператора: "меньше" или "больше, "равно" или "между". Если указанный вами файл и путь не существуют или файл не имеет распознаваемой версии, будет возвращено значение false.
Для получения информации о том, как работают операторы версий и сравнения, см. статью Microsoft.
Укажите полный путь к файлу и имя файла. Укажите размер файла в байтах. Функция распространения приложений использует параметр "Размер", а не "Размер на диске". Если указанный файл и путь не существуют, будет возвращено значение false.
Укажите полный путь к файлу и имя файла. Выберите сравниваемую длину SHA-2 в битах. Если указанный файл и путь не существуют, будет возвращено значение false. Для создания дайджеста хеша можно использовать PowerShell:
-
Get-FileHash -Algorithm SHA256 -Path C:\MyApp\myfile.exe
Это правило проверяет только дату, а не время. Укажите полный путь к файлу и имя файла. Выберите оператор, подобный Равно (Equals). Дата файла должна быть указана в формате UTC (всемирное координированное время) и соответствовать эквиваленту вашего региона в формате мм/дд/гггг. Функция распространения приложений использует дату "Изменено", а не дату "Создано". Если указанный файл и путь не существуют, будет возвращено значение false. Можно использовать PowerShell для получения даты файла в формате UTC:
-
(Get-Item C:\MyApp\myfile.exe).LastWriteTimeUtc
Укажите GUID-код продукта MSI и выберите, будет ли MSI установлен или не будет установлен. Используйте средство Orca от Microsoft для отображения GUID для "ProductCode". Вы также можете найти установленные идентификаторы GUID MSI в следующих разделах реестра:
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall
Укажите полное имя пакета MSIX и будет ли MSIX установлен или не будет установлен. Используйте команду PowerShell, Get-AppxPackage для обнаружения полного имени пакета, как это представлено Microsoft здесь.
Укажите информацию для раздела, который нужно обнаружить.
- Версия реестра: Выберите соответственно 32-разрядный или 64-разрядный или вы можете выбрать System, если нужно автоматически назначить версию, используемую целевым устройством.
- Корневой раздел: Выберите корневой раздел, содержащий раздел, который нужно обнаружить, например, HKEY_LOCAL_MACHINE.
- Раздел: Введите полный путь (не включайте уже указанный корневой раздел) для имени обнаруживаемого раздела реестра.
- Выберите Существует или Не существует
Укажите информацию раздела и значения раздела реестра, который нужно обнаружить. Если раздел или значение не существуют или недоступны пользователю, правило вернет значение false (если оператор сравнения - Не существует).
Необходимо указать имя значения, если только не нужно проверить значение "(Default)" - в этом случае заполнять его не нужно.
Во время сравнения версий операнды сравнения и данные, связанные со значением реестра, должны быть представлены в описанном здесь формате версии. Если что-либо не так, правила обнаружения (и пакет) вернут ошибку.
Для получения информации о том, как работают операторы версий и сравнения, см. статью Microsoft.
Данные сравнения строк чувствительны к регистру ввода. Если значение реестра содержит данные, отличные от типа REG_SZ (строка), они будут преобразованы в строку:
- REG_DWORD: Используется десятичный формат (демонстрируется в regedit.exe).
- REG_QWORD: Используется десятичный формат (демонстрируется в regedit.exe).
- REG_BINARY: В regedit.exe используется форма пары байтов, но с заглавной буквы (например, "46 AA 6C 6B 65 6E").
- REG_MULTI_SZ: Строки объединяются с пробелами, образуя одну строку (например, "Строка1 Строка 2 Строка3").
- REG_EXPAND_SZ: Все переменные среды будут развернуты.
Сценарии обнаружения могут использовать PowerShell (не PowerShell Core) или синтаксис командных файлов. Успех обнаружения отображается с помощью числовых кодов завершения сценария. Код завершения "0" (ноль) соответствует значению true. Любой другой код завершения эквивалентен значению false. Код завершения выхода должен иметь числовое значение, а не слово "True". Для создания сценария можно использовать встроенный редактор сценариев.
Используйте встроенный редактор для создания сценария или можно использовать параметр Выбрать файл для выбора файла. Указываемый вами файл и путь должны существовать в целевой системе. Если файла сценария пока нет на устройстве, используйте действие Загрузить файл для его получения. После этого загруженный файл будет помещен в путь по умолчанию, и можно будет просто указать имя файла.
Так как правила обнаружения выполняются до других действий пакета, сценарии правил обнаружения размещаются в уникальный этап процесса установки приложений. Здесь можно выполнять более сложные действия, такие как запуск особого сценария обновления, который находит и удаляет экземпляр приложения перед продолжением действий остальной части пакета.
Протоколирование работы правила обнаружения и действий
Функция распространение приложений создает файл журнала для каждого установленного на устройстве приложения. В журнале содержатся записи для каждого правила обнаружения и других действий пакета. Если правила обнаружения не работают должным образом, можно открыть файл журнала для определения причин. Журналы хранятся на каждом устройстве в следующей папке:
- C:\ProgramData\Ivanti\Ivanti Cloud Agent\Logs\SWDApps
Имя файла каждого журнала содержит GUID пакета. Если вы будете редактировать пакет в Каталоге приложений, GUID пакета будет представлен в URL-адресе веб-браузера. Это полезно во время поиска нужного файла журнала.
Вы можете найти упрощенный журнал удаленно на странице Распространение приложений > Статус распространения. Нужное устройство и пакет можно найти и открыть в меню действий с помощью параметра Показать журнал.