`
testcs_dn
  • 浏览: 113969 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

error PRJ0003 : 生成“C:\WINDOWS\system32\cmd.exe”时出错

 
阅读更多

最近使用visual studio 2005或visual studio 2008的编译项目时可能都遇到了这样的问题:

error PRJ0003 : 生成“C:\WINDOWS\system32\cmd.exe”时出错

1>Project : error PRJ0003 : Error spawning 'C:\Windows\System32\cmd.exe'.
1>Build log was saved at "file://c:\Users\Gilbert\Documents\Visual Studio 2008\Projects\Helloworld\Helloworld\Debug\BuildLog.htm"
1>Helloworld - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

经过网上大面积搜索:

可能工程坏了

删除Debug目录下的东西, 重新编译整个工程

clean
rebuild
确定所谓的“工具”-〉“选项”-> "VC++项目设置"->"解决方案资源管理器模式"里的“显示所有设置”有没有勾选,只要勾上就会有“项目和解决方案”的选项,在该项目下逐行添加
$(SystemRoot)\System32
$(SystemRoot)
$(SystemRoot)\System32\wbem

都不能解决问题,我哭,呜呜呜呜呜

既然问题和'C:\Windows\System32\cmd.exe'有关,那就看看是不是它出了什么问题!

开始》运行》cmd

啊?居然不能运行!!!!

打开C:\Windows\System32文件夹,查找cmd.exe,文件存在啊,双击运行,居然提示:

Windows找不到文件!

我就晕,文件夹明明在那摆着,却告诉我找不到文件。

难道是文件坏了?

去另一个系统把文件复制过来覆盖,问题依旧; 还是搜索吧。

最后在一个网页快照中找到了问题的真正原因;

内容如下:

在运行中输入cmd无法运行,windows 找不到文件 'c:\windows\system32\cmd.exe

打开电脑,在运行框中输入CMD,不是吧,系统居然提示找不到CMD文件,如下图示:


点击确定又会弹出另外一个框:



原以为是系统变量设置出了问题,直接打开我的电脑,进入C:\WINDOWS\SYSTEM32\目录下,找到CMD.EXE直接运行,也是这样的情况!
马上进入到C:\WINDOWS\SYSTEM32\DLLCATCH\目录下,运行CMD.EXE文件,也是同样的提示:

运行command命令,虽然能弹出提示符状态,但是几乎所有的命令都不能用。用 GHOSTEXP.EXE 把原来备份中的CMD.EXE提取出来把 %SYSTEM% 和 %SYSTEM%\DLLCATCH 下的CMD.EXE文件覆盖掉,双击运行之后仍然是这样的提示。准备退出来的时候突然发现在C:\WINDOWS下有一个CDE.EXE.EXE莫非这个就是原来的CMD.EXE文件,只是被修改了名字换了个地方,但是双击之后仍旧不能运行。

注:%system%指的是C:\WINDOWS\SYSTEM32或者是C:\WINNT\SYSTEM32目录。更多的请参考:一文。

糟了,中毒了,用咔吧查,什么病毒都没查出来,具体的什么病毒都不知道,看来只能自己找资料手动解决这个问题了。很有可能就是一些病毒修改了注册表,于是在运行框中输入REGEDIT,居然弹出现面的提示:

连注册表业打不开了,会不会是系统的EXE文件关联被修改了,这个需要通过修改注册表来恢复。但是注册表现在又打不开,用记事本编辑注册表文件,再导入不就可以了么?
于是打开记事本文档,在里面输入以下内容(目的是允许当前用户运行cmd命令):
============================================
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"
============================================
保存为cmd.reg(文件名可以任意),运行导入,结果弹出下面提示:

看来这个也不能用了,会不会是自己编辑注册表文件的时候输错了呢?带着这个疑问,我打开了另外一个注册表文件,也是同样的提示:


看来是病毒的原因了。
想通过批处理命令来对注册表操作,随便找了一个批处理命令双击,也不行:



头都有点大了,不知道该这么办了,突然想起来EXE文件虽然不可以运行,但是COM文件中应该可以运行吧!于是进入 C:\WINDOWS\ 把 regedit.exe 改名为 regedit.com 双击运行,即可打开注册表编辑器。
这下就可以修复文件关联了,具体的操作请参考:一文。
EXE文件关联修复之后,问题依旧,看来问题没有那么简单,不是EXE文件关联,那能是什么原因呢?
会不会是因为用户权限被修改的原因呢(在注册表中可以设置禁止用户运行批处理文件和CMD),于是打开注册表编辑器,进入HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System
新建一个双字节值项DisableCMD(如果没有的话,有的话直接修改其值就可以了,但要注意的是必须是双字节值,不是的话需要删掉重建),将其值设为 0 (这里的作用就是使用户可以运行cmd和批处理文件),当然它也有其它的参数:修改其值为2,则命令解释器和批处理文件都不能够被运行;如果只是禁止命令解释器的运行,而运行批处理文件的运行,则修改DisableCMD的值为1。这些大家可以自行试试!
当然也可以通过下面的注册表文件导入方法来实现(前提是等到注册表修复之后):
============================================
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000000
============================================
虽然权限也设置过了,但是问题依旧没有解决。真的有点不知道该怎么办了?呜呜…………


虽然还没找到彻底解决的办法,但是可以先给大家提供一个临时解决的办法,将系统中的CMD.EXE,REGEDIT.EXE,MSCONFIG.EXE文件的扩展名都改为COM基本上就可以暂时使用了!只不过要在运行框中输入命令时要带上COM扩展名。


找了这么久,终于找到原因了,原来是中了映像劫持病毒了,对于这种病毒只需要把映像劫持给关了就行了,可以通过修改注册表来实现:把[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]项删除即可。
好了,问题解决了,你改名的那些文件也该改过来了(把 COM 改回 EXE ),嘎嘎~~关于映像劫持方面的问题,过两天会给大家贴出来的!

把[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]项删除即可。

问题是这样的曲折!


分享到:
评论

相关推荐

    vs2008生成cmd.exe出错的解决办法

    在使用VS2008时,用户可能会遇到以下错误信息:“error PRJ0003 : 生成“cmd.exe”时出错”。这是一种很常见的错误,可能是由于系统资源不足、没有足够的安全特权、VC++目录中指定的可执行路径不包括您正尝试运行的...

    VC2008生成cmd.exe错误,解决办法

    当使用VC2008编译项目时,可能会遇到以下错误信息:“error PRJ0003: cmd.exe”或“error PRJ0003: the command 'cmd.exe' failed with code 1”。这个错误通常发生在尝试生成或编译项目的过程中,意味着编译器无法...

    VS2008 可调试的 libevent-2.0.21-stable

    包含VS2008工程的 libevent-2.0.21-stable,对熟悉libevent的运作有很大帮助。

    PRJ1:抢车位.rar

    【PRJ1:抢车位.rar】是一个压缩包文件,其中包含了一个名为"PRJ1:抢车位"的项目。这个项目主要是关于一个基于C#语言的"抢车位"游戏的实现,适合学习C#编程的学生进行实践和学习。C#是一种广泛应用于Windows平台和...

    China Geodetic Coordinate System 2000.prj

    CGCS2000的"China Geodetic Coordinate System 2000.prj"文件是一个重要的数据文件,它包含了CGCS2000坐标系统的详细参数和定义,用于GIS软件识别和转换坐标。在地理信息系统中,PRJ文件通常用于存储坐标系统的元...

    如何配置VS2008下的Ogre

    - **Error PRJ0003**:编译时出现`error PRJ0003: 生成 cmd.exe 时出错`,这通常是由于VS2008的环境变量设置不当导致的。 - 处理方法:通过“工具”->“选项”->“项目和解决方案”->“VC++目录”,修改可执行文件...

    reservationsystem.prj

    reservationsystem.prj

    C生成静态库给C++调用出现undefined reference to ...解决方案_cpp

    在C++程序中调用C编译的静态库时,可能会遇到“undefined reference to ...”错误,这通常意味着链接器无法找到对应的函数定义。要解决这个问题,我们需要理解C与C++之间的互操作性以及编译和链接过程。下面将详细...

    prj_QtPureCFirework.V0.0.rar

    该项目“prj_QtPureCFirework.V0.0.rar”是针对初学者的一个实践教程,旨在教授如何在Qt环境中使用CMake构建一个纯C语言的开发框架。Qt是一个流行的跨平台应用程序开发框架,通常用于C++编程,但在这个案例中,我们...

    prj_tst1--生日贺卡beepMusic_v5.exe

    prj_tst1--生日贺卡beepMusic_v5.exe

    prj_tst1--圣诞贺卡beepMusic_v6.exe

    prj_tst1--圣诞贺卡beepMusic_v6.exe

    prj_tst1--音乐贺卡beepMusic_v6d.exe

    prj_tst1--音乐贺卡beepMusic_v6d.exe (调试优化版)

    自动更新Build号的小工具和版本管理头文件

    本工具配合TortoiseSVN,用来在编译时自动更新Revision号和Build号,帮助管理代码版本,并自动生成版本字符串。 目录: \example 实例 | |--\bin-win32 可执行文件所在目录 | |--\target 版本文件所在目录 | |--...

    a.zip_graph_labview_labview S曲线_prj_site:www.pudn.com

    设计一个VI来测量温度(保留2位小数),每隔0.25秒测一次,共测定10秒。在数据采集过程中,VI将在波形Chart上实时地显示测量结果。采集过程结束后,在Graph上画出温度数据曲线,并且把测量的温度值以... 2 0.50 85.32

    Android Studio Bumblebee Beta 4(android-studio-2021.1.1.17)

    Android Studio Bumblebee Beta 4(android-studio-2021.1.1.17-windows.zip) 大黄蜂,只适用于Windows系统,是Android Studio 4.3(Arctic Fox 2020.3.1.25新版本命名)版本之后的新版本Android Studio Bumblebee ...

    Python库 | prj_core-0.0.12.tar.gz

    **Python库prj_core-0.0.12详解** 在IT行业中,Python因其简洁、易读的语法和丰富的库支持而备受青睐,被广泛应用于后端开发、数据分析、机器学习等多个领域。本文将深入探讨名为`prj_core`的Python库,版本号为...

    prj_TTS.zip

    5. prj_TTS.exe:这是编译生成的可执行文件,用户可以直接运行以体验TTS功能。 6. prj_TTS.identcache和prj_TTS.dproj.local:这些是Delphi的临时和本地配置文件,用于提升开发效率。 7. Unit_Main.pas:这是“Unit_...

    C#不使用ArcEngine生成.shp文件

    1. **定义几何对象**:C#中可以使用.NET框架中的`System.Drawing`或`System.Windows.Forms.DataVisualization.Charting`库创建几何对象,如点、线和多边形。这些几何对象需要转换为Shapefile所能理解的二进制格式。 ...

    ISE中常见WARNING和ERROR及其解决方法

    ### ISE中常见WARNING和ERROR及其解决方法 #### 一、WARNING: Route:455-CLKNet: trn_clk_OBUF may have excessive skew because 0 CLK pins and 1 NON_CLK pins failed to route using a CLK template. **警告...

Global site tag (gtag.js) - Google Analytics