2016-09-22 265 views
0

下面是我的標識符已被擦除的腳本。診斷的基類是MyCompany.MyApp,基類是Windows計算機。如果我直接用參數在目標機器上運行這個參數,我將返回XML。如果我從我的電腦上運行它是空白的。這在本地是有意義的,但是我認爲當你運行發現代理在你所瞄準的機器上運行它的發現時?到目前爲止,我所有的其他發現都是註冊表,所以我可能會做一些完全錯誤的事情。發現腳本不能正常工作

Param($sourceId, $managedEntityId, $ComputerName) 

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

$Diagnostics = Invoke-Command -ComputerName $ComputerName { 
    Get-WebApplication -Name "diagnostics" 
} 

foreach ($x in $Diagnostics) 
{ 
    $instance = $discoveryData.CreateClassInstance("$MPElement[Name='MyCompany.MyApp.Diagnostics']$") 
    $instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName) 
    $discoveryData.AddInstance($instance) 
} 

回答

0

作爲第一個最明顯的原因,您不會將發現數據輸出到輸出流(StdOut)。只需簡單地在腳本結尾添加$discoveryData即可。

此外,您需要有關您的班級和MP架構的更多信息。我可能會建議您使用Windows!Microsoft.Windows.ComputerRole作爲基類,並將其託管在目標計算機對象上。

Regards Max