在Windows Server 2008上,当我运行chef\embedded\bin\irb
并输入
File.exist?("C:\\Windows\\System32\\ServerManagerCmd.exe")
or
File.exists?("C:\\Windows\\System32\\ServerManagerCmd.exe")
or
File.exist?("C:/Windows/System32/ServerManagerCmd.exe")
我收到false,即使它存在且终端以管理员身份运行。 另外,如果我尝试运行dos命令,它会说该文件不存在:
C:/Windows/System32/ServerManagerCmd.exe -version
我注意到当我尝试其他文件时:
File.exist?("C:\\Windows\\System32\\services.msc")
File.exist?("C:\\Windows\\System32\\SessEnv.dll")
这些都是真的。 我比较了权限;他们是相同的。 有没有人有任何建议如何调试,也许还有一个解决方法?
答案 0 :(得分:0)
让我觉得64-bit (WOW64) redirection是个问题。
您应该可以使用sysnative
目录。请尝试使用此代码:
File.exists?(File.join(ENV["windir"], "sysnative", "ServerManagerCmd.exe"))