chef irb没有看到系统目录下的文件

时间:2014-05-06 04:15:08

标签: ruby windows chef

在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")

这些都是真的。 我比较了权限;他们是相同的。 有没有人有任何建议如何调试,也许还有一个解决方法?

1 个答案:

答案 0 :(得分:0)

让我觉得64-bit (WOW64) redirection是个问题。

您应该可以使用sysnative目录。请尝试使用此代码:

File.exists?(File.join(ENV["windir"], "sysnative", "ServerManagerCmd.exe"))