From 7fc657e774eba799336e4ae3ded051787f8b05db Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Tue, 19 Apr 2011 11:12:51 +0000 Subject: [PATCH] enhanced Windows OS detection and versioning git-svn-id: http://www.observium.org/svn/observer/trunk@2099 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/discovery/os/windows.inc.php | 3 +- includes/polling/os/windows.inc.php | 48 ++++++++++++++++++++------- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/includes/discovery/os/windows.inc.php b/includes/discovery/os/windows.inc.php index 21d3d75439..608298e563 100644 --- a/includes/discovery/os/windows.inc.php +++ b/includes/discovery/os/windows.inc.php @@ -2,7 +2,8 @@ if (!$os) { + if (strstr($sysObjectId, "1.3.6.1.4.1.311.1.1.3")) { $os = "windows"; } if (preg_match("/Windows/", $sysDescr)) { $os = "windows"; } } -?> \ No newline at end of file +?> diff --git a/includes/polling/os/windows.inc.php b/includes/polling/os/windows.inc.php index 7e7ea3cd9e..fada42e18f 100755 --- a/includes/polling/os/windows.inc.php +++ b/includes/polling/os/windows.inc.php @@ -15,19 +15,43 @@ if (strstr($sysDescr, "EM64")) { $hardware = "Intel x64"; } if (strstr($sysDescr, "AMD64")) { $hardware = "AMD x64"; } if (strstr($sysDescr, "Intel64")) { $hardware = "Intel x64"; } -if (strstr($sysDescr, "Build Number: 1057")) { $version = "NT 3.51"; } -if (strstr($sysDescr, "Build Number: 1381")) { $version = "NT 4.0"; } -if (strstr($sysDescr, "Build 2195")) { $version = "2000 (NT 5.0)"; } -if (strstr($sysDescr, "Build 2600")) { $version = "XP (NT 5.1)"; } -if (strstr($sysDescr, "Build 3790")) { $version = "XP / 2003 (NT 5.2)"; } -if (strstr($sysDescr, "Build 6000")) { $version = "Vista (NT 6.0)"; } -if (strstr($sysDescr, "Build 6001")) { $version = "Vista SP1 / 2008 (NT 6.0)"; } -if (strstr($sysDescr, "Build 6002")) { $version = "Vista SP2 / 2008 SP2 (NT 6.0)"; } -if (strstr($sysDescr, "Build 7600")) { $version = "7 / 2008 R2 (NT 6.1)"; } +if($sysObjectID == ".1.3.6.1.4.1.311.1.1.3.1.1") { ## Workstation -if (strstr($sysDescr, "Uniprocessor Free")) { $features = "Uniprocessor"; } -if (strstr($sysDescr, "Multiprocessor Free")) { $features = "Multiprocessor"; } + if (strstr($sysDescr, "Build Number: 1057")) { $version = "NT 3.51 Workstation"; } + if (strstr($sysDescr, "Build Number: 1381")) { $version = "NT 4.0 Workstation"; } + if (strstr($sysDescr, "Build 2195")) { $version = "2000 (NT 5.0)"; } + if (strstr($sysDescr, "Build 2600")) { $version = "XP (NT 5.1)"; } + if (strstr($sysDescr, "Build 3790")) { $version = "XP x64 (NT 5.2)"; } + if (strstr($sysDescr, "Build 6000")) { $version = "Vista (NT 6.0)"; } + if (strstr($sysDescr, "Build 6001")) { $version = "Vista SP1 (NT 6.0)"; } + if (strstr($sysDescr, "Build 6002")) { $version = "Vista SP2 (NT 6.0)"; } + if (strstr($sysDescr, "Build 7600")) { $version = "7 (NT 6.1)"; } + +} elseif ($sysObjectID == ".1.3.6.1.4.1.311.1.1.3.1.2") { ## Server + + if (strstr($sysDescr, "Build Number: 1057")) { $version = "NT Server 3.51"; } + if (strstr($sysDescr, "Build Number: 1381")) { $version = "NT Server 4.0"; } + if (strstr($sysDescr, "Build 2195")) { $version = "2000 Server (NT 5.0)"; } + if (strstr($sysDescr, "Build 3790")) { $version = "Server 2003 (NT 5.2)"; } + if (strstr($sysDescr, "Build 6001")) { $version = "Server 2008 (NT 6.0)"; } + if (strstr($sysDescr, "Build 6002")) { $version = "Server 2008 SP2 (NT 6.0)"; } + if (strstr($sysDescr, "Build 7600")) { $version = "Server 2008 R2(NT 6.1)"; } + +} elseif ($sysObjectID == ".1.3.6.1.4.1.311.1.1.3.1.3") { ## Datacentre Server + + if (strstr($sysDescr, "Build Number: 1057")) { $version = "NT Datacenter 3.51"; } + if (strstr($sysDescr, "Build Number: 1381")) { $version = "NT Datacenter 4.0"; } + if (strstr($sysDescr, "Build 2195")) { $version = "2000 Datacenter Server (NT 5.0)"; } + if (strstr($sysDescr, "Build 3790")) { $version = "Server 2003 Datacenter (NT 5.2)"; } + if (strstr($sysDescr, "Build 6001")) { $version = "Server 2008 Datacenter (NT 6.0)"; } + if (strstr($sysDescr, "Build 6002")) { $version = "Server 2008 Datacenter SP2 (NT 6.0)"; } + if (strstr($sysDescr, "Build 7600")) { $version = "Server 2008 Datacenter R2 (NT 6.1)"; } + +} + +if (strstr($sysDescr, "Uniprocessor")) { $features = "Uniprocessor"; } +if (strstr($sysDescr, "Multiprocessor")) { $features = "Multiprocessor"; } ### Detect processor type? : I.E. x86 Family 15 Model 2 Stepping 7 -?> \ No newline at end of file +?>