This rule is used to discover (create) instances of Veeam MP for VMware objects in Operations Manager.
These discovery rules will insert objects such as vSphere hosts, clusters, virtual machines, and also Veeam MP for VMware elements such as the Collector itself.
This discovery will create objects in Operations Manager which may be essential for Veeam MP for VMware functionality and should not be disabled or modified unless advised by Veeam support.
Refer to the Microsoft System Center Online Documentation for more information on Operations Manager features such as discoveries.
Refer to the Veeam MP for VMware Documentation (especially the Operations Guide) for more details on advanced MP functionality such as Proxy agent monitoring, 'cascaded' discoveries, group management etc.
Target | Microsoft.SystemCenter.ManagedComputer |
Enabled | True |
Frequency | 14400 |
Remotable | False |
Discovered Classes and their attribuets: |
---|
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Veeam.Virt.Extensions.ScriptDatasource.Discovery | Default |
<Discovery ID="Veeam.Virt.Extensions.VMware.VMwareVirtualMachine.EFI.Discovery" Enabled="true" Target="SC!Microsoft.SystemCenter.ManagedComputer" ConfirmDelivery="false" Remotable="false" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Veeam.Virt.Extensions.VMware.VMwareVirtualMachine">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="Veeam.Virt.Extensions.VMware.VMwareVirtualMachine" PropertyID="VMwareBIOSVersion"/>
<Property TypeID="Veeam.Virt.Extensions.VMware.VMwareVirtualMachine" PropertyID="GuestOSDNSName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Veeam.Virt.Extensions.ScriptDatasource.Discovery">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ScriptName>EFIVMDiscovery.js</ScriptName>
<Arguments>"$MPElement$" "$Target/Id$" "$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$" "$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/DNSName$" "$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$"</Arguments>
<ScriptBody> var SCRIPT_NAME = "EFIVMDiscovery.js";
var ARGUMENT_COUNT = 5;
var EVENT_ID = 3697;
var SEVERITY_ERROR = 2;
var momApi = new ActiveXObject("MOM.ScriptAPI");
var sourceId = null;
var managedEntityId = null;
var targetComputer = null;
var discoveryData = null;
var dnsName = null;
var netbiosName = null;
SetGlobalVarsFromArguments();
discoveryData = momApi.CreateDiscoveryData(0, sourceId, managedEntityId);
try {
var testRes = TestMultiSZValue();
if (testRes) {
var dBag = null;
dBag = discoveryData.CreateClassInstance("$MPElement[Name='Veeam.Virt.Extensions.VMware.VMwareVirtualMachine']$");
dBag.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", targetComputer);
dBag.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", targetComputer);
dBag.AddProperty("$MPElement[Name='Veeam.Virt.Extensions.VMware.VMwareVirtualMachine']/virtPlatform$", "VMware");
dBag.AddProperty("$MPElement[Name='Veeam.Virt.Extensions.VMware.VMwareVirtualMachine']/GuestOSDNSName$", dnsName);
dBag.AddProperty("$MPElement[Name='Veeam.Virt.Extensions.VMware.VMwareVirtualMachine']/GuestOSNetBIOSName$", netbiosName);
discoveryData.AddInstance(dBag);
} else {
discoveryData.isSnapshot = false;
momApi.Return(discoveryData);
WScript.Quit(0);
}
}
catch (e) {
discoveryData.isSnapshot = false;
momApi.LogScriptEvent(SCRIPT_NAME, EVENT_ID, SEVERITY_ERROR, e.message + "; Error number: " + e.number);
}
finally {
momApi.Return(discoveryData);
}
function SetGlobalVarsFromArguments() {
if (WScript.Arguments.length != ARGUMENT_COUNT) {
momApi.LogScriptEvent(SCRIPT_NAME, EVENT_ID, SEVERITY_ERROR, "Invalid argument count: expected " + ARGUMENT_COUNT + ", received " + WScript.Arguments.length);
WScript.Quit(0);
}
sourceId = WScript.Arguments(0);
managedEntityId = WScript.Arguments(1);
targetComputer = WScript.Arguments(2);
dnsName = WScript.Arguments(3);
netbiosName = WScript.Arguments(4);
}
function TestMultiSZValue() {
var HKLM = 0x80000002;
var sRegPath = "HARDWARE\\DESCRIPTION\\System";
var oLoc = new ActiveXObject("WbemScripting.SWbemLocator");
var oSvc = oLoc.ConnectServer(null, "root\\default");
var oReg = oSvc.Get("StdRegProv");
var oMethod = oReg.Methods_.Item("GetMultiStringValue");
var oInParam = oMethod.InParameters.SpawnInstance_();
oInParam.hDefKey = HKLM;
oInParam.sSubKeyName = sRegPath;
oInParam.sValueName = "SystemBiosVersion";
var oOutParam = oReg.ExecMethod_(oMethod.Name, oInParam);
if (oOutParam != null && oOutParam.sValue != null) {
var values = VBArray(oOutParam.sValue).toArray();
for (var i = 0; i < values.length; i++) {
if (values[i].toLowerCase().indexOf("vmware") > -1)
return true;
}
}
return false;
} </ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>