分散式連結追蹤和物件識別碼

使用檔案或目錄的路徑和檔案名來儲存檔案或目錄的參考並不可靠。 如果使用者重新命名檔案,它會中斷檔案的連結。 如果使用者重新命名目錄,它會中斷檔案的連結,以及目錄樹狀目錄中的所有檔案和子目錄。

分散式連結追蹤服務可讓用戶端應用程式追蹤已移動的連結來源。 訂閱連結追蹤服務的用戶端可以維護其參考的完整性,而且物件可以透過使用者透明的方式來追蹤。

物件識別碼

連結追蹤服務會使用 物件識別碼 (識別碼) 來維護其與物件的連結。 物件識別碼是選擇性屬性,可唯一識別磁片區上的檔案或目錄。

所有物件識別碼的索引都會儲存在磁片區上。 重新命名、備份和還原作業會保留物件識別碼。 不過,複製作業不會保留物件識別碼,因為這會違反其唯一性。

您可以在物件識別碼上執行下列作業:

  • 建立
  • 刪除
  • 查詢

當您建立物件識別碼時,您會建立檔案的身分識別至連結追蹤服務。 相反地,當您刪除物件識別碼時,連結追蹤服務會停止維護檔案的連結。 如需在物件識別碼上執行作業的檔案系統控制項代碼清單,請參閱 檔案管理控制代碼

分散式連結追蹤服務會追蹤 NTFS 檔案系統磁片區內殼層快捷方式和 OLE 連結的連結來源。 連結用戶端可以修正連結來源新位置的更新資訊,以修正中斷的連結。

殼層快捷方式包括啟發式連結追蹤,其使用樹狀結構搜尋演算法來尋找已手機連結來源的相符專案。 搜尋演算法是以檔案和檔案資訊的最後已知路徑為基礎,其中包含建立日期、檔案大小和副檔名。

OLE 連結包含相同的啟發式連結追蹤。 Windows 也包含相同的啟發式連結追蹤,以及搜尋名稱空間的一些新增改善,以在一些常見的案例中產生結果。 改善包括下列程式,取決於用戶端應用程式所加加的時間限制。

搜尋名稱空間

  1. 從最後一個目錄向下搜尋四個目錄層級。
  2. 向上移動一個目錄並重複步驟 1 和 2 另三次,如果物件在附近移動,可能會產生結果。
  3. 從桌面根目錄向下搜尋四個層級,如果物件已移至相同桌面上的位置,可能會產生結果。
  4. 從每個本機固定磁片磁碟機的根目錄向下搜尋四個層級。
  5. 重複步驟 1-3,不含四個目錄限制。

注意

這些連結追蹤配置對使用者而言是透明的。 不過,它們不一定會產生正面結果,而且可能很耗時。

 

如需殼層快捷方式的詳細資訊,請參閱 IShellLink

如需 OLE 連結的詳細資訊,請參閱 IOleLink

如果在 NTFS 3.0 或更新版本上對檔案進行連結,而且檔案會移至相同網域內具有 NTFS 3.0 或更新版本的任何其他磁片區,追蹤服務可能會找到檔案,但受限於時間考慮。 此外,如果檔案在網域外部或工作組內移動,就會找到它。

若要取得磁片區的 NTFS 版本,請使用系統管理員存取權限開啟命令提示字元,然後執行下列命令:

fsutil fsinfo ntfsinfoX

其中 X 是磁片區的磁碟機號。

建立檔案的連結時,目標檔案會被視為 連結來源,而連結的建立者則是 連結用戶端。 例如,如果建立殼層快捷方式以連結至文字檔,則文字檔是連結來源,而殼層快捷方式則是連結用戶端。

分散式連結追蹤服務會針對網域內發生的下列情況維護檔案連結:

  • 連結來源檔案會從一個 NTFS 檔案系統磁片區移至相同網域中的另一個磁片區。
  • 保留連結來源的電腦名稱稱已重新命名。
  • 連結來源電腦上的網路共用會變更。
  • 保存連結來源檔案的磁片區會移至相同網域內的另一部電腦。

分散式連結追蹤服務也會嘗試在上述情況下維護連結,即使它們未發生在網域內,亦即,它們是跨網域或工作組。 當連結來源電腦上的網路共用變更時,一律可以維護連結。 在電腦內手機連結來源時,也可以維護它們。 連結來源移至另一部電腦時,通常可以維護連結,但這種形式的追蹤在一段時間內較不可靠。

連結追蹤功能主要是以下列兩個系統服務的形式實作:

  • 散佈式連結追蹤用戶端
  • 分散式連結追蹤伺服器

分散式連結追蹤用戶端

分散式連結追蹤用戶端會在所有電腦上執行,並管理該電腦的連結追蹤活動。 這些活動包括搜尋連結來源和處理連結來源移動。 手機連結來源時,服務會將資訊傳遞至在網域控制站上執行的分散式連結追蹤伺服器。

分散式連結追蹤伺服器

分散式連結追蹤伺服器會在網域中的每個網域控制站上執行。 此服務會接受從電腦上的追蹤服務移動的檔案和磁片區通知,並允許分散式連結追蹤用戶端查詢連結來源的目前位置。

此伺服器服務會維護網域控制站中已移動之磁片區和檔案的相關資訊。 移動的相關資訊無法增加超過特定大小,如果移動變得不必要,就會自動移除。

連結追蹤服務是由 IShellLinkIOleLink 介面公開。 因此,殼層快捷方式會使用它們。 呼叫 IShellLink::Resolve 方法且找不到參考檔案時,例如,當使用者啟動殼層快捷方式時,會自動呼叫追蹤服務來尋找檔案。 同樣地, 當 IOleLink 實作找不到檔案時,例如在其 BindToSource 方法中,它會自動呼叫追蹤服務。

分散式連結追蹤服務僅適用于 NTFS 檔案系統,而且僅適用于 NTFS 3.0 或更新版本的連結來源。 因此,如果連結來源移至 FAT 檔案系統磁片區,追蹤資訊就會遺失。 此外,如果連結來源在 NTFS 3.0 或更新版本之間移動,但執行移動的電腦正在執行舊版 Windows,連結追蹤資訊就會遺失。 當連結追蹤資訊遺失時,不會對連結來源檔案本身造成任何損害,它只是無法由分散式連結追蹤服務追蹤。

若要取得磁片區的 NTFS 版本,請使用系統管理員存取權限開啟命令提示字元,然後執行下列命令:

fsutil fsinfo ntfsinfoX

其中 X 是磁片區的磁碟機號。

不會維護卸載式媒體上檔案的連結。 此外,在重新開機系統之前,追蹤服務無法辨識新的 NTFS 檔案系統磁片區。 新的磁片區可能會因為重新分割、將 FAT 檔案系統磁片區重新格式化至 NTFS 檔案系統,或連接新的外部磁片磁碟機而變得可用。