_Custom MSA P2000 Discovery PSscript vDisk

Custom.MSA.P2000.DiscoveryPSscript.vDisk (Discovery)

Element properties:

TargetCustom.MSA.P2000.ClassCustom.MSA.Instance
EnabledTrue
Frequency86400
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
PSscript2 DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider Default

Source Code:

<Discovery ID="Custom.MSA.P2000.DiscoveryPSscript.vDisk" Enabled="true" Target="Custom.MSA.P2000.ClassCustom.MSA.Instance" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Custom.MSA.P2000.ClassCustom.vDisk">
<Property TypeID="Custom.MSA.P2000.ClassCustom.vDisk" PropertyID="vDiskName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="PSscript2" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoveryPSscriptVdisk.ps1</ScriptName>
<ScriptBody><Script>
param($sourceId,$managedEntityId,$computerName,$msaName,$folderPath)

$api = New-Object -ComObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $sourceId, $ManagedEntityId)

[xml]$GetContXMLvDiskInfo = Get-Content "$folderPath\show__vdisk_statistics.xml"
while (($i -lt 2) -and ($GetContXMLvDiskInfo -eq $null)){
$i++
Start-Sleep -Seconds 5
[xml]$GetContXMLvDiskInfo = Get-Content "$folderPath\show__vdisk_statistics.xml"
}

$ObjectXMLElements=$GetContXMLvDiskInfo.RESPONSE.OBJECT

foreach ($objElement in $ObjectXMLElements) {
$vDiskName=($objElement.property | ? {$_.name -eq 'name'}).'#text'

if ($vDiskName -ne $null) {

$instance = $DiscoveryData.CreateClassInstance("$MPElement[Name='Custom.MSA.P2000.ClassCustom.vDisk']$")
$instance.AddProperty("$MPElement[Name='Custom.MSA.P2000.ClassCustom.MSA.Instance']/msaName$", $msaName)
$instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $computerName)

$Instance.AddProperty("$MPElement[Name='Custom.MSA.P2000.ClassCustom.vDisk']/vDiskName$", $vDiskName)

$discoveryData.AddInstance($instance)
}
}
$discoveryData
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>sourceId</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>managedEntityId</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>computerName</Name>
<Value>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Parameter>
<Parameter>
<Name>folderPath</Name>
<Value>$Target/Property[Type="Custom.MSA.P2000.ClassCustom.MSA.Instance"]/folderPath$</Value>
</Parameter>
<Parameter>
<Name>msaName</Name>
<Value>$Target/Property[Type="Custom.MSA.P2000.ClassCustom.MSA.Instance"]/msaName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>