Chef infra 在Windows上运行Chef solo,运行Windows\u软件包时出现Win32API错误

Chef infra 在Windows上运行Chef solo,运行Windows\u软件包时出现Win32API错误,chef-infra,vagrant,chef-solo,Chef Infra,Vagrant,Chef Solo,在由Vagrant提供的WindowsServer2008R2数据中心核心(下载自))虚拟机上,我运行chef solo来测试我的食谱。我无法运行windows\u程序包,否则会出现win32api错误 运行以下配方步骤: windows_package ".NET 4.0" do package_name "Microsoft .NET Framework 4 Extended" source "http://download.microsoft.com/download/3/6/1/

在由Vagrant提供的WindowsServer2008R2数据中心核心(下载自))虚拟机上,我运行
chef solo
来测试我的食谱。我无法运行
windows\u程序包
,否则会出现win32api错误

运行以下配方步骤:

windows_package ".NET 4.0" do
  package_name "Microsoft .NET Framework 4 Extended"
  source "http://download.microsoft.com/download/3/6/1/361DAE4E-E5B9-4824-B47F-6421A6C59227/dotNetFx40_Full_x86_x64_SC.exe"
  options "/q"
  installer_type :inno
  action :install
end
产生以下错误:

Chef::Exceptions::Win32APIError: windows_package[.NET 4.0] (<my recipe> line 10) had an error: 
 Chef::Exceptions::Win32APIError: remote_file[C:/vagrant/cache/dotNetFx40_Full_x86_x64_SC.exe] (dynamically defined) had an error: 
 Chef::Exceptions::Win32APIError: Incorrect function.
get_named_security_info(C:/vagrant/cache/dotNetFx40_Full_x86_x64_SC.exe, SE_FILE_OBJECT, 7)
 ---- Begin Win32 API output ----
System Error Code: 1
System Error Message: Incorrect function.
---- End Win32 API output ----
Chef::Exceptions::win32apierro:windows_程序包[.NET 4.0](第10行)出现错误:
Chef::Exceptions::Win32APIError:远程\u文件[C:/vagrant/cache/dotNetFx40\u Full\u x86\u x64\u SC.exe](动态定义)有一个错误:
Chef::Exceptions::Win32APIError:函数不正确。
获取命名的安全信息(C:/vagrant/cache/dotNetFx40\u Full\u x86\u x64\u SC.exe,SE\u FILE\u对象,7)
----开始Win32 API输出----
系统错误代码:1
系统错误消息:功能不正确。
----结束Win32 API输出----
安装文件下载正确,我可以在chef错误后从VM控制台手动运行它,所以我猜这是Ruby/chef权限错误

尝试安装会产生相同的
get\u named\u security\u info
错误

你知道怎么了吗

--
使用
厨师长版本11.4.4-2

明白了。结果表明,该错误是由于缓存文件夹(安装程序下载的地方)位于Vagrant“网络共享文件夹”(c:\Vagrant\cache\)中引起的。例如,将其更改为
c:\temp\cache
可以解决
get\u named\u security\u info()
错误

因此,在我的chef solo配置文件中:

file_cache_path "C:/temp/cache"

谢谢,我把这归咎于缺乏对WindowsServer2003的官方支持。对于谷歌用户来说,同样的错误可以用
Chef::Exceptions::WindowsNotAdmin:file[/vagrant/foo.txt](foo::default line 10)掩盖。错误:Chef::Exceptions::WindowsNotAdmin:由于缺少管理员权限,无法获取“/vagrant/foo.txt”的安全信息。
,例如,当您添加
内容“bar”时
文件/vagrant/foo.txt“