Server 2003 SP2 64 位
验证我的路径设置是否正确,因为我可以毫无问题地运行“system32”文件夹中的其他可执行文件。
如果我进入“c:\windows\system32\”文件夹,并尝试运行“shutdown /?”,我会得到“shutdown 未被识别为有效...”的信息,您知道 - 这是当您输入一个不存在的命令时得到的信息。
在“system32”文件夹中执行“dir *.exe”,也不会返回“shutdown.exe”作为结果之一。但是 - 如果我通过 Windows 资源管理器 - 它就在那里!我可以看到 shutdown.exe。此外,如果我转到“开始 -> 运行”并输入“shutdown /?”,它就可以正常工作。
因此,在 GUI 中工作,而不是在命令行上。非常奇怪。
这是在“system32”文件夹上运行时“dir *.exe”最后一部分的摘录。请注意,缺少“shutdown.exe”和“tsadmin.exe”等常用的可执行文件
02/18/2007 07:00 AM 24,064 route.exe
02/18/2007 07:00 AM 29,184 routemon.exe
02/18/2007 07:00 AM 14,848 rsh.exe
02/18/2007 07:00 AM 67,072 rsopprov.exe
02/18/2007 07:00 AM 77,824 rtcshare.exe
02/18/2007 07:00 AM 18,432 runas.exe
02/18/2007 07:00 AM 34,816 rundll32.exe
02/18/2007 07:00 AM 18,432 runonce.exe
02/18/2007 07:00 AM 13,312 savedump.exe
03/19/2009 07:51 PM 49,152 sc.exe
02/18/2007 07:00 AM 90,112 scardsvr.exe
02/18/2007 07:00 AM 152,064 schtasks.exe
02/18/2007 07:00 AM 16,384 schupgr.exe
02/18/2007 07:00 AM 31,232 sdbinst.exe
02/18/2007 07:00 AM 36,352 secedit.exe
02/18/2007 07:00 AM 32,768 sethc.exe
06/28/2006 12:12 AM 31,232 SetLACState.exe
02/18/2007 07:00 AM 41,472 setup.exe
02/18/2007 07:00 AM 25,088 setup16.exe
02/18/2007 07:00 AM 20,480 setupn.exe
02/18/2007 07:00 AM 60,416 setx.exe
02/18/2007 07:00 AM 10,752 sfc.exe
02/18/2007 07:00 AM 76,288 sfmprint.exe
02/18/2007 07:00 AM 11,776 sfmpsexe.exe
02/18/2007 07:00 AM 65,024 sfmsvc.exe
02/18/2007 07:00 AM 38,400 shmgrate.exe
02/18/2007 07:00 AM 71,168 sigverif.exe
02/18/2007 07:00 AM 26,112 skeys.exe
02/18/2007 07:00 AM 96,256 smlogsvc.exe
02/18/2007 07:00 AM 53,760 smss.exe
02/18/2007 07:00 AM 40,960 snmp.exe
02/18/2007 07:00 AM 25,088 sort.exe
02/18/2007 07:00 AM 9,728 sprestrt.exe
02/18/2007 07:00 AM 10,240 subst.exe
02/18/2007 07:00 AM 14,848 svchost.exe
02/18/2007 07:00 AM 54,272 syncapp.exe
02/18/2007 07:00 AM 18,896 sysedit.exe
02/18/2007 07:00 AM 29,696 syskey.exe
02/18/2007 07:00 AM 107,520 sysocmgr.exe
02/18/2007 07:00 AM 79,360 systeminfo.exe
02/18/2007 07:00 AM 3,072 systray.exe
02/18/2007 07:00 AM 58,880 takeown.exe
02/18/2007 07:00 AM 32,768 tapicfg.exe
02/18/2007 07:00 AM 84,480 taskkill.exe
02/18/2007 07:00 AM 87,552 tasklist.exe
02/18/2007 07:00 AM 168,960 taskmgr.exe
02/18/2007 07:00 AM 13,824 tcmsetup.exe
02/18/2007 07:00 AM 21,504 tcpsvcs.exe
02/18/2007 07:00 AM 28,672 timeout.exe
02/18/2007 07:00 AM 419,328 tracerpt.exe
02/18/2007 07:00 AM 12,800 tracert.exe
02/18/2007 07:00 AM 26,624 tsecimp.exe
02/18/2007 07:00 AM 37,376 typeperf.exe
10/24/2008 04:12 PM 64,000 tzchange.exe
02/18/2007 07:00 AM 5,632 unlodctr.exe
02/18/2007 07:00 AM 321,024 upg351db.exe
02/18/2007 07:00 AM 16,896 ups.exe
02/18/2007 07:00 AM 4,096 user.exe
02/18/2007 07:00 AM 26,112 userinit.exe
02/18/2007 07:00 AM 49,152 utilman.exe
02/18/2007 07:00 AM 47,104 uwdf.exe
02/18/2007 07:00 AM 29,184 verclsid.exe
02/18/2007 07:00 AM 112,640 verifier.exe
02/18/2007 07:00 AM 1,129 vwipxspx.exe
02/18/2007 07:00 AM 55,296 w32tm.exe
02/18/2007 07:00 AM 38,400 waitfor.exe
02/18/2007 07:00 AM 39,424 wdfmgr.exe
02/18/2007 07:00 AM 62,464 wextract.exe
02/18/2007 07:00 AM 38,400 where.exe
02/18/2007 07:00 AM 48,640 whoami.exe
02/18/2007 07:00 AM 36,864 winchat.exe
08/13/2007 06:45 PM 206,336 WinFXDocObj.exe
02/18/2007 07:00 AM 8,704 winhlp32.exe
02/18/2007 07:00 AM 12,800 winmsd.exe
02/18/2007 07:00 AM 2,112 winspool.exe
02/18/2007 07:00 AM 6,656 winver.exe
08/21/2002 05:13 AM 189,952 WISPTIS.EXE
02/18/2007 07:00 AM 67,072 wlbs.exe
02/18/2007 07:00 AM 10,560 wowexec.exe
02/18/2007 07:00 AM 10,752 wowreg32.exe
02/18/2007 07:00 AM 31,232 wpnpinst.exe
02/18/2007 07:00 AM 5,632 write.exe
02/18/2007 07:00 AM 114,688 wscript.exe
02/18/2007 07:00 AM 30,720 xcopy.exe
答案1
这是因为您运行的是 64 位 Windows 2003。基本上 - cmd.exe 以 32 位模式运行,并且只有 64 位版本的 shutdown.exe(和一些其他可执行文件)可用。由于 Windows 后台的工作方式,它不允许您从 32 位进程查看/运行 64 位可执行文件。Explorer 是 64 位的,因此可以看到它们。
有一个可用于此问题的修补程序:
http://support.microsoft.com/?scid=kb;en-us;942589
此外,这里有一篇非常好的博客文章,详细解释了该问题,以及一些替代解决方法(尽管他们推荐使用修补程序):
http://blogs.sepago.de/nicholas/2008/03/13/jailed-32-bit-processes-on-windows-x64/
答案2
“在 64 位版本的 Windows Server 2003 或 Windows XP 中,%WinDir%\System32 文件夹是为 64 位应用程序保留的。当 32 位应用程序尝试访问 System32 文件夹时,访问将重定向到以下文件夹:%WinDir%\SysWOW64”
因此,您将从命令提示符中看到 c:\windows\SysWOW64 中的文件