Hi people,
Im trying the next command on a windows Server 2012 R2 version
execute "Executin wuauclt" do
command 'wuauclt /reportnow'
action :run
end
And im getting wuauclt is not recognized as an internal or external command.
I tried :
- To execute with full path: c:\windows…\wuauclt.exe
- using cwd to set to wuauclt.exe folder.
But all these tried give me the same error.
i dont use windows.
But this may be of help to you the windows cookbook: https://github.com/chef-cookbooks/windows
specifically the windows helpers : https://github.com/chef-cookbooks/windows/blob/0d709c348b0cfd1cb3f7885873e7513817a4df74/libraries/windows_helper.rb
if you include it in your metadata.rb to use
then try something like
# include Windows::Helper from Opscode Windows Cookbook
::Chef::Recipe.send(:include, Windows::Helper)
# now you can call helper methods like win_friendly_path directly
my_thing = win_friendly_path('c:/something/something')
execute "My thingy something" do
command my_thing
end
good references: http://www.slideshare.net/opscode/chef-conf-windowsdougireton
and this blog post: http://dougireton.com/blog/2012/12/16/how-to-include-the-windows-cookbook-helper-methods-in-your-chef-recipe/
also just the github page for windows cookbook looks legit… always browse the LWRPs to see if you can get some direction/inspiration
seems pretty legit too… for finding the command and maybe saving it to a re-usable value to invoke from later.
locate_sysnative_cmd("whatever.exe")
The problem you are having is an “architecture” issue of 32bit vs. 64bit wuauclt
is 64bit only and is not present when invoked from a 32bit process. Most run the chef-client as a 32 bit process and so you would expect to see this here. We do now ship a 64 bit chef client which should then recognize wuauclt. However you may not want to upgrade and in that case you also have the option of using the powershell_out
ruby_block 'run wuauclt' do
block do
Chef::Resource::RubyBlock.send(:include, Chef::Mixin::PowershellOut)
powershell_out!("wuauclt /reportnow")
end
end
If you are using a recent version of chef (I believe 12.5.1 or later) then powershell_out
should use a 64bit powershell.exe process.
1 Like