好的,我会先给你上下文。
所以现在问题。
我正在使用C#Process和ProcessStartInfo类来打开cmd.exe的实例,我从hadoop服务器获取文件并在UI上访问它。 (hadoop fs -get .....)。 但由于某种原因,我从process.StandardError收集的错误返回以下错误:
' hadoop的'不被识别为内部或外部命令,可操作程序或批处理文件。
我检查过运行cmd进程的用户是服务器管理员之一。
注意事项:命令提示符工作目录是' C:\ Windows \ SysWOW64 \ inetsrv'。这是否意味着它是32位cmd?可能是因为hadoop不被认可的原因?我想过复制这个问题。 (打开32位cmd提示符并为该管理员用户键入hadoop。但hadoop命令成功运行)
我不明白为什么这个高权限用户无法识别hadoop命令。
更新:
这似乎是一个类似的问题。我会尝试一下让你知道。
Process.Start cmd.exe won't run cmd file that is passed as agument when running in IIS
好的,这不是同一个问题。因为我能够打开并运行批处理文件。 但cmd无法识别我安装的命令。
所以问题是,它实际开始的cmd版本是什么?按版本,我的意思是没有安装任何东西的cmd?
答案 0 :(得分:0)
32位进程在
中查找c:\ windows \ syswow64 在询问c:\ windows \ sysnative
c:\ windows \ system32
和64位进程在
中查找c:\ windows \ system32 在询问c:\ windows \ syswow64
c:\ windows \ syswow64
在要求c:\ windows \ sysnative