2016-09-22 13 views
0

以下は、識別子がスクラブされたスクリプトです。診断のための基本クラスはMyCompany.MyAppであり、その基本クラスはWindowsコンピュータです。ターゲットマシン上でこれをパラメータで直接実行すると、XMLが返されます。私のPCから走れば空です。それはローカルでは意味がありますが、あなたが標的としているマシン上でエージェントがそれを実行する発見を実行すると思ったのですか?これまでの私の他の発見はすべて登録されているので、私は何か完全に間違っている可能性があります。検出スクリプトが機能しない

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をベースクラスとして使用し、それをターゲットコンピュータオブジェクト上にホストすることをお勧めします。

よろしくお願いいたします。 最大

関連する問題