Удалённое управление Mac через AppleScript
Кому это полезно
- Тем, у кого в доме или офисе несколько Mac и нужно быстро послать команду без открытия общего экрана.
- Администраторам и энтузиастам автоматизации, которые предпочитают простые, локальные решения на базе AppleScript.
Что нужно понять в одном предложении
AppleScript — это встроенный язык автоматизации macOS; через протокол eppc он позволяет посылать команды приложениям на удалённом Mac в локальной сети или по Bonjour‑имени.
Требования и подготовка
- Оба Mac должны находиться в одной сети или быть доступны по Bonjour/адресу.
- На целевом Mac нужно включить приём удалённых команд (Remote Apple Events).
- Нужны имя пользователя и пароль учётной записи на целевой машине с правами выполнения команд.
Настройки для удалённого управления
- На Mac, который вы хотите контролировать (например, рабочий стол), откройте Системные настройки > Общий доступ.
- Поставьте галочку напротив «Удалённые Apple события» (Remote Apple Events). При необходимости ограничьте пользователей.

- Узнайте IP‑адрес на вкладке Сеть (Системные настройки > Сеть) или используйте имя Bonjour, показанное вверху окна Общий доступ, например: smith-nancy-computer.local.

Важно: убедитесь, что файервол и роутер не блокируют локальные соединения между машинами. Если вы используете VPN или разные подсети, нужно настроить маршрутизацию или использовать другой способ соединения.
Создание командного скрипта
- На управляющем Mac (например, ноутбуке) откройте Редактор AppleScript (Applications > Utilities).
- File > New (Файл > Новый).
Ниже — несколько простых AppleScript‑примеров. Замените IP‑адрес или имя машины на адрес вашего Mac. Формат адреса: eppc://192.168.1.2 или eppc://hostname.local
Пример: отправить удалённую команду «заснуть»:
tell application "Finder" of machine "eppc://192.168.1.2"
sleep
end tellЕсли вы используете имя Bonjour, пример выглядит так:
tell application "Finder" of machine "eppc://smith-nancy-computer.local"
sleep
end tell
- Нажмите кнопку «Compile» (Скомпилировать). Если ошибок нет, скрипт готов.
- Убедитесь, что удалённый Mac включён и доступен. Нажмите Run (Запустить). Появится запрос аутентификации — введите имя пользователя и пароль удалённого Mac.

Если всё прошло успешно, вы отправили первую команду.
Сохранение и удобный доступ к скриптам
- Чтобы иметь быстрый доступ, включите меню скриптов: откройте Редактор AppleScript > Preferences и включите «Показывать меню скриптов на строке меню».
- Либо поместите скрипт в вашу папку \~/Library/Scripts — он появится в меню.
- Часто используемые скрипты можно сохранить как приложение и перенести в Dock для быстрого запуска.


