发现脚本不起作用

时间:2016-09-22 18:50:08

标签: powershell discovery scom

下面是我的脚本,标识符已清除。诊断的基类是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)
}

1 个答案:

答案 0 :(得分:0)

作为第一个最明显的原因,您不会将发现数据输出到输出流(StdOut)。只需在脚本末尾的新行添加$discoveryData即可。

此外,还需要有关您的类和MP体系结构的更多信息。我可能建议您使用Windows!Microsoft.Windows.ComputerRole作为基类并将其托管在目标计算机对象上。

此致 最大