本指南适用于需要大规模安装 Comet 的组织。如果你要查找个人版 Comet 安装程序,可在此处找到 这里.
本指南介绍如何在 macOS 系统上使用移动设备管理(MDM)解决方案,在整个组织中部署 Comet 浏览器。
先决条件
要使用 MDM 安装 Comet for Enterprise,你需要:
-
一个 MDM 解决方案(Jamf Pro、Intune、Kandji、Mosyle、Workspace ONE 等)
-
访问你组织的 Comet 设置: perplexity.ai/account/org/comet
-
你的组织令牌(可在 Comet Setup 页面获取)
概述
Mac 策略会通过你的 MDM 解决方案使用 配置描述文件 (.mobileconfig 文件)进行部署。这些描述文件使用 ai.perplexity.comet 载荷类型来配置 Comet 设置。
开始使用
首先,你需要下载 Comet 安装程序,并从以下位置获取组织令牌: perplexity.ai/account/org/comet.
Comet for Enterprise 安装程序目前以 .dmg macOS 磁盘映像形式提供。
大规模部署 Comet
使用 Jamf Pro 等工具进行大规模部署时:
-
上传
.dmg文件到你的 MDM 解决方案 -
准备一个脚本,用于挂载 DMG,将 Comet 应用复制到
/Applications,然后卸载 DMG -
此脚本可以作为安装后任务的一部分,也可以包含在软件包中
-
使用安装后脚本来:
-
处理应用复制
-
设置权限
-
如有需要,将 Comet 设为默认浏览器
-
配置首次运行设置(必要时通过操作 plist)
-
Jamf Pro 部署
Jamf Pro 允许你通过两种不同方式部署和管理自定义应用设置。
-
仅使用 plist 内容 (不包含完整的 mobileconfig 包装),由 Jamf 将其包装成合适的配置描述文件。
-
使用自定义 JSON schema 提供基于界面的策略管理方式(Jamf 独有)
使用 plist
使用 plist
步骤 1:创建配置描述文件
-
前往 Computers → 配置描述文件 → New
-
输入显示名称(例如“Comet Policies”)
-
选择 Application & Custom Settings → External Applications
-
选择 Upload
步骤 2:配置偏好设置域
-
Preference Domain:
ai.perplexity.comet -
粘贴下方示例中的 plist 内容
步骤 3:设定范围并部署
-
Go to the Scope 标签页
-
添加目标电脑或群组
-
点击 Save
在配置浏览器策略之前,必须先将设备注册到你的组织。这会把每个 Comet 安装与企业账户关联,以便集中管理。
从以下位置获取组织令牌: perplexity.ai/account/org/comet 并部署以下 plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CloudManagementEnrollmentToken</key>
<string>YOUR-ORG-TOKEN-HERE</string>
</dict>
</plist>
设备注册后,你可以部署其他配置描述文件来强制执行浏览器策略。请参见下方示例。
示例:阻止扩展程序
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExtensionInstallBlocklist</key>
<array>
<!-- Metamask -->
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
</dict>
</plist>
示例:阻止 URL
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
<string>*.competitor.com</string>
</array>
</dict>
</plist>
示例:多个策略
在单个 plist 中组合多个策略:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExtensionInstallBlocklist</key>
<array>
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
</array>
</dict>
</plist>
使用 Jamf 自定义 Schema 实现基于界面的方式
使用 Jamf 自定义 Schema 实现基于界面的方式
步骤 1:创建配置描述文件
-
前往 Computers → 配置描述文件 → New
-
输入显示名称(例如“Comet Policies”)
-
选择 Application & Custom Settings → External Applications
-
选择 Add
步骤 2:配置偏好设置域
-
Preference Domain:
ai.perplexity.comet -
选择 Add Schema
-
粘贴下方示例中的 JSON Schema,以填充可配置属性
步骤 3:设定范围并部署
-
Go to the Scope 标签页
-
添加目标电脑或群组
-
点击 Save
示例:主页和启动设置
{
"title": "Perplexity Comet – Homepage and Startup",
"description": "Control homepage, startup behavior, and New Tab configuration.",
"properties": {
"HomepageLocation": {
"title": "Homepage Location",
"description": "URL of the homepage that is loaded when the Home button is pressed.",
"type": "string",
"property_order": 10
},
"HomepageIsNewTabPage": {
"title": "Homepage Is New Tab Page",
"description": "If true, the homepage is the New Tab page instead of a custom URL.",
"type": "boolean",
"property_order": 20
},
"ShowHomeButton": {
"title": "Show Home Button",
"description": "Shows or hides the Home button in the toolbar.",
"type": "boolean",
"property_order": 30
},
"RestoreOnStartup": {
"title": "Restore On Startup",
"description": "Configures what pages are shown at startup.",
"type": "integer",
"enum": [0, 1, 4],
"options": {
"enum_titles": [
"0 – Open the New Tab page",
"1 – Restore the last session",
"4 – Open a list of URLs"
]
},
"property_order": 40
},
"RestoreOnStartupURLs": {
"title": "Restore On Startup URLs",
"description": "List of URLs to open on startup when RestoreOnStartup is set to 4.",
"type": "array",
"items": {
"type": "string"
},
"property_order": 50
},
"NewTabPageLocation": {
"title": "New Tab Page Location",
"description": "Custom URL to use for the New Tab page instead of the default.",
"type": "string",
"property_order": 60
},
"ManagedBookmarks": {
"title": "Managed Bookmarks",
"description": "JSON-like structure defining a set of mandatory bookmarks managed by policy.",
"type": "array",
"items": {
"type": "string"
},
"property_order": 70
},
"BookmarkBarEnabled": {
"title": "Bookmark Bar Enabled",
"description": "Shows or hides the bookmarks bar by default.",
"type": "boolean",
"property_order": 80
},
"DefaultBrowserSettingEnabled": {
"title": "Default Browser Setting Enabled",
"description": "Controls whether the browser can be set as the system default.",
"type": "boolean",
"property_order": 90
},
"BlockExternalExtensions": {
"title": "Block External Extensions",
"description": "Blocks extensions installed outside the browser when set to true.",
"type": "boolean",
"property_order": 100
}
},
"required": []
}
示例:强制安装扩展程序——例如 1Password 和 Okta Verify
{
"title": "Perplexity Comet – 1Password and Okta Extensions",
"description": "Toggle force-install for 1Password and Okta extensions in Comet.",
"properties": {
"ForceInstall_1Password": {
"title": "Force install 1Password",
"description": "If enabled, Comet force-installs the 1Password browser extension.",
"type": "boolean",
"default": false,
"property_order": 10
},
"ForceInstall_OktaPlugin": {
"title": "Force install Okta browser plugin",
"description": "If enabled, Comet force-installs the Okta browser plugin defined below.",
"type": "boolean",
"default": false,
"property_order": 20
},
"OktaPluginExtensionId": {
"title": "Okta browser plugin extension ID",
"description": "Chrome Web Store extension ID for your Okta browser plugin (for example, from the Web Store URL).",
"type": "string",
"default": "",
"property_order": 30
},
"ExtensionInstallForcelist": {
"title": "Additional force-installed extensions (advanced)",
"description": "Optional: extra entries in the form extension_id;<https://clients2.google.com/service/update2/crx>. Rows here are in addition to 1Password/Okta switches above.",
"type": "array",
"items": {
"type": "string",
"title": "Extension ID and update URL",
"default": "extension_id;<https://clients2.google.com/service/update2/crx>"
},
"property_order": 40
},
"_info": {
"title": "Info",
"description": "Jamf will write a prefs key named ExtensionInstallForcelist. Enable the switches above to add 1Password and/or Okta automatically; use the array only for extra extensions.",
"type": "string",
"options": {
"inputAttributes": {
"readonly": true
}
},
"property_order": 50
}
},
"required": []
}
通用 MDM 部署
对于需要完整 .mobileconfig 文件的 MDM 解决方案(如 Kandji、Mosyle、Fleet、SimpleMDM 等),请使用下方完整的配置描述文件格式。
部署步骤:
-
复制示例模板并按需自定义
-
为
PayloadUUID字段生成唯一 UUID(在终端中使用uuidgen) -
另存为
.mobileconfig文件 -
作为自定义配置描述文件上传到你的 MDM
-
分配给目标设备或群组
在配置浏览器策略之前,必须先将设备注册到你的组织。这会把每个 Comet 安装与企业账户关联,以便集中管理。
部署包含你的配置描述文件 CloudManagementEnrollmentToken. Get your organization token from perplexity.ai/account/org/comet.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>CloudManagementEnrollmentToken</key>
<string>YOUR-ORG-TOKEN-HERE</string>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - Organization Enrollment</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.org-enrollment</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>B2C3D4E5-F6A7-8901-BCDE-F23456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
设备注册后,你可以部署其他配置描述文件来强制执行浏览器策略。请参见下方示例。
示例:阻止扩展程序
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>Comet Extension Blocklist Policy</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>ExtensionInstallBlocklist</key>
<array>
<!-- Metamask -->
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - Extension Blocklist</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.extension.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87654321-4321-4321-4321-210987654321</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
示例:阻止 URL
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>Comet URL Blocklist Policy</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
<string>*.competitor.com</string>
</array>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - URL Blocklist</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.url.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87654321-4321-4321-4321-210987654321</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
