#Get-WindowsFeature Discoveries
#2016
$versionTable.Add("10.0","LW.Microsoft.BaseOS.2016")
$classMPElementTable.Add("LW.Microsoft.BaseOS.2016","`$MPElement[Name='LW.Microsoft.BaseOS.2016']$")
$classCategoryTable.Add("LW.Microsoft.BaseOS.2016","Core OS 2016")
#Core OS
$classMPElementTable.Add("LW.Microsoft.Core.OS","`$MPElement[Name='LW.Microsoft.Core.OS']$")
$classCategoryTable.Add("LW.Microsoft.Core.OS","Core OS")
#2012R2
$versionTable.Add("6.3","LW.Microsoft.BaseOS.2012R2")
$classMPElementTable.Add("LW.Microsoft.BaseOS.2012R2","`$MPElement[Name='LW.Microsoft.BaseOS.2012R2']$")
$classCategoryTable.Add("LW.Microsoft.BaseOS.2012R2","Base OS 2012R2")
#2012
$versionTable.Add("6.2","LW.Microsoft.BaseOS.2012")
$classMPElementTable.Add("LW.Microsoft.BaseOS.2012","`$MPElement[Name='LW.Microsoft.BaseOS.2012']$")
$classCategoryTable.Add("LW.Microsoft.BaseOS.2012","Base OS 2012")
#2008R2
$versionTable.Add("6.1","LW.Microsoft.BaseOS.2008R2")
$classMPElementTable.Add("LW.Microsoft.BaseOS.2008R2","`$MPElement[Name='LW.Microsoft.BaseOS.2008R2']$")
$classCategoryTable.Add("LW.Microsoft.BaseOS.2008R2","Base OS 2008R2")
function LogWrite
{
Param([string]$logString)
$script:logMessage += $logString
}
if(($SourceId -eq $null) -or ($ManagedEntityId -eq $null) -or ($computerName -eq $null))
{
LogWrite "`nServerOSVersions::SourceId, ManagedEntityId or Computer name is null. Exiting script."
Exit -1
}
#Create discovery property bag only once as we can't return multiple property bags
$api = new-object -comObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $SourceId, $ManagedEntityId)
$scriptEndTime = Get-Date
$totalScriptRunTime = ($scriptEndTime - $scriptStartTime) | select-object TotalSeconds
$totalScriptRunTime = $totalScriptRunTime.TotalSeconds
LogWrite "`n Total time taken to run the script $totalScriptRunTime"
#Log an event after running the script
$api.LogScriptEvent("ServerOSVersions.ps1", 5000, 0, $script:logMessage)