部署桌面應用程式
如何在公司或學校的電腦上安裝 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 | 字串 | 字串 | 在這些伺服器的登入頁面上填入使用者名稱。 |
EnableServerManagement | DWORD,0 或 1 | 布林值 | 0 或 false:使用者只能使用由 DefaultServerList 設定的伺服器,且應用程式會隱藏新增、編輯和移除伺服器的選項。未設定:使用者可以新增自己的伺服器。 |
EnableAutoUpdater | DWORD,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
| 屬性 | 寫入內容 | 若未提供 |
|---|---|---|
SERVERURL | DefaultServerList 中的伺服器,使用此 URL | 無伺服器 |
SERVERNAME | 該伺服器分頁的名稱 | Antimatter |
DEFAULTUSERNAME | DefaultUsername | 無 |
AUTOUPDATE | EnableAutoUpdater,0 或 1 | 無:MSI 副本不會檢查更新 |
SERVERMANAGEMENT | EnableServerManagement,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 子機碼 | 電腦與使用者 |
網域中的群組原則
- 將
antimatter.admx複製到中央儲存區\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions,並將antimatter.adml複製到其en-US資料夾。 - 在群組原則管理編輯器中,開啟 電腦設定(或 使用者設定)› 原則 › 管理範本 › Antimatter。
- 編輯原則,選擇 已啟用 並填寫內容。對於 伺服器,請點擊 顯示 並為每個伺服器新增一行:值的名稱為分頁名稱,值為伺服器 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。