知识与问答

AutoRun是什么

自动播放(AutoRun、AutoPlay)是微软窗口系统的组件,其内容标示着系统在搜索到设备时可采取的行动。自动播放在 Windows 95 时首度露面,目的是帮助用户正确执行光盘上制作者想要执行的文件,另外自动播放也能透过双击我的电脑内的设备图标启动自动播放。但后来 U 盘病毒横行,微软发布更新关闭非光盘驱动器的自动播放。

在 Windows XP 之后,微软让用户方便选择相关应用程序,制作出如图形化接口方式让用户选择如何理设备中的文件。

AutoRun.inf 的示例

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

意思就是在我的电脑双击光盘盘符时会执行 setup.exe,而显示图标为 setup.exe 中第 0 个图标(即第 1 个图标),标签是 My install CD。

AutoRun.inf 的默认激活

插入设备时启动。

双击我的电脑设备时启动。

对我的电脑设备点击右键菜单中 “AutoRun” 项目时启动。

其他(如点击根目录文件夹)则不会启动。

Windows XP 以前

所有设备都会依照 Autorun.inf 启动。

Windows XP SP0 到 SP2

DRIVE_CDROM 会先执行 autorun.inf ,若不存在则执行 AutoPlay。

DRIVE_REMOVABLE 执行 AutoPlay。另外由于一些问题,在我的电脑双击设备或右键设备则会启动 autorun.inf。

其他设备都会依照 Autorun.inf 启动。

Windows XP SP2 到 SP3

DRIVE_CDROM 会先执行 autorun.inf ,若不存在则执行 AutoPlay。

DRIVE_REMOVABLE 和 DRIVE_FIXED 执行 AutoPlay,但 AutoPlay 默认选项(即 AutoPlay 第一个选项)是由 autorun.inf 所定义。另外由于一些问题,在我的电脑双击设备或右键设备则会启动 autorun.inf。

其他设备都会依照 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 U 盘病毒就是使用 autorun.inf 散播病毒,一旦电脑中了病毒之后就会对所有磁盘持续写入 autorun.inf ,让用户在别台电脑使用设备时也会中相关的病毒。

随着病毒的更新,其手法也日新月异,如图标使用跟文件夹一样的图标让用户难以分辨真假,进而造成安全性的威胁。

防止病毒利用 AutoRun

有鉴于网络上充斥着莫名其妙的解决方法,微软在 2009 年 8 月 25 日发布 KB971029,关闭 autorun.inf 的影响,使相关功能变得跟 Windows 7 一样,在 2011 年 2 月微软正式放入在 Microsoft Update 中。

Windows 7 以上的用户即使在设备中有病毒也不用担心相关问题,除非手动执行它。