部署桌面應用程式

如何在公司或學校的電腦上安裝 Antimatter 桌面應用程式,並在 Windows、macOS 和 Linux 上集中設定伺服器、使用者名稱與更新檢查。

下載應用程式

桌面應用程式的發行版本位於 GitHub 的 github.com/AntimatterChat/desktop-app/releases。與伺服器一樣,該應用程式目前處於測試階段:版本號中連字號後有後綴的發行版本會標記為 Pre-release。每個發行版本都包含一個 SHA256SUMS 檔案,其中列出了所有檔案的校驗和。您可以在 Linux 上使用 sha256sum --check --ignore-missing SHA256SUMS 來驗證下載,或在 PowerShell 中將 Get-FileHash <file> -Algorithm SHA256 的輸出與 SHA256SUMS 中的對應行進行比對。

  • Windows(x64 和 arm64):.exe 安裝程式、.msi 套件,或 .zip 壓縮檔。例如 antimatter-desktop-<version>-win-x64.exe 和 antimatter-desktop-<version>-win-x64.msi。
  • macOS:.dmg 磁碟映像檔或 .zip,適用於 Apple 晶片(arm64)、Intel Mac(x64)或兩者皆支援(universal)。
  • Linux(x64 和 arm64):.deb 或 .rpm 套件、AppImage、Flatpak 套件或 .tar.gz 壓縮檔。

應使用哪種 Windows 安裝程式

.exe 安裝程式.msi 套件
適用對象自行安裝應用程式的使用者將應用程式部署到公司電腦的企業
安裝方式僅針對目前的 Windows 帳戶,安裝於 %LOCALAPPDATA%\Programs\antimatter-desktop,無需管理員權限針對電腦上的所有使用者,安裝於 C:\Program Files\Antimatter,需要管理員權限
更新應用程式會檢查新版本,並提供下載新的 .exe 選項,以就地更新已安裝的副本應用程式不會檢查新版本:由您負責部署更新

應用程式會在執行期間每小時檢查 GitHub 上的新版本,且僅檢視正式發行版,不檢視預先發行版。找到新版本時,會通知使用者並提供下載連結。透過 MSI 安裝的副本預設不會進行檢查,因為使用它的通常無法安裝軟體。您可以透過 EnableAutoUpdater 設定為其開啟檢查功能:此時提供的下載檔案將為新的 .msi,需要管理員權限。

請使用 MSI 透過 SCCM (Configuration Manager)、Intune 或群組原則軟體安裝進行受管部署。安裝 MSI 時,若執行安裝的使用者帳戶存在 .exe 副本,將予以移除。

您可以管理的設定

相同的設定存在於所有系統上。在 Windows 上,它們是 HKEY_LOCAL_MACHINE(針對電腦)或 HKEY_CURRENT_USER(針對單一使用者)下 SOFTWARE\Policies\Antimatter 的登錄值。在 macOS 和 Linux 上,它們是受管偏好設定或策略檔案中的金鑰。

設定在 Windows 上在 macOS 和 Linux 上功能說明
DefaultServerList包含每個伺服器一個字串值的子金鑰:值的名稱為其分頁名稱,資料為其 URL包含 name 和 url 的字典(Linux 上為物件)陣列將伺服器新增至應用程式。使用者無法編輯或移除它們。
DefaultUsername字串字串在這些伺服器的登入頁面上填入使用者名稱。
EnableServerManagementDWORD,0 或 1布林值0 或 false:使用者只能使用由 DefaultServerList 設定的伺服器,且應用程式會隱藏新增、編輯和移除伺服器的選項。未設定:使用者可以新增自己的伺服器。
EnableAutoUpdaterDWORD,0 或 1布林值0 或 false:應用程式永不檢查新版本,並隱藏檢查更新。1 或 true:會進行檢查,即使透過 MSI 安裝也是如此。未設定:.exe 副本會檢查,MSI 副本不會。
TrustedEmbeddedMediaOrigins包含字串值的子金鑰,每個值為包含 serverOrigin 和 embeddedOrigin 的 JSON 物件包含 serverOrigin 和 embeddedOrigin 的字典陣列允許嵌入在伺服器頁面中的內容(例如視訊會議頁面)使用已授予該伺服器的相機和麥克風權限。
  • 使用者名稱 僅在由策略設定的伺服器登入頁面上自動填入,不會在個人自行加入的伺服器上填入,也不會覆蓋使用者手動輸入的內容。使用者仍可隨時修改。百分號之間的環境變數會被取代,因此單一值即可適用於所有人:Windows 上的 %USERNAME% 或 macOS 與 Linux 上的 %USER% 會填入帳號名稱,而 %USERNAME%@example.com 則會填入符合此模式的電子郵件地址。如果變數未設定,應用程式將不會填入任何內容。
  • 如果您關閉伺服器管理功能,請在 DefaultServerList 中設定至少一個伺服器。
  • 在 Windows 上,電腦策略(HKEY_LOCAL_MACHINE)的優先級高於使用者策略(HKEY_CURRENT_USER)。兩者的伺服器清單會合併。
  • 應用程式在啟動時讀取設定:變更後,使用者必須結束並重新開啟應用程式。

