
首先,一些背景知識。
我處理許多涉及 Onedrive 的最終用戶桌面支援。有時,如果 Onedrive 用戶端及其程式庫完全崩潰,我們必須重建。通常這涉及刪除舊的庫位置並使其重新同步。通常,如果客戶端未登出或完全斷開連接,這些程式庫不會簡單地讓您使用檔案總管刪除它們,原因是類似於此知識庫的內容:https://learn.microsoft.com/en-us/sharepoint/troubleshoot/sync/delete-onedrive-synced-file-error。不幸的是,對於我自己和我們的技術團隊來說,CHKDSK 通常無法解決這個問題,或者在其他情況下,我們無法使用 CHKDSK。這意味著我們有一個處於不確定狀態的庫,我們通常會對其進行重命名並隱藏它,並讓 Onedrive 創建一個新的工作庫。
謎底就在這裡。即使在檔案總管失敗並且使用 powershell 遞歸呼叫 Delete() 方法失敗的情況下,系統選單中的使用者設定檔選單仍然可以完全刪除包含這些損壞的 Onedrive 庫之一的使用者設定檔資料夾。
我指的是菜單:https://i.stack.imgur.com/3jTW2.png
我想知道是否有辦法找出 Windows 使用什麼神奇的系統呼叫或實用程式來強制刪除這些 Onedrive 庫資料夾,以便我可以自己執行此操作。這對我們來說是一個很常見的問題,我花了很多時間試圖弄清楚它是如何做到的。如果有人對此有更多了解,我很想聽聽您的智慧。
謝謝。
答案1
我嘗試的第一件事是運行進程監視器https://learn.microsoft.com/en-us/sysinternals/downloads/procmon當系統被刪除時,然後檢查輸出正在運行的內容、存取了哪些路徑等。
請注意,如果您不熟悉 ProcMon,它會輸出大量數據,因此我建議您確保將其設置為將輸出存儲到文件而不是內存中,例如轉到“文件”>“備份文件”,然後設置文件名。此外,您還需要在開始之前停止並清除捕獲,在開始刪除之前開始捕獲,然後立即再次停止。否則你最終會得到很多不相關的資訊。然後,只需過濾掉那些您知道不相關的信息,例如訪問文件系統的後台進程、連接到資源的服務等,直到您將數據量減少到您可以查看的合理大小通過它來查看系統上到底發生了什麼。