我编写了一个Powershell脚本来删除/创建示例Biztalk应用程序。
每当我尝试创建应用程序时。 检查是否已存在使用以下条件的应用程序
[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")
$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$Catalog.ConnectionString = "SERVER=$SQLServerInstance;DATABASE=$SQLCatalog;Integrated Security=SSPI"
if($Catalog.Applications -contains $AppName)
{
write-eventlog -logname "$logname" -Source "$Source" -eventid "$eventidError" -message "$errormessage" -entrytype "Error" -Computername "$Server"
}
else
{
....
invoke-expression $Addapp
}
第一次创建应用程序。但是当我尝试第二次运行时(已经创建了应用程序)。它的stil执行真实案例。它没有执行else部分。
请咨询。是否有任何其他属性可以刷新以获取新添加的应用程序。
答案 0 :(得分:0)
根据documentation $Catalog.Applications
是Microsoft.BizTalk.ExplorerOM.Application
个对象的数组,而您需要一个具有这些对象的名称字符串的数组。尝试这样的事情:
if ( ($Catalog.Applications | select -Expand Name) -contains $AppName ) {
...
Write-EventLog ...
} else {
...
Invoke-Expression $Addapp
}