_Custom MSA P2000 Discovery PSscript Physical Disk

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

Element properties:

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

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

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

Source Code:

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

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


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


$ObjectXMLElements=$GetContXML.RESPONSE.OBJECT

foreach ($objElement in $ObjectXMLElements) {
$diskName=($objElement.property | ? {$_.name -eq 'durable-id'}).'#text'
if ($diskName -ne $null) {

$instance = $DiscoveryData.CreateClassInstance("$MPElement[Name='Custom.MSA.P2000.ClassCustom.PhysicalDisk']$")

$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.PhysicalDisk']/phyDiskName$", $diskName)

$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>180</TimeoutSeconds>
</DataSource>
</Discovery>