Керування елементами входу і фоновими завданнями на Mac
До macOS 13 частина процесу розробки допоміжних виконуваних файлів містила скрипти, які встановлювали один або кілька списків властивостей у певні каталоги залежно від типу сервісу. У macOS 13 або новішій нова структура в пакеті програм спрощує інсьталювання елементів автозапуску й пов’язаних із ними списків властивостей шляхом оновлення допоміжних виконуваних файлів із більш ранніх версій macOS. Ця структура використовується для створення прозорості для користувача під час конфігурування елементів автозапуску, агентів запуску і демонів запуску на Mac. Ця структура використовує об’єкт SMAppService
для керування допоміжними виконуваними файлами, які розташовані всередині основного пакета програми. Вона також може бути використана для реєстрації та керування елементами автозапуску, агентами запуску і демонами запуску як допоміжними виконуваними файлами для програми, і працює з усіма типами програм незалежно від того, як вони були інстальовані.
Розгортання допоміжних програм і виконуваних файлів
Організація має можливість налаштувати певні елементи за допомогою нового конфігураційного набору даних. Payload Content являє собою масив словників, кожен з яких визначає правило для одного або декількох потенційних елементів. Перший елемент, який відповідає правилу під час інсталяції, повідомляє адміністратора про те, що встановлюються керовані елементи. Будь-які наступні інсталяції об’єктів, що відповідають правилу, не створюють додаткових сповіщень для нагадування дня (через 24 години після першого сповіщення). У міру виявлення елементів і управління ними за допомогою цієї конфігурації адміністратори й користувачі повинні подавати відгуки постачальникам програм і внутрішнім командам розробників, щоб скористатися перевагами нової структури в пакетній програмі.
Сповіщення кінцевих користувачів для програм, які управляються в рамках цього набору даних, обробляються єдиним повідомленням, з якого користувач дізнається, що керовані елементи встановлюються і їх можна переглянути в системних налаштуваннях. Поки це сповіщення залишається на екрані, жодні інші сповіщення для керованих об’єктів не з’являються. Якщо це сповіщення закрито, будь-які наступні керовані інсталяції сповіщатимуть користувача про це знову. Якщо сповіщення «відкладене», більше не буде сповіщень про елементи автозапуску, агенти запуску і демони запуску до кінця вибраного часу; 1 годину або 1 день.
Ідентифікація програм за допомогою керування фоновими завданнями
Адміністратори повинні знати про всі елементи, які використовують допоміжні програми та виконувані файли, розгорнуті в їхній організації. Щоб допомогти визначити, які елементи розгорнуті та зареєстровані в новій структурі, протестуйте стандартні робочі процеси розгортання та проаналізуйте отриману конфігурацію для відповідних елементів. Наприклад:
Використовуйте декларативні звіти про стан фонових завдань, доступні в macOS 14 і новіших.
Відкрийте «Системні параметри» > «Загальні» > «Елементи автозапуску», щоб побачити список усіх елементів, які зареєстровані в новій структурі. Щоб побачити елемент, який запускається, натисніть кнопку «Інформація».
Використовуйте інструменти командного рядка для збору важливої системної інформації, скидання даних для тестування і моніторингу активності за допомогою програм «Консоль» і «Термінал».
sfltool і dumpbtm: Виводить поточний стан елементів входу в систему й фонових елементів, включаючи завантажені UUID набору даних
servicemanagement
. Результати виконання цієї команди слід додавати до будь-якого відгуку, який ви надсилаєте, разом з іншими елементами, переліченими в розділі «Зворотний зв’язок».sfltool resetbtm: Скидає дані для входу та фонові дані елемента. Якщо ви використовуєте цю команду між тестами, рекомендується, щоб користувачі також перезавантажили свій комп’ютер.
Моніторинг активності управління логіном і фоновими елементами в Консолі: Відфільтруйте за
subsystem:backgroundtaskmanagement
таcategory:mcx
або скористайтеся такою командою для потокового перегляду журналів у Терміналі:log stream --debug --info --predicate "subsystem = 'com.apple.backgroundtaskmanagement'and category = 'mcx'"
Mac Evaluation Utility версії 4.3.0 і новіші, доступні на AppleSeed для IT, можуть генерувати результати тестів, повертаючи детальну інформацію, подібно до
sfltool dumpbtm
. Ці тести для елементів автозапуску, агентів запуску і демонів запуску повідомляють про інстальовані зараз програми, які використовують управління входом і фоновими елементами в macOS. Ці результати тестів форматовані в рядок з іншими тестами Mac Evaluation Utility, і їх можна експортувати як текстові файли з розділювачами для подальшого аналізу.
Використання профілю конфігурації XML для управління фоновими завданнями
Ви можете використовувати профіль конфігурації XML для управління фоновими завданнями. У такому разі всі елементи порівнюються з усіма типами правил. Коли елемент збігається з правилом, він схвалюється автоматично. Під час співставляння розглядаються такі типи правил:
BundleIdentifier програми: ідентифікатор пакета програми (відомий як bundle ID), який повинен бути точним збігом.
BundleIdentifierPrefix програми: префікс ідентифікатора пакета програми, який повинен збігатися.
TeamIdentifier розробника: ідентифікатор команди з атрибутів підписання коду, який повинен бути точним збігом.
Label служби: значення параметра
launchd
.plist Label, яке повинно бути точним збігом.LabelPrefix служби: префікс параметра
launchd
.plist Label, який повинен збігатися.
Докладніше дивіться в розділі Приклад керування фоновим завданням і в параметрах набору даних MDM Managed Login Items.
Атрибуції з інших програм
Компанія Apple підтримує файл уподобань під назвою attributions.plist
, який містить допоміжні програми або виконувані файли багатьох програм, які часто використовуються певною програмою. Ця інформація може бути використана для ідентифікації допоміжних програм і виконуваних файлів, які з’являються в елементах входу користувача під час запуску. Для отримання повного переліку цих загальних елементів та їх атрибутів перегляньте файл, розташований тут:
/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/