File Default Master 開源工具:把 Windows 檔案關聯收進規則清單

File Default Master 是開源 Windows 工具,把檔案預設開啟程式收進可批次套用的規則清單。原始碼顯示 UserChoice 雜湊是自製實作、.pdf 等副檔名設不動,雲端規則空間伺服器目前回 503,實際上是純本機工具。

用 AI 摘要這篇文章:

在 Windows 裡改某種檔案的預設開啟程式,標準做法是打開設定、找到預設應用程式、照副檔名一個一個點。真正的麻煩在後面:改完隔幾天,瀏覽器一次更新、WPS 開機自啟,關聯又被搶了回去,你回去翻設定頁,就得再點一次。File Default Master 換了個思路:把「哪種副檔名用哪支程式開」整份寫成規則清單,日後要做的變成管理清單,而不是每次回去跟設定頁纏鬥。

這是一名獨立開發者的開源作品,主程式是一份一千四百多行的 Python 檔案,採 Apache-2.0 授權,免費、無廣告,原始碼完整公開在 GitHub。它值得認真看待的部分在機制:讀完原始碼你會發現,它承諾的效果剛好停在 Windows 留下的那條線上,而作者自己在 FAQ 裡也沒有迴避這件事。兩層設定機制、規則空間的現況與目錄密碼的實際作法,加上停滯十六個月的專案狀態,是安裝前最值得弄清楚的事。

它怎麼把設定寫進系統:兩層機制

主畫面上你就輸入兩樣東西:副檔名與應用程式路徑。副檔名支援用斜線分隔一次輸入多個,例如 .doc/.docx/.pptx,選好程式按保存,整批關聯一次寫入。輸入區下方是九宮格的功能入口:規則編輯器、匯入匯出、預設程式統計、資料夾圖示更換、規則空間、目錄密碼,全部收在同一個視窗裡。介面是簡體中文,按鈕用語與台灣習慣有出入,對照本文的功能名稱使用即可。

File Default Master主畫面,左側輸入副檔名與應用程式路徑,右側九宮格功能入口,底部有 WPS 反覆接管的提示文字Pin
File Default Master主畫面:副檔名批次設定與九宮格功能入口,底部提示寫著 WPS 搶關聯的處理建議(官方倉庫截圖)

底層做的事情,從原始碼看只有兩層。第一層是 Windows 自己的老指令:assoc 把副檔名對應到一個程式識別碼,ftype 再把識別碼對應到實際的程式路徑,這是從 DOS 時代留到今天的檔案關聯機制,寫入的是機器層級的登錄檔。第二層是直接寫登錄檔 HKEY_CLASSES_ROOT 底下的 shell\open\command,確保副檔名的開啟命令指向你選的程式。兩層互相備援,構成它「批次設定」的核心。

規則編輯器是這套思路的延伸。每條規則記錄副檔名、程式路徑與優先級,可以編輯、刪除,順序調整用的是上移、下移按鈕,官方文件稱拖拽排序,原始碼裡其實沒有拖曳實作;數字越小越先套用,衝突時由優先級決定誰生效。整份清單能匯出成 JSON 檔備份或搬到另一台電腦匯入,匯入時會覆蓋現有清單,官方 FAQ 因此建議動手前先匯出一份留底。對辦公室那種「文件一律用同一套軟體開」的場景,這份可攜帶的清單比截圖記錄設定頁可靠。統計功能則會掃描系統現有的全部副檔名與對應程式,做成可搜尋的表格,排查「這副檔名現在到底誰在開」的問題相當省事。

操作面還有兩個小設計值得一提。程式常駐時按 Ctrl 加 P 能隨時叫出主畫面,不用每次去工作列找圖示;啟動時偵測到不是管理員身分,會自動用 UAC 重新以管理員啟動,不必自己記得按右鍵選以系統管理員身分執行。九宮格裡剩下的「更換資料夾圖示」則把常見圖片格式自動轉成 ico 檔寫進 desktop.ini,讓資料夾在外觀上也能分類。這類細節不改變功能本質,但對天天要整理檔案環境的人,省下的是重複的摩擦。

File Default Master官方網站首頁,漸層背景標題與功能亮點清單,中央黃色立即下載按鈕Pin
File Default Master現行官網:下載認明此站或 GitHub releases,原始數字帳號的舊網址已 404(官方網站截圖)

