Lenovo HwPlatform 검색 제공자
IBM.HwPlatform.DiscoveryProvider (DataSourceModuleType)
Element properties: Member Modules:
Overrideable Parameters:
Source Code: <DataSourceModuleType ID="IBM.HwPlatform.DiscoveryProvider" Accessibility="Internal">
<Configuration>
<xsd:element name="IntervalSeconds" type="xsd:integer"/>
<xsd:element name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" ParameterType="int" Selector="$Config/IntervalSeconds$"/>
<OverrideableParameter ID="TimeoutSeconds" ParameterType="int" Selector="$Config/TimeoutSeconds$"/>
</OverrideableParameters>
<ModuleImplementation>
<Composite>
<MemberModules>
<DataSource ID="DS" TypeID="IBM.WinComputer.DiscoveryBase.Repository">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<SyncTime/>
<ScriptName>IBMHwPlatformDiscovery.vbs</ScriptName>
<Arguments>"$MPElement$" "$Target/Id$" "$Target/ManagementGroup/Name$" "$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$" "$Target/Property[Type="IBM.WinComputer"]/SystemUUID$" "$Target/Property[Type="IBM.WinComputer"]/MTAndSN$" "$Target/Property[Type="IBM.WinComputer"]/ModelNumber$" "$Target/Property[Type="IBM.WinComputer"]/PlatformCategory$" "$Target/Property[Type="IBM.WinComputer"]/ProductFamily$" "$Target/Property[Type="IBM.WinComputer"]/PlatformAgentInfo$"</Arguments>
<ScriptBody><Script>
Dim oArgs
Set oArgs = WScript.Arguments
WScript.Echo oArgs.Count
if oArgs.Count < 10 Then
'Wscript.Quit -1
End If
SetLocale("en-us")
Dim sourceID, managedEntityID, managementGroupName, targetComputerPrincipalName, systemUUID, mtAndsn, modelNumber, platformCategory, platformName, agentVersion
sourceID = oArgs(0)
managedEntityID = oArgs(1)
managementGroupName = oArgs(2)
targetComputerPrincipalName = oArgs(3)
systemUUID = oArgs(4)
mtAndsn = oArgs(5)
modelNumber = oArgs(6)
platformCategory = oArgs(7)
platformName = oArgs(8)
agentVersion = oArgs(9)
EventID = 103
Call HwPlatformDiscovery()
Sub HwPlatformDiscovery()
Dim oBag
'Set oAPI = SCOMCreateObject("MOM.ScriptAPI")
Call LogDebugString("Entering HwPlatformDiscovery..." +vbCrlf+ _
" targetComputer:'" + CStr(targetComputerPrincipalName) + "'" +vbCrlf+ _
" systemUUID:'" + CStr(systemUUID) + "'" +vbCrlf+ _
" mt-sn:'" + CStr(mtAndsn) + "'" +vbCrlf+ _
" model:'" + CStr(modelNumber) + "'" +vbCrlf+ _
" platformCat:'" + CStr(platformCategory) + "'", INFO_LEVEL_DETAIL)
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, sourceID, managedEntityID)
If (CreatePlatformInstances() > 0) Then
Call LogDebugString("Created Platform", INFO_LEVEL)
End If
Call oAPI.Return(oDiscoveryData)
End Sub
Function CreatePlatformInstances()
Call LogDebugString("Entering CreatePlatformInstances", INFO_LEVEL_FUNCTION)
CreatePlatformInstances = 0
Dim oPlatformInstance
If (CStr(platformCategory) = RACK_PLATFORM) Then
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.RackSystem']$")
'Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (Rack-mount Platform)")
ElseIf (CStr(platformCategory) = IDATAPLEX_PLATFORM) Then
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.iDataPlexSystem']$")
ElseIf (CStr(platformCategory) = BLADE_PLATFORM) Then
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.BladeSystem']$")
'Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (Blade Platform)")
ElseIf (CStr(platformCategory) = TOWER_PLATFORM) Then
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.TowerSystem']$")
'Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (Tower Platform)")
ElseIf (CStr(platformCategory) = ENTERPRISE_PLATFORM) Then
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.EnterpriseSystem']$")
'Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (Enterprise Platform)")
ElseIf (CStr(platformCategory) = NODE_PLATFORM) Then
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.FlexSystem']$")
'Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (Flex Platform)")
Else
Set oPlatformInstance = oDiscoveryData.CreateClassInstance("$MPElement[Name='IBM.SystemX.UnclassifiedSystem']$")
'Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (Unclassified Platform)")
End If
Call oPlatformInstance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputerPrincipalName + " (" + platformCategory +")")
Call oPlatformInstance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", targetComputerPrincipalName)
Call UpdatePlatformProperty(oPlatformInstance)
Call oDiscoveryData.AddInstance(oPlatformInstance)
CreatePlatformInstances = 1
End Function
Function UpdatePlatformProperty(ByRef oPlatformInstance)
Call LogDebugString("Entering UpdateSystemProperty", INFO_LEVEL_FUNCTION)
Dim oPropertyValue
'Update SystemUUID
oPropertyValue = CStr(systemUUID)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/SystemUUID$", oPropertyValue)
'Update mtAndsn
oPropertyValue = CStr(mtAndsn)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/MTAndSN$", oPropertyValue)
'Update ModelNumber
oPropertyValue = CStr(modelNumber)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/ModelNumber$", oPropertyValue)
'Update PlatformCategory
oPropertyValue = CStr(platformCategory)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/PlatformCategory$", oPropertyValue)
'Update PlatformName
oPropertyValue = CStr(platformName)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/ProductFamily$", oPropertyValue)
'Update HostPrincipalName
oPropertyValue = CStr(targetComputerPrincipalName)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/HostPrincipalName$", oPropertyValue)
'Update HostPlatformAgentInfo
oPropertyValue = CStr(agentVersion)
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/HostPlatformAgentInfo$", oPropertyValue)
'Update ibmInternalWinEventFiltering
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/ibmInternalWinEventFiltering$", GetWinEventFilteringRegValue())
'Update Licensed property
Dim sFeatureId, nRt,level,toke
sFeatureId = ""
level ="None"
toke = ""
'nRt = licKeyValidate(sFeatureId)
'nRt = GetEndpointLic(level, toke)
nRt = GetEndpointLic(level)
Call LogDebugString("GetEndpointLic return: " & nRt, INFO_LEVEL_DETAIL)
If nRt > -1 then
'Call LogDebugString("GetEndpointLic(level, toke):" + level + ","+ toke, WARNING_LEVEL_DEV)
Call LogDebugString("GetEndpointLic(level): " + level, INFO_LEVEL) ' Demote to Info level.
'oPropertyValue = toke
oPropertyValue = level
Else
oPropertyValue = "None"
End IF
Call oPlatformInstance.AddProperty("$MPElement[Name='IBM.SystemX.Platform']/Licensed$", oPropertyValue)
End Function
Function GetWinEventFilteringRegValue()
Dim oReg, rcCode, iWinEventFiltering
'Dim iWinEventFiltering, set this value to 1 means to filter out all winevent's; 0 means to let them go through.
iWinEventFiltering = 1
Call LogDebugString("Entering GetWinEventFilteringRegValue", INFO_LEVEL_FUNCTION)
Set oReg = GetObject("winmgmts://localhost/root/default:StdRegProv")
If (not(oReg is nothing)) Then
Dim dwValue
rcCode = oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, WINEVENT_FILTER_KEY, WINEVENT_FILTER_NAME, dwValue)
If (Not(IsNull(dwValue))) Then
iWinEventFiltering = dwValue
End If
End If
GetWinEventFilteringRegValue = iWinEventFiltering
End Function
</Script> </ScriptBody>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</DataSource>
</MemberModules>
<Composition>
<Node ID="DS"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>