2016-09-22 8 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을 기본 클래스로 사용하여 대상 컴퓨터 객체에 호스트하는 것이 좋습니다.

감사합니다. 최대