Windows:使用 MSI 進行靜默安裝

MSI 接受公開屬性,用於將設定寫入電腦策略,位置在 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter。您可以在 SCCM 應用程式、Intune 應用程式或腳本中使用這些屬性。在 PowerShell 中:

msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
屬性寫入內容若未提供
SERVERURLDefaultServerList 中的伺服器,使用此 URL無伺服器
SERVERNAME該伺服器分頁的名稱Antimatter
DEFAULTUSERNAMEDefaultUsername無
AUTOUPDATEEnableAutoUpdater,0 或 1無:MSI 副本不會檢查更新
SERVERMANAGEMENTEnableServerManagement,0 或 1無:使用者可以加入伺服器
  • 未提供的屬性不會寫入任何內容,因此不會覆蓋由群組原則設定的值。AUTOUPDATE 和 SERVERMANAGEMENT 僅接受 0 或 1。MSI 只設定一個伺服器:若要設定更多,請使用群組原則。
  • DEFAULTUSERNAME 必須以文字 %USERNAME% 的形式傳入安裝程式,以便應用程式為每位使用者進行取代。否則,執行安裝的 shell 會將其取代為其自身的帳號名稱。在 PowerShell 中,請保留單引號。在 .bat 檔案中,請寫成 %%USERNAME%%。在測試安裝後,請在登錄中檢查 DefaultUsername 是否包含 %USERNAME%。
  • 每次升級時請再次傳遞這些屬性。 安裝新版 MSI 會移除舊版本及其寫入的值,然後寫入新命令列的值。SCCM 和 Intune 會保留應用程式的命令列:請在每個新版本中重複使用它。或者,改用群組原則或 Intune 設定策略,升級不會影響這些設定。
  • MSI 與群組原則會寫入相同的登錄值。對於每個設定,請使用其中一種方式:解除安裝 MSI 會刪除它所寫入的值,即使群組原則也設定了這些值。
  • MSI 也會將其安裝資料夾記錄在 HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir)中。應用程式藉此得知它是透過 MSI 安裝的。

要解除安裝:msiexec /x antimatter-desktop-<version>-win-x64.msi /qn。在 Intune 中,「Windows 應用程式 (Win32)」類型使用相同的命令列。對於「企業應用程式」類型,請將屬性加入其命令列引數中。

Windows:群組原則與 Intune

管理範本 antimatter.admx 和 en-US\antimatter.adml 位於已安裝應用程式的 gpo 資料夾中(MSI 為 C:\Program Files\Antimatter\gpo),以及應用程式儲存庫的 resources/windows/gpo 資料夾中。它們顯示以下原則,位於 管理範本 › Antimatter 之下:

原則登錄值設定
伺服器 (DefaultServerList)DefaultServerList 子機碼電腦與使用者
預先填入的使用者名稱 (DefaultUsername)DefaultUsername電腦與使用者
允許使用者新增和移除伺服器 (EnableServerManagement)EnableServerManagement電腦與使用者
通知新版本 (EnableAutoUpdater)EnableAutoUpdater僅限電腦
受信任的嵌入媒體來源 (TrustedEmbeddedMediaOrigins)TrustedEmbeddedMediaOrigins 子機碼電腦與使用者

網域中的群組原則

  1. 將 antimatter.admx 複製到中央儲存區 \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions,並將 antimatter.adml 複製到其 en-US 資料夾。
  2. 在群組原則管理編輯器中,開啟 電腦設定(或 使用者設定)› 原則 › 管理範本 › Antimatter。
  3. 編輯原則,選擇 已啟用 並填寫內容。對於 伺服器,請點擊 顯示 並為每個伺服器新增一行:值的名稱為分頁名稱,值為伺服器 URL,例如 https://chat.example.com。

啟用 允許使用者新增和移除伺服器 或 通知新版本 會寫入 1;停用則寫入 0。

Intune

在裝置 › 設定中,使用匯入 ADMX匯入 antimatter.admx 與 en-US\antimatter.adml。然後從範本 › 已匯入的管理範本建立設定檔,並在其中設定 Antimatter 原則。

單一電腦,或腳本

將範本複製到 C:\Windows\PolicyDefinitions,即可在 gpedit.msc(Windows Pro 與 Enterprise)中使用。或者,直接寫入登錄值,以管理員身分匯入 .reg 檔案(reg import antimatter-policies.reg),例如如下所示。同一資料夾中的 example-policies.reg 檔案包含這些值,並附有註解。

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter]
"EnableServerManagement"=dword:00000000
"EnableAutoUpdater"=dword:00000000
"DefaultUsername"="%USERNAME%"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter\DefaultServerList]
"Chat"="https://chat.example.com"

