From: William Van Hevelingen <[email protected]>
Signed-off-by: William Van Hevelingen <[email protected]>
Signed-off-by: Rein Henrichs <[email protected]>
---
lib/facter/manufacturer.rb | 8 ++++++++
lib/facter/util/manufacturer.rb | 17 +++++++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/lib/facter/manufacturer.rb b/lib/facter/manufacturer.rb
index 9d66465..68f5b96 100644
--- a/lib/facter/manufacturer.rb
+++ b/lib/facter/manufacturer.rb
@@ -13,6 +13,14 @@ if Facter.value(:kernel) == "OpenBSD"
}
Facter::Manufacturer.sysctl_find_system_info(mfg_keys)
+
+elsif Facter.value(:kernel) == "windows"
+ win32_keys = {
+ 'manufacturer' => ['Manufacturer', 'Bios'],
+ 'serialNumber' => ['Serialnumber', 'Bios'],
+ 'productname' => ['Name', 'ComputerSystemProduct']
+ }
+ Facter::Manufacturer.win32_find_system_info(win32_keys)
else
query = {
'[Ss]ystem [Ii]nformation' => [
diff --git a/lib/facter/util/manufacturer.rb b/lib/facter/util/manufacturer.rb
index 112380b..368e8c1 100644
--- a/lib/facter/util/manufacturer.rb
+++ b/lib/facter/util/manufacturer.rb
@@ -60,4 +60,21 @@ module Facter::Manufacturer
end
end
end
+
+ def self.win32_find_system_info(name)
+ require 'win32ole'
+ value = ""
+ wmi = WIN32OLE.connect("winmgmts://")
+ name.each do |facterkey, win32key|
+ query = wmi.ExecQuery("select * from Win32_#{win32key.last}")
+ Facter.add(facterkey) do
+ confine :kernel => :windows
+ setcode do
+ query.each { |x| value = x.__send__( (win32key.first).to_sym) }
+ value
+ end
+ end
+ end
+ end
+
end
--
1.7.0.4
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.