LyncRoomConsole Discovery
Microsoft.Lync.RoomSystem.Client.Discovery.LyncRoomConsole (Discovery)
Element properties:
Object Discovery Details:
Member Modules:
Source Code:
<Discovery ID="Microsoft.Lync.RoomSystem.Client.Discovery.LyncRoomConsole" Enabled="true" Target="Microsoft.Lync.RoomSystem.Client.Class.LyncRoomConsole.Seed" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.Lync.RoomSystem.Client.Class.LyncRoomConsole">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="Microsoft.Lync.RoomSystem.Client.Class.LyncRoom">
<Property TypeID="Microsoft.Lync.RoomSystem.Client.Class.LyncRoom" PropertyID="ApplicationName"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryRelationship TypeID="LyncRoomConsole.Seed.Hosts.LyncRoomConsole"/>
<DiscoveryRelationship TypeID="LyncRoom.Contains.LyncRoomConsole"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoveryScript.vbs</ScriptName>
<Arguments>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>
Option Explicit
SetLocale("en-us")
Dim oScriptAPI, oDiscoveryData
Set oScriptAPI = CreateObject("MOM.ScriptAPI")
Set oDiscoveryData = oScriptAPI.CreateDiscoveryData(0, "$MPElement$", "$Target/Id$")
Dim oTarget
oTarget = WScript.Arguments(0)
Dim oInst0
Set oInst0 = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Lync.RoomSystem.Client.Class.LyncRoom']$")
Dim appName
appName = GetReg("SOFTWARE\Microsoft\LyncRoom")
If IsNull(appName) Then
appName = "LyncRoom"
End If
Call oInst0.AddProperty("$MPElement[Name='Microsoft.Lync.RoomSystem.Client.Class.LyncRoom']/ApplicationName$", appName)
Call oInst0.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", appName)
Call oDiscoveryData.AddInstance(oInst0)
Dim oInst1
Set oInst1 = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Lync.RoomSystem.Client.Class.LyncRoomConsole']$")
Call oInst1.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", oTarget)
Call oInst1.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "LyncRoomConsole (" + oTarget + ")")
Call oDiscoveryData.AddInstance(oInst1)
Dim oRel0
Set oRel0 = oDiscoveryData.CreateRelationshipInstance("$MPElement[Name='LyncRoom.Contains.LyncRoomConsole']$")
oRel0.Source = oInst0
oRel0.Target = oInst1
Call oDiscoveryData.AddInstance(oRel0)
Call oScriptAPI.Return(oDiscoveryData)
Function CheckReg(ByVal sReg)
Dim oStdRegProv
Set oStdRegProv = GetObject("winmgmts:\\.\root\default:StdRegProv")
sReg = TrimDelimeter(sReg)
Dim sStart, sEnd : sStart = ""
If InStr(sReg, "\") <> 0 Then
sStart = Mid(sReg, 1, InStrRev(sReg, "\") - 1)
End If
sEnd = Mid(sReg, InStrRev(sReg, "\") + 1)
Dim aValues(), bFound : bFound = false
Call oStdRegProv.EnumKey(, sStart, aValues)
Dim sValue
For Each sValue In aValues
If UCase(sValue) = UCase(sEnd) Then
bFound = true
End If
Next
CheckReg = bFound
End Function
Function GetReg(ByVal sReg)
Dim oStdRegProv
Set oStdRegProv = GetObject("winmgmts:\\.\root\default:StdRegProv")
Dim sValue
Dim bDefault : bDefault = false
If (Len(sReg) = InStrRev(sReg, "\")) Then
bDefault = true
End If
sReg = TrimDelimeter(sReg)
If bDefault Then
Call oStdRegProv.GetStringValue(, sReg, "", sValue)
Else
Dim sStart, sEnd : sStart = ""
If InStr(sReg, "\") <> 0 Then
sStart = Mid(sReg, 1, InStrRev(sReg, "\") - 1)
End If
sEnd = Mid(sReg, InStrRev(sReg, "\") + 1)
Call oStdRegProv.GetStringValue(, sStart, sEnd, sValue)
If IsNull(sValue) Then
Call oStdRegProv.GetDWORDValue(, sStart, sEnd, sValue)
End If
If IsNull(sValue) Then
Call oStdRegProv.GetQWORDValue(, sStart, sEnd, sValue)
End If
End If
GetReg = sValue
End Function
Function TrimDelimeter(ByVal sReg)
Dim aReg : aReg = Split(sReg, "\")
Dim a_Reg(), sPart, i : i = 0
For Each sPart In aReg
If sPart <> "" Then
ReDim Preserve a_Reg(i)
a_Reg(i) = sPart
i = i + 1
End If
Next
TrimDelimeter = Join(a_Reg, "\")
End Function
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>