Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2_Discovery

Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2_Discovery (Discovery)

Discovery module for class Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2

Element properties:

TargetMicrosoft.Windows.Computer
EnabledTrue
Frequency14401
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2_Discovery DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider Default

Source Code:

<Discovery ID="Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2_Discovery" Enabled="true" Target="Windows!Microsoft.Windows.Computer" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2">
<Property TypeID="MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2" PropertyID="Version"/>
<Property TypeID="MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2" PropertyID="IsWS08"/>
<Property TypeID="MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2" PropertyID="IsWS08R2"/>
<Property TypeID="MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2" PropertyID="IsWS8"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2_Discovery" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>14401</IntervalSeconds>
<SyncTime/>
<ScriptName>WindowsServer2008R2.ps1</ScriptName>
<ScriptBody><Script>param($SourceId,$ManagedEntityId,$KeyPropertyPrincipalName)

$ErrorActionPreference = "Stop"

# Set up the arguments
$scriptargs = new-object psobject
$scriptargs | add-member NoteProperty "SourceId" $SourceId
$scriptargs | add-member NoteProperty "ManagedEntityId" $ManagedEntityId
$scriptargs | add-member NoteProperty "KeyPropertyPrincipalName" $KeyPropertyPrincipalName

# Set up the discovery output
$discoveryoutput = new-object psobject
$discoveryoutput | add-member NoteProperty "Version" ""
$discoveryoutput | add-member NoteProperty "IsWS08" $false
$discoveryoutput | add-member NoteProperty "IsWS08R2" $false
$discoveryoutput | add-member NoteProperty "IsWS8" $false

#-----------------------------------------------------
# Environment
#-----------------------------------------------------
$ScriptEnv = new-object psobject
$ScriptEnv | add-member ScriptMethod "GetWin32OSWMIClass" -value { Get-WmiObject -Class Win32_OperatingSystem }

#-----------------------------------------------------
# Main Discovery Function
#-----------------------------------------------------
function AdvisorDiscovery($scriptargs, $discoveryoutput)
{
$win32OSWMIClass = $ScriptEnv.GetWin32OSWMIClass()
$osVersion = $win32OSWMIClass.Version.Split(".")

if (($win32OSWMIClass.ProductType -ne 1) -and # exclude client SKUs (Workstations)
($osVersion[0] -eq "6"))
{
$discoveryoutput.Version = $win32OSWMIClass.Version

if ($osVersion[1] -eq "0") # Windows Server 2008
{
$discoveryoutput.IsWS08 = $true
}
elseif ($osVersion[1] -eq "1") # Windows Server 2008 R2
{
$discoveryoutput.IsWS08R2 = $true
}
elseif ($osVersion[1] -eq "2") # Windows Server 8
{
$discoveryoutput.IsWS8 = $true
}
else # Non-supported server version
{
$discoveryoutput.Version = ""
}
}
}

# Create a new discovery data packet
$oAPI = new-object -comObject "MOM.ScriptAPI"

$discoverydata = $oAPI.CreateDiscoveryData(0, $scriptargs.SourceId, $scriptargs.ManagedEntityId)

$instance = $discoverydata.CreateClassInstance("$MPElement[Name='MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2']$")

$instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $scriptargs.KeyPropertyPrincipalName)
$instance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", '/')

AdvisorDiscovery $scriptargs $discoveryoutput

# set the discovery output
if ($discoveryoutput.Version -ne "")
{
$instance.AddProperty("$MPElement[Name='MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2']/Version$", $discoveryoutput.Version)
$instance.AddProperty("$MPElement[Name='MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2']/IsWS08$", $discoveryoutput.IsWS08)
$instance.AddProperty("$MPElement[Name='MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2']/IsWS08R2$", $discoveryoutput.IsWS08R2)
$instance.AddProperty("$MPElement[Name='MicrosoftKnowledgeServicesSCMLibrary!Microsoft.KnowledgeServices.SCM.Windows.Server.2008.R2']/IsWS8$", $discoveryoutput.IsWS8)

$discoverydata.AddInstance($instance)
}

$discoverydata
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>SourceId</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>ManagedEntityId</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>KeyPropertyPrincipalName</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
<StrictErrorHandling>false</StrictErrorHandling>
</DataSource>
</Discovery>