![Chef 未使用文件资源删除 %systemroot%\system32 路径中的文件](https://linux22.com/image/624752/Chef%20%E6%9C%AA%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%E8%B5%84%E6%BA%90%E5%88%A0%E9%99%A4%20%25systemroot%25%5Csystem32%20%E8%B7%AF%E5%BE%84%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6.png)
我正在使用厨师file
用于%systemroot%\system32
在 Windows 计算机中删除路径内的文件的资源。资源块如下,
file 'Delete_File' do
path 'C:\\Windows\\System32\\my.dll'
action :delete
end
我已确保在调用资源块dll
之前,使用该服务的 Windows 服务已停止。file
但运行结束时文件仍未被删除chef-client
。因此,我假设需要进行一些访问权限设置才能实现此目的。
任何指针都会有帮助。
答案1
我怀疑您在 W2K8R2 上使用 32 位版本chef-client
,这是一个 x64 架构操作系统。据推测,您的chef-client
进程“看到”的目录%systemroot%\system32
实际上是%systemroot%\syswow64
。我猜您的 DLL 不在那里,无法删除。
这已在 Opscode 的票据中讨论过以及那里描述的解决方法,参考%systemroot%\sysnative
符号可能是您能做的最好的事情。