macOS:設定描述檔

在 macOS 上,應用程式會從其 bundle identifier chat.antimatter.desktop 的管理偏好設定中讀取設定,使用設定表格中的金鑰。請透過您的 MDM(Jamf、Intune、Kandji、Mosyle 等)將其作為設定描述檔部署。

  • 應用程式儲存庫的 resources/mac/mdm 資料夾中有一個範本描述檔 antimatter.mobileconfig。請編輯其值,並提供您自己的 PayloadIdentifier 與 PayloadUUID 值(uuidgen 可產生新的 UUID),然後將其作為自訂描述檔上傳。
  • 大多數 MDM 也接受單獨的金鑰,作為 chat.antimatter.desktop 的「自訂設定」或「偏好設定領域」負載。同一資料夾中的 example-managed-preferences.plist 包含這些金鑰。

描述檔負載中的設定:

<key>PayloadType</key>
<string>chat.antimatter.desktop</string>
<key>DefaultServerList</key>
<array>
    <dict>
        <key>name</key>
        <string>Chat</string>
        <key>url</key>
        <string>https://chat.example.com</string>
    </dict>
</array>
<key>DefaultUsername</key>
<string>%USER%</string>
<key>EnableServerManagement</key>
<false/>
<key>EnableAutoUpdater</key>
<false/>

布林值也可以作為整數 0 和 1 提供。

Linux:原則檔案

在 Linux 上,應用程式會讀取 /etc/antimatter-desktop/policies.json,這是一個包含設定表格金鑰的 JSON 物件:

{
    "DefaultServerList": [
        {"name": "Chat", "url": "https://chat.example.com"}
    ],
    "DefaultUsername": "%USER%",
    "EnableServerManagement": false,
    "EnableAutoUpdater": false,
    "TrustedEmbeddedMediaOrigins": []
}

請使用您的設定管理工具(Ansible、Puppet、Salt 等)部署此檔案,擁有者為 root,所有人可讀,僅 root 可寫:

sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json

無效的 JSON 檔案會被忽略,並在應用程式日誌中顯示警告。Flatpak 版本無法看到主機的 /etc:請授予其讀取權限,它將從 /run/host/etc/antimatter-desktop/policies.json 讀取該檔案:

sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop

為 Mattermost 桌面應用程式設定的原則

在 Windows 上,應用程式也會將 Mattermost 桌面應用程式設定的策略作為備援讀取,路徑位於 SOFTWARE\Policies\Mattermost。它會依位置讀取:策略金鑰下的值、DefaultServerList 子金鑰以及 TrustedEmbeddedMediaOrigins 子金鑰。對於這三個位置,只有當 Antimatter 金鑰在任一蜂巢中都沒有值時,才會讀取 Mattermost 金鑰。因此,一旦直接在 Antimatter 金鑰下設定了某個值(例如透過 MSI 的 AUTOUPDATE 屬性),Mattermost 金鑰下直接設定的值便不會被讀取。請一次性將所有策略移至 Antimatter 金鑰。

在 macOS 上,不會讀取 Mattermost 桌面應用程式的受管理偏好設定(com.mattermost.desktop):請為 chat.antimatter.desktop 設定。

未簽署的建置

桌面應用程式的建置目前尚未使用發行商憑證簽署。

  • Windows. 當使用者開啟下載的 .exe 或 .msi 時,Microsoft Defender SmartScreen 會提示 Windows 已保護電腦,並指出發行商未知。使用者需選擇 更多資訊,然後選擇 仍要執行。SmartScreen 會檢查使用者下載後開啟的檔案,因此透過 SCCM、Intune 或群組原則部署應用程式時,使用者不會看到此警告。如果您的電腦只執行來自核准發行商的軟體(AppLocker 或 App Control for Business 規則),請改用安裝路徑或檔案雜湊值來允許該應用程式。
  • macOS. 該應用程式已進行 ad hoc 簽署,但未經 Apple 認證。使用者首次開啟下載的副本時,macOS 會提示無法驗證該應用程式是否不含惡意軟體,並不會開啟它。在 macOS 15 及後續版本中,使用者需開啟 系統設定 › 隱私與安全性 並選擇 仍要開啟。在較早的版本中,使用者需對應用程式執行 Control 點擊並選擇 開啟。Gatekeeper 僅檢查標記為已下載(具有隔離屬性)的檔案:當您使用自己的工具安裝應用程式時,請在安裝腳本中移除該標記,指令為 xattr -dr com.apple.quarantine /Applications/Antimatter.app。