标题:【原创】【MS】NTVDM.exe不能删 出处:Felix021 时间:Fri, 31 Aug 2007 02:41:11 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?82 内容: 【转贴请保持本帖的完整性,谢谢。 By Felix】 刚刚突然想看看百度能搜到NTVDM的解释是什么 但是我发现,搜到的第一个页面是这样的: ( 百度 NTVDM.exe吧 http://post.baidu.com/f?kz=139233222 ) 关于ntvdm.exe占用CPU资源100%的解决办法 最近电脑老是很卡,一检查才发现是ntvdm.exe进程占用CPU资源几乎达到100%。在网上搜索了一下解决办法,基本都是介绍ntvdm.exe进程的用途,如像是“ntvdm.exe进程Windows 16位虚拟机的一部分,看看系统里是否运行了什么可疑的16位进程,如果有,直接kill……”等等,几乎都是照抄书上的话,没得实质性的东西。后经过本人几天的实验,发现以下方法基本可行:(以xp为例) 1、重起电脑F8进入安全模式。 2、在C:\WINDOWS\system32下找到ntvdm.exe的文件,删除之。 3、在同一子目录下创建一个空白文件夹,将其保存为ntvdm.exe。 4、再重起电脑即可。 希望本帖子对大家有所帮助,若不对请高手纠正。 作者: 南充黄亮 2006-10-9 23:32   回复此发言 我只能想到两个词来形容这个帖子: 1.因噎废食 2.荒唐 让我们来看看百度到的第二个页面页面 http://www.redoffice.cn/jincheng/ntvdm/ 对ntvdm.exe的解释: ntvdm.exe是Windows 16位虚拟机的一部分。该进程用于使16位的进程能够运行在32位的系统环境下。这个程序对你系统的正常运行是非常重要的。 这是什么意思呢? 众所皆知,微软新的桌面操作系统是向下兼容为旧系统开发的应用程序的(比如你可以在xp下玩仙剑奇侠传98柔情版),其中包括运行于DOS内核操作系统的PE/NE格式可执行文件,以及为DOS开发的只包含16位指令、运行于处理器实模式的可执行程序/命令(排除那些试图直接操作硬件的,因为这逾越了NT内核操作系统给应用程序的权限,或者说它们试图运行于处理器的0环,与操作系统内核运行于同一级别,为了内核的安全性,这显然是不能被允许的)。 微软采用了WOW(Windows On Windows)技术使得在xp等NT内核操作系统上可以运行那些为旧版操作系统开发的应用程序,这样我们便可以正常的运行Windows98的甚至是Windows3.2的计算器程序等。让我们在WindowsXP下打开Windows3.2的应用程序,如记事本,你就会发现NTVDM这个程序幽灵般的出现了,还带上了一个子进程WOWEXEC.exe,这就是WOW的一个体现了。 而针对那些为DOS也就是CPU运行于实模式的情况下开发的16位程序,微软则使用了DOS虚拟机(VM)的方法。NTVDM通过使用x86 CPU的虚拟8086模式,使得16位程序能够在一定权限范围内正常运行,除非它们试图直接访问硬件,原因如上所述。让我们在XP下打开HD-copy,看看吧:ntvdm.exe又冒出来了。 很好。理论性的内容到此为止。 那么如果像那个帖子所言,删掉ntvdm会出现什么后果呢? 打开命令提示符: C:\>cd WINDOWS C:\WINDOWS>cd system32 C:\WINDOWS\system32>ren ntvdm.exe ntvdm.bak C:\WINDOWS\system32> 好了,让我们再次打开windows3.2的记事本 “噔!”微软在警告我了 --------------------------- G:\Programs\OldApp\NOTEPAD(win2.0).EXE --------------------------- Windows 找不到文件 'G:\Programs\OldApp\NOTEPAD(win2.0).EXE'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。 --------------------------- 确定 --------------------------- 那么HDcopy呢? “噔!”又来了: --------------------------- G:\Programs\DOStool\HD-copy.EXE --------------------------- Windows 找不到文件 'G:\Programs\DOStool\HD-copy.EXE'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。 --------------------------- 确定 --------------------------- 现在,你还会听信那个帖子吗?因为NTVDM.exe的CPU占用率为100%所以想要删除这个正常甚至是重要的系统组件?除了荒唐和因噎废食这两个adj之外,欢迎各位跟贴来形容它。 据Felix的判断,发这位帖子的朋友大概是中了为旧系统环境开发或是在旧系统环境下开发的木马或病毒(当然不排除其他很多更有可能的原因),导致NTVDM.exe占用过高的CPU资源。如果遇到这种情况,Felix的建议是先确认是否中了木马或病毒,普通用户这可能需要请教身边的高手,当然,把一些软件的检测信息贴到论坛求助也是一种好办法(但请注意一定要把问题描述清楚!),如果确实没有病毒或者木马,有可能就是windows系统出的毛病(为什么?因为Windows出毛病不需要理由!),那么普通用户们,Felix能给的最好建议就是把系统安装光盘插入光驱,在运行中输入 sfc /scannow;对于那些不屑于用这条命令的高手们,很抱歉,Felix没有更好的建议,请好自为之。 最后补充一点: 想要把ntvdm捏掉,根本就不需要重启。 按照如下步骤即可--拒绝做任何解释!请善用搜索引擎! C:\> cd windows\system32\dllcache C:\windows\system32\dllcache>ren ntvdm.exe ntvdm.bak C:\windows\system32\dllcache>cd .. C:\windows\system32>ren ntvdm.exe ntvdm.bak OK, Let's have a summarization: 1. NTVDM是重要的系统组件 2. NTVDM是为了兼容旧版应用程序而存在 3. NTVDM不能删除 4. NTVDM占用过高CPU资源的时候请参考Felix的建议 Generated by Bo-blog 2.1.0