AutoRun

便携式设备的自动播放

AutoRunAutoPlay微軟視窗系統的元件,其內容標示着系統在搜尋到裝置時可採取的行動。

Windows 7 上「自動播放」的畫面

AutoRun在Windows 95時首度露面,目的是幫助使用者正確執行光碟上製作者想要執行的檔案,另外AutoRun也能透過雙擊我的電腦內的裝置圖示啟動AutoRun。但後來USB手指病毒橫行,微軟釋出更新關閉非光碟機的AutoRun。

Windows XP之後,微軟讓使用者方便選擇相關應用程式,製作出如圖形化介面方式讓使用者選擇如何處理裝置中的檔案。

請注意AutoPlay不等同於AutoRun。

AutoRun.inf的範例

[autorun] 
open=setup.exe 
icon=setup.exe,0
label=My install CD

意思就是在我的電腦雙擊光碟盤符時會執行setup.exe,而顯示圖示為setup.exe中第0個圖示(即第1個圖示),標籤是My install CD

Windows的裝置頪型

微軟視窗系統中所定義的裝置類型:[1]

裝置類型 描述
DRIVE_UNKNOWN 無法辨識的裝置
DRIVE_REMOVABLE 可卸除式裝置 (磁片、USB裝置)
DRIVE_FIXED 無法移除的裝置 (硬碟)
DRIVE_REMOTE 網絡裝置 (網路上的芳鄰)
DRIVE_CDROM 光碟裝置
DRIVE_RAMDISK RAMDisk

AutoRun.inf的預設啟用

  • 插入裝置時啟動。
  • 雙擊我的電腦裝置時啟動。
  • 對我的電腦裝置點擊右鍵選單中 "AutoRun" 項目時啟動。
  • 其他(如點擊根目錄資料夾)則不會啟動。

Windows XP 以前

  • 所有裝置都會依照 Autorun.inf 啟動。

Windows XP SP0 到 SP2

  • DRIVE_CDROM 會先執行 autorun.inf ,若不存在則執行 AutoPlay。
  • DRIVE_REMOVABLE 執行 AutoPlay。另外由於一些問題,在我的電腦雙擊裝置或右鍵裝置則會啟動 autorun.inf[2]
  • 其他裝置都會依照 Autorun.inf 啟動。

Windows XP SP2 到 SP3

  • DRIVE_CDROM 會先執行 autorun.inf ,若不存在則執行 AutoPlay。
  • DRIVE_REMOVABLEDRIVE_FIXED 執行 AutoPlay,但 AutoPlay 預設選項(即AutoPlay第一個選項)是由 autorun.inf 所定義。另外由於一些問題,在我的電腦雙擊裝置或右鍵裝置則會啟動 autorun.inf[2]
  • 其他裝置都會依照 Autorun.inf 啟動。

Windows Vista

  • 在所有類型的驅動器中,AutoRun.inf不再自動默默地執行。所有的卷都是通過AutoPlay來處理:預設情況下,會彈出相應的對話方塊給使用者。

Windows 7

  • DRIVE_CDROM 會先執行 autorun.inf ,若不存在則執行 AutoPlay。
  • 其他僅執行 AutoPlay ,而且 AutoRun.inf 並不會影響 AutoPlay 預設選項。
  • 即使修改 NoDriveTypeAutoRun 值也無效。

在2011年2月8日發佈的安全公告KB967940中,微軟對Windows自動執行功能進行了最新升級,限定Windows XP、Windows Server 2003、Vista和Windows Server 2008平台上的自動執行功能僅支援CD和DVD媒體。當使用者使用包含autorun.inf檔案的USB裝置、網絡共用或其它非CD/DVD媒體時,系統不會執行自動執行。安裝此次更新後,當插入USB裝置時,使用者不會收到程式安裝的提示對話方塊,使用者需要手動打開資料夾找到安裝檔案,然後雙擊安裝軟件。不過,在連接至電腦時,有些USB的韌體會讓系統將其辨識為CD,那麼本次針對AutoRun的升級就對它們無效了。

win7中自動執行/自動播放功能唯一得以保留的地方是在光碟載體上。

AutoRun.inf的問題

著名的 kavo USB手指病毒就是使用 autorun.inf 散播病毒,一旦電腦中了病毒之後就會對所有磁碟持續寫入 autorun.inf ,讓使用者在別台電腦使用裝置時也會中相關的病毒。

隨着病毒的更新,其手法也日新月異,如圖示使用跟資料夾一樣的圖示讓使用者難以分辨真假,進而造成安全性的威脅[3]

防止病毒利用 AutoRun

有鑑於網絡上充斥着莫名其妙的解決方法,微軟在2009年8月25日釋出KB971029頁面存檔備份,存於互聯網檔案館),關閉autorun.inf的影響,使相關功能變得跟Windows 7一樣,在2011年2月微軟正式放入在Microsoft Update中。

Windows 7以上的使用者即使在裝置中有病毒也不用擔心相關問題,除非手動執行它。

AutoPlay的關閉

若不滿意 AutoPlay 的功能可以使用下列方式關閉,但不會影響 AutoRun 功能,若要關閉 AutoRun 請遵循上方的指示。

若是 Windows XP 以前的用戶請先修復 KB967715頁面存檔備份,存於互聯網檔案館),Windows Vista 用戶請修復 KB950582頁面存檔備份,存於互聯網檔案館),接下來請安裝Microsoft Fix it 50471[4]即可關閉。若要取消關閉,請安裝Microsoft Fix it 50475

相關機碼值

  • NoDriveTypeAutoRun
這是控制 AutoRun 的啟用與否,其位置在於 HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\ ,可依表對想開啟或關閉的裝置控制。注意 HKLM 的優先權比 HKCU 來的大。這個動作也會影響 AutoPlay。
  • NoDriveAutoRun
這是控制 AutoRun 針對不同磁碟代號的啟用與否,其位置在於 HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\ ,可依表對想開啟或關閉的裝置控制。注意 HKLM 的優先權比 HKCU 來的大。

在其它作業系統上的作用

GNOMENautilus中,autorun.inf中的icon項可以被辨識。只要其指向一個正確的ico檔案(Windows圖示檔案),Nautilus就可以將已掛載檔案系統的圖示替換成此圖示。

參照資料

  1. ^ GetDriveType Function頁面存檔備份,存於互聯網檔案館), 微軟MSDN資料庫
  2. ^ 2.0 2.1 如何在 Windows 中更正「停用自動執行登錄機碼」增強功能. [2011-09-06]. (原始內容存檔於2015-03-03). 
  3. ^ File:Conficker worm AutoPlay Vista.png. [2011-09-06]. (原始內容存檔於2011-12-18). 
  4. ^ 如何在 Windows 中更正「停用自動執行登錄機碼」增強功能頁面存檔備份,存於互聯網檔案館),如何在 Windows 7 和其他作業系統中停用或啟用所有自動執行功能