Dim oAPI, oDiscoveryData
Set oAPI = CreateObject("MOM.ScriptAPI")
If Err <> 0 Then
WScript.Quit -1
End If
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
If Err <> 0 Then
WScript.Quit -1
End If
' For SQLSer2012 AnalysisService
Set objScriptExec = objShell.Exec("%VCS_HOME%\Bin\MOMUtil.exe GenericService ServiceName")
strAPIState = objScriptExec.StdOut.ReadAll
objTextFile.WriteLine(strAPIState)
objTextFile.WriteLine("SQL2012 Instances")
' For SQLServer2012
Set objScriptExec = objShell.Exec("%VCS_HOME%\Bin\MOMUtil.exe SQLServer Instance")
strAPIState = objScriptExec.StdOut.ReadAll
objTextFile.WriteLine(strAPIState)
Set objScriptExec = objShell.Exec("%VCS_HOME%\Bin\MOMUtil.exe Lanman VirtualName")
strAPIState = objScriptExec.StdOut.ReadAll
'objLogFile.WriteLine(strAPIState)
If strAPIState <> "" Then
If InStr (1, strAPIState, "error", 1) >0 Then
Call oAPI.Return(oDiscoveryData)
WScript.Quit
Else
objTextFile.WriteLine("Lanman Information")
objTextFile.WriteLine(strAPIState)
objTextFile.close()
'Get the Instance and Lanman pair with service group
Dim strTempArr, ServiceGroups, GroupName
ServiceGroups=""
Set objTextFile = fsO.OpenTextFile(FILENAME, ForReading, True)
'objLogFile.WriteLine("Start reading file")
If objTextFile.AtEndOfStream <> True Then
strAPIState = objTextFile.ReadLine
strAPIState = Trim(strAPIState)
Do While (StrComp(strAPIState, "SQL2012 Instances", 1) <> 0 )
If Len(strAPIState) > 0 Then
strTempArr = Split(strAPIState, ",")
If (StrComp("Instance", strTempArr(0), 1) = 0 ) Then
Dim ServiceName
ServiceName = Trim(strTempArr(1))
If (Len(ServiceName) > 0) And (InStr(ServiceName, "OLAP") > 0) Then
'Discover Virtual Server
GroupName = "," + strTempArr(2)+","
If InStr(ServiceGroups, GroupName) = 0 Then
'objLogFile.WriteLine("Adding Serivce" + GroupName)
ServiceGroups = ServiceGroups + GroupName
End If
End If
End If
End If
strAPIState = objTextFile.ReadLine
strAPIState = Trim(strAPIState)
Loop
Do While (StrComp(strAPIState, "Lanman Information", 1) <> 0 )
If Len(strAPIState) > 0 Then
strTempArr = Split(strAPIState, ",")
If (StrComp("Instance", strTempArr(0), 1) = 0 ) Then
'Discover Virtual Server
GroupName = "," + strTempArr(2)+","
If InStr(ServiceGroups, GroupName) = 0 Then
'objLogFile.WriteLine("Adding SQL" + GroupName)
ServiceGroups = ServiceGroups +GroupName
End If
End If
End If
strAPIState = objTextFile.ReadLine
strAPIState = Trim(strAPIState)
Loop
'objLogFile.WriteLine("SGS: " + ServiceGroups)
strAPIState = objTextFile.ReadLine
strAPIState = Trim(strAPIState)
Do While objTextFile.AtEndOfStream <> True
If Len(strAPIState) > 0 Then
strTempArr = Split(strAPIState, ",")
If (StrComp("Instance", strTempArr(0), 1) = 0 ) Then
'Find Lanman Group in the ServiceGroup list
Dim SearchString
SearchString = "," + strTempArr(2) + ","
If InStr(ServiceGroups, SearchString) > 0 Then
Dim OnlineNode
OnlineNode = strTempArr(3)
'objLogFile.WriteLine("OnlineNode :" + OnlineNode)
If Len(OnlineNode) > 1 Then
'objLogFile.WriteLine("Discovering :" + strTempArr(1))
Dim LanmanName, FQLanmanName
LanmanName = strTempArr(1)
FQLanmanName = strTempArr(1) + "." + DomainName
Dim oVirtualServer
Set oVirtualServer = oDiscoveryData.CreateClassInstance("$MPElement[Name='VCSLibrary!Veritas.VCS.VirtualServer']$")
With oVirtualServer
.AddProperty "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", FQLanmanName
.AddProperty "$MPElement[Name='Windows!Microsoft.Windows.Computer']/NetworkName$", FQLanmanName
.AddProperty "$MPElement[Name='Windows!Microsoft.Windows.Computer']/DNSName$", FQLanmanName
.AddProperty "$MPElement[Name='Windows!Microsoft.Windows.Computer']/NetbiosComputerName$", LanmanName
.AddProperty "$MPElement[Name='VCSLibrary!Veritas.VCS.VirtualServer']/OnlineNode$", OnlineNode
End With
Call oDiscoveryData.AddInstance(oVirtualServer)
End If
End If
End If
End If
strAPIState = objTextFile.ReadLine
strAPIState = Trim(strAPIState)
Loop
End If
End If
End If
objTextFile.Close()
'objLogFile.WriteLine("Returning discovery data")
'objLogFile.Close()
oAPI.Return(oDiscoveryData)
End Sub </Script></ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</DataSource>
</Discovery>