_Custom MSA P2000 Discovery PSscript vDisk
Custom.MSA.P2000.DiscoveryPSscript.vDisk (Discovery)
Element properties:
Object Discovery Details:
Member Modules:
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>