原始碼裡的邊界:自製雜湊與設不動的 .pdf

寫入關聯時,原始碼還會多做一件事:到使用者層級的 UserChoice 機碼補寫一筆紀錄。這裡出現整份程式最值得注意的一段。Windows 8 之後,UserChoice 帶一道雜湊驗證,演算法由微軟內部掌握、未曾公開,就是為了擋住程式擅自改寫預設程式。而這份原始碼裡的雜湊是自製的:拿程式識別碼、使用者名稱與時間戳串接後做普通的 SHA256。其中取「使用者名稱」用的 os.getlogin() 回傳的是登入帳號名,真正的驗證演算法需要的是安全識別碼 SID,兩者對不上,演算法本身也不同。

照 Windows 已知的驗證格式,這筆補寫的 UserChoice 過不了驗證,真正發揮作用的是前一段的 assocftype 與登錄檔那層。這道驗證存在的目的,本來就是攔截程式擅自改寫關聯,微軟的立場是預設程式該由使用者親手決定,所以由機器寫入的紀錄必須附帶它能驗的證明。對系統沒有積極保護的副檔名,assoc 那層就夠了;但對微軟盯得緊的類型,邊界就會浮出來。官方 FAQ 寫得很明白:部分副檔名(例如 .pdf)受 Windows 安全策略限制,只能在系統設定的預設應用程式頁手動指定,無法完全自動化。主畫面底部那行「如遇 WPS 反覆接管,請關閉 WPS 相關設定」的提示,也是同一種坦白:第三方軟體搶關聯的問題,這工具同樣管不到。

不過換個角度看,就算某個副檔名它設不動,規則清單仍然有紀錄價值。把每種檔案該用什麼開寫成清單,哪天關聯又被搶走,至少有份對照可以逐一還原,比憑記憶翻設定頁踏實。把它理解成「關聯管理的帳本,順帶能自動套用」,期待會比「全自動修復」貼近它的能力。

想真的在使用者層級寫入合法 UserChoice,社群裡長期使用的是 SetUserFTA 這類老牌工具,路線是直接算出 Windows 認可的雜湊值,代價是命令列操作、一次一條。File Default Master選擇的是圖形介面加規則清單批次,好上手,換到的是那道驗證牆。兩者剛好互補:難搞的單一副檔名交給前者,整批例行調整交給後者,是比較務實的分工。

規則空間的現實:明文傳輸與一台回 503 的伺服器

「規則空間」是這工具最常被宣傳的賣點:註冊帳號後,可以把自己調好的規則上傳到雲端空間,也能瀏覽、下載、評分別人分享的規則,清單裡有規則名稱、作者、評分與標籤。介面做得有模有樣,下載別人的規則後,程式還會掃描本機的 PATH、常見安裝目錄、桌面與下載資料夾,找出規則裡指定程式的同名執行檔,自動換成本機路徑再套用,解決「對方裝在 C 槽我裝在 D 槽」的問題。這個設計體貼,但有個值得留意的角落:比對的是執行檔名而不是完整路徑,規則裡寫某支程式,你的下載資料夾裡剛好有另一個同名檔案,就可能被套上。官方文件自己也提醒,套用規則後要在規則編輯器裡逐條檢查程式路徑,這步不要省。

File Default Master規則空間視窗,上方上傳本地 JSON 規則表單,中間規則清單表格顯示規則名稱、作者、評分與標籤Pin
規則空間介面:可上傳、搜尋、下載與評分他人規則,伺服器目前回 503,此功能暫停中(官方倉庫截圖)

把伺服器端的程式碼攤開,還會看到兩件使用前該知道的事。其一是傳輸方式:客戶端連線的端點寫死成 http://116.62.80.32,一個裸 IP 的明文 HTTP 位址,帳號密碼與規則內容在網路上不加密封包傳送;伺服器端的程式碼也在同一個儲存庫裡,註冊帳號的密碼以明文存進 JSON 檔案,登入時直接做字串比對,沒有任何雜湊處理。整套服務的資料儲存同樣是純 JSON 檔案,規則、評分、標籤、舉報各一份,不是正規資料庫,社群資料的規模與可靠度由此可以想見。其二是現況:2026 年 9 月實測,這台伺服器對統計端點回的是 HTTP 503,雲端分享功能目前處於暫停狀態。

