Действия пакета распространения приложений и правила обнаружения
Действия пакета определяют, как процедура распространения приложений будет устанавливать ваши пакеты. Правила обнаружения пакетов призваны помочь принять решение в процессе распространения приложений, а именно, нужна ли их установка на устройстве.
Действия пакетов
Сконфигурируйте действия пакетов в разделе Распространение приложений > Каталог приложений. Добавьте или измените приложение и выберите вкладку Пакет. Переместите нужные действия в дерево конструктора. Выберите действие в дереве конструктора для его конфигурации.
Доступные действия пакетов:
Может помочь определить, было ли приложение уже установлено и, поэтому его не нужно устанавливать повторно.
ВАЖНО: Если результат любого действия обнаружения окажется положительным, обработка пакета будет остановлена, а состояние приложения устройства будет отображено как соответствующее.
См. далее в этом документе раздел Правила обнаружения пакетов для получения дополнительной информации о доступных правилах обнаружения.
Загрузка файла с использованием рабочего пути распространения приложений Ivanti по умолчанию:
C:\Program Data\Ivanti\Ivanti Cloud Agent\Agent\SWD\working
Любое действие, работающее с путем файла, будет использовать этот путь, если не будет указано иное. Эта папка очищается до и после запуска каждого пакета.
Здесь можно указать несколько файлов и при необходимости выполнить несколько действий загрузки файлов. Файлы могут находиться в любом месте HTTP(S), не требующем аутентификации, к которому имеют доступ клиенты, кому вы готовите развертывание.
Можно ввести или вставить URL-адрес в поле Исходный URL-адрес. Указанный URL-адрес должен быть связан непосредственно с загружаемым файлом. Обнаруженное в URL-адресе имя файла будет представлено рядом с кнопкой Выбрать файл.
Используйте кнопку Добавить новый файл для добавления других URL-адресов загружаемых файлов. Если файлы хранятся в хранилище BLOB-объектов Microsoft Azure или в контейнерах Amazon Web Services, используйте кнопку Выбрать файл для открытия обозревателя облачных файлов.
Обозреватель файлов в облаке
С помощью кнопки Выберите файл откройте обозреватель облачных файлов и выберите файлы из хранилища BLOB-объектов Azure или Amazon Web Services вашей организации. Учетные записи хранилищ Azure и Amazon не входят в состав Ivanti Neurons.
- Информацию о том, как создать контейнер хранилища в Azure, см. в этой статье Microsoft.
- Для получения информации о создании контейнера в Amazon S3 см. эту статью Amazon.
Перед использованием проводника облачных файлов необходимо добавить ваши учетные данные хранилища BLOB-объектов Azure или Amazon S3 в Admin > Учетные данные. Для получения дополнительной информации см. раздел Учетные данные. Рекомендуется для ключей Azure key1 и key2 создать учетные данные в Ivanti Neurons, чтобы разрешить Azure ротацию ключей. Затем вы можете выбрать нужную учетную запись в обозревателе облачных файлов.
Эти учетные данные используются для заполнения списка папок и файлов и получения в действии загрузки файла URL-адресов подписей общего доступа (Microsoft Azure) или уже подписанных URL-адресов (Amazon Web Services) для выбранных вами файлов. Эти учетные данные не будут использоваться клиентами.
После добавления учетных данных можно выбрать учетную запись, контейнер и комплект облачного хранилища в обозревателе. Обозреватель контейнера используется для отображения хранящихся в нем файлов и папок. Добавьте один или несколько файлов, установив параметры рядом с ними, и нажмите кнопку Добавить. URL-адреса добавленных файлов отобразятся в свойствах действия загрузки файла.
Поставщики облачных хранилищ требуют, чтобы созданные маркеры URL-адресов имели срок действия. С использованием функции распространения приложений срок действия маркера равен семи дням, и каждые пять дней он обновляется для предотвращения потери доступа целевыми клиентами.
Фильтрация облачных файлов с помощью текстового поля фильтрации по префиксу ограничена с помощью API-интерфейсов Microsoft и Amazon S3. Работа фильтра ограничивается выбранной вами папкой и не распространяется на вложенные папки. Вводимый текст фильтра должен точно соответствовать имени файла (с учетом регистра) и начинаться с первого символа искомого имени файла. Не обязательно указывать полное имя файла - достаточно начальных символов.
Выбор Удалить удалит выбранный объект (файл или папку). Перед удалением убедитесь, что выбран только один объект. При попытке одновременно удалить несколько объектов появится сообщение об ошибке. Если нужно удалить папку, сначала необходимо удалить ее содержимое (по одному объекту).
Облачное хранилище Ivanti
В версии 2024.4 компания Ivanti добавила поддержку облачного хранилища Ivanti, которое можно использовать для хранения распространяемых пакетов и файлов. Это полезно для клиентов, у которых пока нет учетных записей хранилища Blob-объектов Azure или Amazon S3.
Для использования облачного хранилища Ivanti не требуется дополнительных настроек или учетных данных. Каждый Tenant для Ivanti Neurons имеет собственный контейнер хранения Ivanti Azure.
В действии загрузки файла приложения распространения можно открыть обозреватель облачного хранилища. Там можно выбрать Хранилище Ivanti в разделе Учетная запись. Затем можно использовать кнопку Загрузить файл для загрузки файлов для распространения. Также можно использовать кнопку Удалить для удаления файлов.
Помните следующее во время использования облачного хранилища Ivanti:
- Облачное хранилище Ivanti ограничено 10 ГБ, и обозреватель покажет вам, какую часть этого пространства вы уже используете. Возможность расширения этого объема хранилища нет.
- Размеры файлов здесь не могут превышать 2 ГБ.
- Ivanti использует службу, которая сканирует загружаемые файлы на наличие вредоносных программ. После обнаружения вредоносного ПО файл будет удален, а платформа Ivanti Neurons отобразит оповещение об этом.
- Если вы используете только облачное хранилище Ivanti, нет необходимости конфигурировать ПО CORS (Cross-Origin Resource Sharing).
- Создание папок не поддерживается.
Загрузка файлов
Используйте кнопку Загрузка файлов для выбора и загрузки файлов. Загруженные файлы помещаются в выбранную в обозревателе папку. Размер загружаемых файлов не может превышать 2 ГБ. Можно загрузить только один файл за раз. Загрузка больших файлов может занять некоторое время - вы можете не сразу увидеть в обозревателе загруженные файлы.
Во время подготовки выбранного вами файла для загрузки отображается панель выполнения. Во время загрузки будет отображаться индикатор выполнения. После завершения загрузки появится сообщение об успешном завершении загрузки или об ошибке.
Если вы хотите загрузить файлы с размером более 2 ГБ, используйте для этого другие средства управления Amazon или Azure.
Перед загрузкой файлов необходимо сконфигурировать ПО CORS (Cross-Origin Resource Sharing). Если вы попытаетесь загрузить файл, и ПО CORS не сконфигурировано, появится сообщение о том, что нужно выполнить настройку CORS.
Конфигурация загрузки хранилища BLOB-объектов Azure
ПО Azure выполняет конфигурацию CORS на уровне учетной записи, а не контейнера. Информацию о конфигурации CORS можно найти на сайте Microsoft здесь.
- Доступные методы: PUT
- Доступные заголовки: content-type,x-ms-client-request-id,x-ms-useragent,x-ms-version
- Заголовки с воздействием: Etag
- Доступные группы: Домен, отображаемый в URL-адресе браузера на странице входа в платформу Ivanti Neurons (не URL-адрес после входа). Это зависит от того, где находится Tenant. Примеры: https://nvuprd-sfc.ivanticloud.com, https://ukuprd-sfc.ivanticloud.com и т.д.
Конфигурация загрузки Amazon S3
Amazon S3 выполняет конфигурацию CORS на уровне комплекта, а не учетной записи. Информацию о конфигурации CORS можно найти на сайте Amazon здесь.
- Доступные методы: PUT
- Доступные заголовки: content-type
- Заголовки с воздействием: Etag
- Доступные группы: Домен, отображаемый в URL-адресе браузера на странице входа в платформу Ivanti Neurons (не URL-адрес после входа). Это зависит от того, где находится Tenant. Примеры: https://nvuprd-sfc.ivanticloud.com, https://ukuprd-sfc.ivanticloud.com и т.д.
Значение хэша SHA256
Параметр загрузки файла также имеет дополнительное поле значения хэша. Если вы укажете значение хэша, процесс распространение приложения проверит это значение для загруженного файла. Если значения не совпадут, распространение приложения удалит загруженный файл и остановит процесс. Значение хэша необходимо, если нужно использование передовых технологий установки во время распространения приложений.
Простое действие Выполнить позволяет указать файл для выполнения, командную строку и пользователя, от имени которого должен запускаться установщик. Действия Выполнить MSI и Выполнить MSIX могут использоваться для выбора операций MSI, MSP, MSIX и параметров отображения.
Включает следующее: создание папок; перемещение, копирование и удаление файлов; упаковка и распаковка.
Перезагружает устройство в соответствии с политикой агента устройства. Если для приложения нужна перезагрузка, никакие другие приложения не будут установлены на этом устройство, пока оно не будет перезагружено.
Создание или удаления разделов реестра. Установка или удаление значений реестра.
Используется для выполнения командного файла или сценария Powershell. Параметр PowerShell Core не устанавливает ПО PowerShell Core, если оно отсутствует. Параметр Авто сначала попробует запустить PowerShell Core, и если оно не установлено, будет использоваться ПО PowerShell. Редактор сценариев встроен в это действие. Код вашего сценария нужно добавить в этот редактор.
Приостанавливает выполнение пакета на указанное количество секунд. Используйте, если для выполнения более ранних действий требуется дополнительное время.
Она используется для управления пакетами с помощью Диспетчера пакетов Windows (виджет).
Это действие конфигурируется автоматически после выбора Добавить приложение > Диспетчер пакетов Windows (виджет) на главной странице Каталог приложений и выбора пакета. Для этого действия не требуется никаких других действий или изменений.
Если необходимо, можно добавить и сконфигурировать это действие вручную. Это действие также можно использовать вместе с другими действиями и правилами обнаружения.
Для получения дополнительной информации об использовании виджета см. тему Microsoft.
Для Диспетчера пакетов необходима последняя версия виджета на управляемых устройствах. Если вы отключили ПО Магазина Microsoft на управляемых устройствах, их версия виджета может оставаться устаревшей, и обработка дистрибутивов Диспетчера пакетов для них может завершиться с ошибками. Чтобы это исправить, разверните пакет, обновляющий версию виджета, или активируйте магазин Microsoft.
На панели Параметры Диспетчера пакетов представлена кнопка выбора пакетов, которая может использоваться для отображения доступных пакетов в каталоге виджетов. Это тот же каталог, отображается во время использования кнопки Добавить приложение на главной странице Каталог приложений.
Каталог приложений содержит только приложения из хранилища winget, а не из msstore. Если у вас есть идентификатор приложения msstore, можно вручную указать его в командной строке после параметра --id, как описано далее в этом разделе.
Ввод текста в поле Поиск пакетов выполнит поиск среди всех метаданных пакетов в каталоге. Если вам нужно найти текст пакета в определенной категории метаданных, начните поиск со значений имя:, издатель: и т.д. - см. пример использования поля поиска.
Во время распространения приложений будет установлена последняя доступная версия выбранного вами пакета, независимо указанной в каталоге версии. Вы также можете вручную сконфигурировать действие для установки определенной версии.
Во время выбора пакета виджета в каталоге будут заполнены необходимые для установки пакета аргументы командной строки. Кроме того, вы можете изменить командную строку.
Обычная командная строка виджета:
install -e --id GitHub.GitHubDesktop --accept-package-agreements --accept-source-agreements --silent
Если нужно установить пакет, отсутствующий в каталоге приложений, вы можете создать собственную командную строку виджета. В приложении командной строки Windows выполните запрос поиска виджета: <query> для получения списка доступных пакетов. Найдите строку в столбце ИД для выбора нужного пакета и командную строку виджета, добавляемую после параметра --id.
Автор пакета виджета может добавить в пакет установщики, ограниченные по пользователю (текущий пользователь), компьютеру (все пользователи) или null (ничего не указано). По умолчанию виджет попытается выбрать наиболее подходящее устройство по пользователю.
Вы можете отменить этот автоматический выбор, указав область действия в командной строке с помощью параметра --scope. Например, если нужно установить пакет для всех пользователей устройства, вы можете добавить в командную строку виджета параметр --scope machine. Имейте в виду, если пакет не поддерживает область действия по компьютеру, и вы добавите параметр в командную строку, установка пакета завершится с ошибкой.
Обязательно проверьте командную строку перед развертыванием пакета.
Правила обнаружения пакетов
Правила обнаружения пакетов для распространения приложений могут использоваться для определения, был ли пакет уже установлен и, поэтому его не нужно устанавливать повторно.
Сконфигурируйте правила обнаружения пакетов в разделе Распространение приложений > Каталог приложений. Добавьте или измените приложение и выберите вкладку Пакет. Добавьте предшествующее развертыванию действие Обнаружение в дерево конструктора и выберите его для конфигурации.
Правила обнаружения проверяются только вначале обработки пакета, поэтому действие обнаружения всегда будет первым элементом в средстве сборки, если оно используется. Правила обнаружения выполняются в установленном порядке.
ВАЖНО: Если результат любого действия обнаружения окажется положительным, обработка пакета будет остановлена, а состояние приложения устройства будет отображено как соответствующее.
Доступные правила обнаружения:
Укажите полный путь к файлу и имя файла. Выберите Существует или Не существует.
Информация о версии файла обычно доступна только для исполняемых файлов. Функция распространения приложений использует значение "Версия файла", а не значение "Версия продукта". Укажите полный путь к файлу и имя файла. Варианты оператора: "меньше" или "больше, "равно" или "между". Если указанный вами файл и путь не существуют или файл не имеет распознаваемой версии, будет возвращено значение 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-адресе веб-браузера. Это полезно во время поиска нужного файла журнала.
Вы можете найти упрощенный журнал удаленно на странице Распространение приложений > Статус распространения. Нужное устройство и пакет можно найти и открыть в меню действий с помощью параметра Показать журнал.