共用方式為


Windows 機密 追蹤捷徑

Raymond Chen

如果捷徑的目標將移動的 Windows 殼層會嘗試找到新的位置 ;這稱為 「 解析 」建立捷徑。 但是殼層不會使用何種演算法來找出該目標嗎?

答案是:其實全得視情況而定。

Windows 95

當捷徑在 Windows 95 中引入時,檔案系統中沒有很多 smarts 與追蹤的物件相關聯。 Windows 95 殼層會使用簡單的搜尋演算法,來尋找遺失的快顯目的地:在建立捷徑時各種屬性的捷徑的目標記錄在快顯檔案本身) 屬性,例如檔案名稱、 檔案大小、 建立時間和上次修改的時間,以及之所在檔案的磁碟機的相關資訊。

使用捷徑時定期, 以及捷徑的目標會遺失,這些屬性會更新,殼層啟動盡可能共同與預期的目標檔案搜尋多個屬性的檔案。 當它找到的檔案,看起來類似原來的目標時,它會宣告目標為有找到。

不同的屬性有不同的重要性,但是建立時間有最大的權數,因為通常會將該屬性都保持附加至檔案,即使它有被修改,甚至重新命名]。 檔案系統通道將有助於避免此甚至不自覺地操作的方式,通常會摧毀資訊的程式時,與的檔案相關的資訊。

搜尋會在目錄的檔案的最後一個已知的位置。 但即使尋找起始點可以花一些工作如果磁碟機已經變更 ;範例如果捷徑目標在網路磁碟機對應到磁碟機"O"但現在對應至磁碟機"P"。

搜尋上次的目錄之後, 搜尋 descends 到子目錄 ;然後展開以同層級目錄,與父目錄的 [向外然後將移至 grandparent 目錄]、 [圍繞在您身旁]、 [uncles] 及 [親人 — 很多 mankind 已知的每個相對。 如果搜尋持續的運氣好沒有兩分鐘,工作被放棄 (即使不是所有候選目錄已被都搜尋)。

NT 方式

Windows NT 檔案系統同仁看 Windows 95 快顯解析度演算法並 scoffed。" 我們可以執行更多項:我們是物件導向 ! 」NTFS 的每個物件具有的物件識別項中 ;目標的 NTFS 磁碟區上的捷徑也會記錄的快顯目標,物件識別項,以及磁碟機本身的物件識別項。

時的時間來解析捷徑,命令介面會詢問 「 分散式連結追蹤服務,尋找原始的物件。 在的網域上,可能產生意外的結果就像尋找檔案,即使出的一台電腦並安裝到另一個磁碟機。

有許多的系統管理員可能會影響殼層選擇要使用之演算法的方式。 如果您啟用 [不漫遊 (LinkResolveIgnoreLinkInfo) 原則時追蹤殼層捷徑,Shell 將不嘗試找出原始的磁碟機。 如果捷徑目標是在網路磁碟機,殼層將不嘗試時決定 Windows 95 樣式搜尋起始的位置找不到原始的網路資源。 它只會假設該磁碟機代號是正確的 ;如果不是,也,會發生什麼事,發生。

此原則被建立的環境具有相同網路資源的集區其中藉由登入指令碼"O"磁碟機連接 (例如) 取決於使用者在不同伺服器分散負載。 即使兩個使用者連線到兩個不同實體伺服器,它們是以邏輯方式相同。 如果您將此原則設定 O:\program.exe 的捷徑會執行程式目前磁碟機"O,"即使磁碟機"O"未連接到相同的網路資源,以建立捷徑時。

另外還有一組原則,可讓您停用兩個物件位置演算法,一旦開始點已決定的:當解析殼層捷徑 (NoResolveTrack) 原則停用花俏的 NTFS 物件追蹤演算法 ; 時不執行使用追蹤方法當解析殼層捷徑 (NoResolveSearch) 原則停用 low-tech 的 Windows 95 搜尋演算法時不執行使用搜尋方法。

修復中斷的捷徑,是殼層的那些 thankless 工作的其中一個:人甚至沒有發現在停止工作仰賴這些功能。

Raymond Chen 的的網站]、舊的新事物和標題相同活頁簿 (Addison Wesley 2007) 處理 Windows 歷程記錄] 和 [Win32 程式設計。 他有時候會編碼資訊的 (不佳) 將它轉譯成德文。