SharePoint 文件庫有個好用的「在檔案總管中開啟」功能(限 IE 瀏覽器),允許以資料夾形式管理文件庫的檔案,在檔案總管可拖拉複製搬移,比網頁介面方便十倍。但我有個困擾,這項功能時好時壞,有時可以順利開啟,有時則會彈出「我們在檔案總管中開啟此文件庫時發生問題」錯誤:

實務面臨的狀況則是有些人沒問題,有些人完全沒法用,像我則是時好時壞,一時也理不出頭緒。

同事初步調查發現,成功開啟時 IE 的「目前已載入的附加元件」清單會出現 "SharePoint Export Database Launcher" 元件,若沒看到就會遇到上面所說錯誤。一開始懷疑是 IE 跑成 64 位元無法載入 32 位元附加元件導致問題,後來確認 IE 預設是跑 32 位元沒錯(兩個純 64 位元的 Send to OneNote 跟 OneNote Linked Notes 無法使用亦可證明),直接排除位元模式相容性。(延伸閱讀:64 位元 Windows 10 下 IE11 會跑 32 位元還是 64 位元?)

由此推測,附加元件沒出現是結果而非原因,無法在檔案總管中開啟另有隱情,但 SharePoint 運作如黑盒子,這類問題要從何查起呢?薑薑薑薑~~ 又是茶包一哥 - Process Monitor 登場的時刻了。

啟動 Process Monitor 側錄事件(最新版本把圖示都換了,我差點不會用),重現在檔案總管中開啟錯誤,查到一則可疑檔案讀寫記錄,路徑為 \\sps-server\DavWWWRoot\project\SITE-NAME\Documents\DOC-LIB-NAME,發生 ACCESS DENIED 錯誤:

線索指向連線 SharePoint WebDAV 網址存取被拒,我試著直接在檔案總管輸入 SharePoint 網址驗證,會跳出登入對話框,輸入正確帳號密碼後檔案總管可瀏覽文件庫內容,證明並不是因為沒有權限。

回頭再測試網頁上的「在檔案總管中開啟」,居然就能順利開啟了。

綜合以上線索,推測出錯原因是網頁附加元件無能自動登入 SharePoint WebDAV,也沒跳出登入對話框完成身分認證(不確定這是 By Design 還是 Bug),錯誤訊息亦沒提示是存取被拒造成,只含糊地說「我們在檔案總管中開啟此文件庫時發生問題」,錯誤訊息畫面導向的線上文件列舉了無法運作的幾種可能狀況:

  1. 瀏覽器不支援 ActiveX
  2. IE 封鎖了 ActiveX 控制項或附加元件
  3. 使用 64 位元版 IE
  4. 未安裝 SharePoint 附加元件
  5. WebClient 服務未啟動

在我的案例一一被排除。說明文件還建議改用 OneDrive 同步功能取代檔案總管開啟,但一次性開啟文件庫做操作跟把整個文件庫在本機同步一份是完全不同的概念,我不覺得[同步處理]能取代 [在檔案總管中開啟]。看似無解的問題,所幸靠著 Process Monitor 找到線索,就先靠這個 Workaround 改善了。

Case of failed to open SharePoint document library in Windows file explorer and the workaround.


Comments

Be the first to post a comment

Post a comment