' Reg string const
Const StrVMMManagementGroupInstallationRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Server\Setup\InstallPath"
Const StrVirtualServerRegKey = "HKLM\System\CurrentControlSet\Services\Virtual Server\Start"
Const StrVMMServerInstallationRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Server\Setup\InstallPath"
Const StrVMMSelfServiceServerInstallationRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Self-Service Portal\Setup\InstallPath"
Const StrVMMSSsiteEngineMachineRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Self-Service Portal\Settings\VmmServerName"
Const StrVMMDatabaseServerRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Server\Settings\Sql\OnRemoteServer"
Const StrVMMDatabaseNameRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Server\Settings\Sql\DatabaseName"
Const StrVMMDatabaseInstanceRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Server\Settings\Sql\InstanceName"
Const StrVMMRemoteDatabaseMachineFQDNRegKey = "HKLM\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 2007 Server\Settings\Sql\MachineFQDN"
Const StrWebsitDisplayName = "Microsoft System Center Virtual Machine Manager 2007 Self-Service Portal"
Const StrSQLServerDefaultInstance = "MSSQLSERVER"
'=============
' Method: HasRegistry
' Description: This function returns true if the registry exists; otherwise returns false
'=============
Function HasRegistry(ByVal regString)
Dim bHasRegistry
Dim oReg
Set oReg = CreateObject("WScript.Shell")
On Error Resume Next
Dim sValue
sValue = oReg.RegRead(regString)
If Err.number <> 0 Then
bHasRegistry = False
Else
bHasRegistry = True
End If
On Error Goto 0
HasRegistry = bHasRegistry
End Function
'=============
' Method: ReadRegistry
' Description: This function reads the registry, returns true if the registry exists; otherwise returns false
'=============
Function ReadRegistry(ByVal regString, ByRef regValue)
Dim bHasRegistry
Dim oReg
Set oReg = CreateObject("WScript.Shell")
On Error Resume Next
regValue = oReg.RegRead(regString)
If Err.number <> 0 Then
bHasRegistry = False
Else
bHasRegistry = True
End If
On Error Goto 0
ReadRegistry = bHasRegistry
End Function
'=============
' Method: IsVMMSelfService
' Description: This function checks whether the local machine hosts VMMSelfService by checking a specific registry
'=============
Function IsVMMSelfService()
IsVMMSelfService = HasRegistry(StrVMMSelfServiceServerInstallationRegKey)
End Function
Call Main()
'=============
' Method: Main
' Description: This sub discovers VMMSelfService instance
'=============
Sub Main()
Dim oArgs
Set oArgs = WScript.Arguments
if oArgs.Count <> 3 Then
WScript.Quit()
End If
Dim oAPI, oDiscoveryData
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
If IsVMMSelfService() Then
' Discover VMMSelfService instance
DiscoverVMMSelfService oDiscoveryData, TargetComputer
End If
Call oAPI.Return(oDiscoveryData)
End Sub
'=============
' Method: DiscoverVMMSelfService
' Description: This sub discovers and creates SelfService instance, adds it to discovery data
'=============
Sub DiscoverVMMSelfService(ByRef oDiscoveredData, ByVal hostComputer)
Dim oVMMSelfServiceInst, vmmEngineComputer
set oVMMSelfServiceInst = oDiscoveredData.CreateClassInstance("$MPElement[Name='Microsoft.SystemCenter.VirtualMachineManager.2007.SelfService']$")
With oVMMSelfServiceInst
.AddProperty "$MPElement[Name='System!System.Entity']/DisplayName$", hostComputer
.AddProperty "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", hostComputer
.AddProperty "$MPElement[Name='Virtualization!Microsoft.SystemCenter.VirtualMachineManager.SelfService']/Version$", "1.0"
If ReadRegistry(StrVMMSSsiteEngineMachineRegKey, vmmEngineComputer) Then
.AddProperty "$MPElement[Name='Virtualization!Microsoft.SystemCenter.VirtualMachineManager.SelfService']/VMMServer$", vmmEngineComputer
End If
End With
oDiscoveredData.AddInstance(oVMMSelfServiceInst)
End Sub </Script></Contents>
</File>
</Files>
</DataSource>
</MemberModules>
<Composition>
<Node ID="DS"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>