共用方式為


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

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

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

物件識別碼

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

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

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

  • 建立
  • 刪除
  • Query

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

分散式連結追蹤服務會追蹤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 ntfsinfo X

其中 X 是磁碟區的驅動器號。

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

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

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

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

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

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

分散式連結追蹤用戶端

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

分散式連結追蹤伺服器

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

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

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

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

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

fsutil fsinfo ntfsinfo X

其中 X 是磁碟區的驅動器號。

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