Полезные примеры команд (шаблоны)
- Запустить iTunes (или Музыка в более новых macOS):
tell application "iTunes" of machine "eppc://IP_ADDRESS"
play
end tell- Остановить iTunes:
tell application "iTunes" of machine "eppc://IP_ADDRESS"
stop
end tell- Установить громкость (0–7):
tell application "Finder" of machine "eppc://IP_ADDRESS"
set volume 7 -- Назовите этот скрипт "Full Volume"
end tell- Открыть Safari:
tell application "Safari" of machine "eppc://IP_ADDRESS"
activate
end tell- Закрыть Safari:
tell application "Safari" of machine "eppc://IP_ADDRESS"
quit
end tellСовет: вместо жёсткого указания приложения можно вызывать shell‑команды через “do shell script” для более сложных сценариев.
Когда это может не работать (примеры неудач)
- Служба «Удалённые Apple события» отключена на целевой машине.
- Учетная запись не имеет прав на выполнение команд или вы вводите неверный пароль.
- Сетевые настройки/фаервол блокируют eppc‑трафик.
- Приложение на удалённом Mac не поддерживает нужные AppleScript‑команды.
Альтернативы и когда их выбрать
- VNC / Общий экран: если нужен графический доступ к рабочему столу.
- SSH: для командной строки и скриптов без GUI, когда включён доступ по SSH.
- Apple Remote Desktop (платно): для управления множеством машин и развёртывания.
- Сторонние утилиты (TeamViewer, AnyDesk): когда нужен удалённый доступ через интернет или сквозная маршрутизация.
Мини‑методология: как быстро создать надёжный набор скриптов
- Составьте список частых задач (сон, воспроизведение музыки, перезапуск приложения).
- Для каждой задачи сделайте шаблон с параметрами (IP или имя, имя пользователя как переменная).
- Сохраните скрипты в \~/Library/Scripts и подпишите понятными именами.
- Тестируйте каждый скрипт вручную перед автоматизацией.
- При необходимости упакуйте в приложение и разместите в Dock или запускайте по расписанию через launchd.
Роли и чек‑листы
- Администратор:
- Включил «Удалённые Apple события».
- Проверил права пользователей.
- Настроил резервную сеть и проверил фаервол.
- Пользователь (power user):
- Сохранил шаблоны в \~/Library/Scripts.
- Настроил доступ к скриптам через меню.
- Тестировал вход с учётными данными.
Критерии приёмки
- Скрипт компилируется без ошибок в Редакторе AppleScript.
- Команда выполняется на целевой машине при вводе корректных учётных данных.
- Скрипт сохраняется и запускается из меню скриптов или Dock.
Безопасность и конфиденциальность
- Храните пароли отдельно; по возможности используйте учётную запись с ограниченными правами.
- Не включайте Remote Apple Events на машинах, доступных в публичной сети без VPN.
- Контролируйте список пользователей, которым разрешён доступ.
Краткий глоссарий (в одну строку)
- eppc: протокол Apple Event over IPC/Network, используемый для посылки AppleScript-команд удалённо.
- Bonjour: локальная служба обнаружения устройств в сети Apple (имена вида hostname.local).
- AppleScript: язык автоматизации macOS для управления приложениями и системными функциями.
Отладка и распространённые ошибки
- “Permission denied” — проверьте имя пользователя и права на целевом Mac.
- “Could not connect” — убедитесь в доступности IP/Bonjour имени и отсутствии блокирующего фаервола.
- Ошибки компиляции — проверьте синтаксис и кавычки в строке eppc://.
Примеры расширения: автоматизация по расписанию
Если вы хотите выполнять команды автоматически, используйте launchd для запуска приложения‑скрипта по расписанию или cron‑замены через launchctl. Сохраните скрипт как приложение и добавьте plist для периодического запуска.
Важно: автоматический запуск требует, чтобы учетная запись и разрешения были настроены заранее.
Ресурсы и идеи для развития
- Используйте “do shell script” для запуска сложных команд на удалённой машине.
- Комбинируйте AppleScript с Automator или Shortcuts для визуальных рабочих процессов.
- Когда нужно управление через интернет, рассмотрите безопасные VPN‑соединения и Apple Remote Desktop.
Заключение
AppleScript даёт простой и эффективный способ отправлять команды другому Mac без участия графического общего экрана. Настройка занимает несколько минут: включите удалённые события, узнайте IP или имя Bonjour, создайте и протестируйте скрипт. Для частого использования сохраните скрипты в меню или Dock.
Важно: всегда учитывайте безопасность и права доступа при открытии удалённых интерфейсов.
Критерии приёмки
- Скрипт выполняет целевую задачу на удалённой машине.
- Скрипт доступен в меню или Dock для повторного использования.
- Права и безопасность настроены и протестированы.
Спасибо за чтение. Если у вас будут свои полезные AppleScript‑команды для удалённого управления, поделитесь ими — они помогут другим пользователям автоматизировать ежедневные задачи.
Похожие материалы
Отправка почты в Go через net/smtp
lsof в Linux: как просмотреть открытые файлы
Команда find в Linux — быстрый поиск файлов
Управление автозапуском Windows с Autoruns
Шифрование смартфона — практическое руководство