4

BizTalk Server 管理コンソールでは、中断されたサービス インスタンスをクエリし、アプリケーション名でフィルター処理できます。BTS 管理コンソールなしでそのような機能が必要です。

これまでのところ、中断されたインスタンスを取得する Powershell スクリプトを作成しました。

$array = Get-WmiObject MSBTS_ServiceInstance `
           -Namespace 'root\MicrosoftBizTalkServer' `
           -Filter '(ServiceClass = 4 or ServiceClass = 1) `
                 and (ServiceStatus = 4 or ServiceStatus = 16)' 
foreach ($element in $array)
{
    Write-Host $element.InstanceID "-" $element.HostName "-" `
                 $element.ServiceStatus "-" $element.ServiceClass
}

このスクリプトを実行すると、中断されたすべてのインスタンスが取得されますが、それらがどのアプリケーションに属しているかを調べるにはどうすればよいでしょうか?

PowerShell、WMI、または C# を使用するソリューションはどれも私にとって良いものです。

4

3 に答える 3

1

アプリケーション名のプロパティは、MSBTS_ServiceInstance クラスを介して公開されません。その理由は、アプリケーションの概念が BizTalk 2006 で導入されただけで、WMI API が 2004 年から存在していたためだと思います。

残念ながら、唯一の選択肢はデータベースに直接アクセスすることです。

于 2012-08-26T15:25:14.640 に答える
1

BizTalk のバージョンは?

これは BizTalk 2010 で機能します。

$array = Get-WmiObject MSBTS_ServiceInstance `
           -Namespace 'root\MicrosoftBizTalkServer' `
           -Filter '(ServiceClass = 4 or ServiceClass = 1) ` 
                 and (ServiceStatus = 4 or ServiceStatus = 16)' 
foreach ($element in $array)
{
    Write-Host $element.ServiceName
}
于 2012-08-16T19:45:58.323 に答える