也就是說,現在拿到這工具,規則空間整區等於裝飾,它實際上是一支純本機程式。往好處想,本機功能完全不依賴那台伺服器,匯入匯出 JSON 一樣能用;而且整份原始碼裡的網路呼叫只出現在社群功能,不用規則空間就完全不對外連線,離線使用沒有問題。哪天伺服器修好了,也別拿重要的密碼去註冊,這條建議在明文傳輸改掉之前都成立。

目錄密碼的真面目:隱藏資料夾,不是加密

九宮格裡的「設定目錄密碼」容易讓人以為是資料夾加密,原始碼顯示它做的是另一件事。按下設定後,程式把資料夾裡的所有檔案搬進一個名為 .__locked_content__ 的子資料夾,用 attrib +h 設為隱藏屬性,原本的位置留下一張提示文字檔,密碼本身經 SHA256 存在 .folderlock 檔案裡。解鎖時比對雜湊,對上了就把檔案搬回原處。

檔案從頭到尾都是明文,只是被搬進隱藏資料夾。在檔案總管開啟顯示隱藏項目,或用任何檔案總管替代品、壓縮軟體瀏覽,內容直接看得到。它擋得住誤開與順手翻閱,擋不住刻意找東西的人。有趣的是官方 FAQ 的說法反而更悲觀:忘記密碼就無法找回,實際上繞過介面直接進隱藏資料夾,檔案都在。把這功能當「辦公桌抽屜上鎖」理解會比當「保險箱」準確,也避免因為信了加密二字,把真正敏感的東西放進去。

十六個月沒動的專案,值不值得裝

專案的時間軸很集中:2025 年 5 月初在 GitHub 建立,同月 5 號發第一版,之後以大約一週一版的速度推進,18 號到 v2.0.2,22 號最後一次提交後,主要分支就停在原地,到現在約十六個月沒有更新。關注度是小型社群專案的規模:72 個星、4 次 fork,打包好的執行檔在 GitHub releases 累積約 740 次下載,最新版佔 621 次。2026 年 4 月有人回報修改應用程式路徑快捷方式的問題,至今掛著沒有回應。這種兩週密集衝刺然後停手的節奏,通常是個人專案做完一輪就收的樣貌,背後沒有團隊持續維護。

還有一個小地雷:開發者的 GitHub 帳號從原本的數字帳號改名,導致文件裡與網路上流傳的舊官網連結已經 404,現行官網跟著新帳號走。下載時認明現行官網或直接從 GitHub releases 取得執行檔,不要從來路不明的鏡像站拿。附帶一提,Windows 桌面的開源小工具今年不算少,從剪貼簿歷史管理API 用量桌面監視都有人持續維護,對照之下這個專案的停滯就是使用前要吞下的主要風險:Windows 大改版後哪天失效,不會有人修。

停滯不代表不能用。系統需求只有 Windows 10 或 11,裝執行檔即用;想跑原始碼也只要 Python 3.8 以上加幾個套件。Apache-2.0 授權加上原始碼完整,等於任何人在安裝前都可以自己檢視程式碼,這份一千四百行的單檔 Python 不依賴任何第三方閉源元件,會讀 Python 的人甚至可以跳過執行檔,直接讀原始碼再自行打包。對這種要動登錄檔的工具來說,這是比任何承諾都有力的保障。

整批例行調整交給它,被盯緊的副檔名走別條路

它最擅長的場景是整批例行調整:辦公室電腦的文件類副檔名要統一交給某套軟體、測試環境常常重灌需要快速還原關聯、或單純想把「哪種檔案用什麼開」整理成一份可以備份搬移的清單。這些需求它都能用規則清單漂亮解決,配上 Mango 這類本機檔案搜尋工具,把檔案的找與開兩件事都收進自己手裡。

反過來說,如果你的問題是單一個被系統盯緊的副檔名(.pdf、.html 這類),手動進設定頁或考慮 SetUserFTA 會比它直接;如果你的痛點是瀏覽器或辦公軟體不斷搶關聯,該處理的是那套軟體本身的設定,這工具只能事後幫你快速改回來。想試的話,從現行官網下載執行檔,以系統管理員身分執行,第一次先用幾個不重要的副檔名試規則的寫入與匯出,確認在自己環境裡的行為符合預期,再放到正式的檔案類型上。把它當規則清單管理器來期待,它會稱職;把它當預設程式的永久保險,很快就會失望。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1314

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...