2017-08-16 4 views
0

je le dessous de script PowerShell pour trouver tous les différents états de BizTalk:Trouvez en cours d'exécution des instances de service pour les applications BizTalk pour état différent

  • Instances prêt à fonctionner
  • instances actives
  • instances Déshydratés
  • Instances dans Breakpoint
  • Suspended Orchestrations
  • Messages suspendus
  • échecs de routage
  • des échecs d'adaptation isolés

PowerShell Script

# SQL Settings 

$BTSSQLInstance = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbServerName 
$BizTalkManagementDb = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbName 

# Connect the BizTalk Management database 

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM") 
$BTSCatalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer 
$BTSCatalog.ConnectionString = "SERVER=$BTSSQLInstance;DATABASE=$BizTalkManagementDb;Integrated Security=SSPI" 

# Get BizTalk Service Instance Information 
[ARRAY]$readyToRun = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 1)' -ErrorAction SilentlyContinue 
[ARRAY]$active = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 2) and not(ServiceClass = 16)' -ErrorAction SilentlyContinue 
[ARRAY]$dehydrated = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 8)' -ErrorAction SilentlyContinue 
[ARRAY]$breakpoint = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 64)' -ErrorAction SilentlyContinue 
[ARRAY]$suspendedOrchs = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 1) and (ServiceStatus = 4 or ServiceStatus = 32)' -ErrorAction SilentlyContinue 
[ARRAY]$suspendedMessages = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 4) and (ServiceStatus = 4 or ServiceStatus = 32)' -ErrorAction SilentlyContinue 
[ARRAY]$suspendedRouting = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 64)' -ErrorAction SilentlyContinue 
[ARRAY]$suspendedIsolated = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 32) and (ServiceStatus = 4 or ServiceStatus = 32)' -ErrorAction SilentlyContinue 

# Display BizTalk Service Instance Information 

Write-Host "`nService Instance Information" -fore DarkGray 
Write-Host "Instances Ready to Run:" $readyToRun.Count 
Write-Host "Active Instances:" $active.Count 
Write-Host "Dehydrated Instances:" $dehydrated.Count 
Write-Host "Instances in Breakpoint:" $breakpoint.Count 
Write-Host "Suspended Orchestrations:" $suspendedOrchs.count 
Write-Host "Suspended Messages:" $suspendedMessages.count 
Write-Host "Routing Failures:" $suspendedRouting.count 
Write-Host "Isolated Adapter Failures:" $suspendedIsolated.count 

est-il un objet WMI pour concaténer activités en cours d'exécution pour les instances d'application BizTalk?

Comme Application name = Microsoft.Practices.ESB et combien y a-t-il d'instances en cours d'exécution? Si c'est plus que 20 m'envoyer une notification par email.

S'il vous plaît me conseiller comment nous pouvons réaliser cela fonctionnellement en utilisant powershell aussi j'ai vu MSBTS_ServiceInstance wmiobject ne fournissant pas la propriété BizTalk Application.

Référence - BizTalk Server Health Check PowerShell Script

Répondre

-1

Ce script vous donnera des résultats pour tous Votre statut d'instance de service Active, ReadytoRun et déshydraté Statut:

# SQL Settings  

$BTSSQLInstance = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbServerName 
$BizTalkManagementDb = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbName 

# Connect the BizTalk Management database 

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM") 
$BTSCatalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer 
$BTSCatalog.ConnectionString = "SERVER=$BTSSQLInstance;DATABASE=$BizTalkManagementDb;Integrated Security=SSPI" 

# Get BizTalk Application Information 

$applications = $BTSCatalog.Applications 

# Display BizTalk Application Information 

Write-Host "`nBizTalk Applications ("$applications.Count")" -fore DarkGray 

Foreach ($application in $applications) { 

if ($application.Status -eq "Started") { 


[ARRAY]$readyToRun = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 1)' -ErrorAction SilentlyContinue | Where-Object { $_.AssemblyName -like $application.Name } 
[ARRAY]$active = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 2) and not(ServiceClass = 16)' -ErrorAction SilentlyContinue | Where-Object { $_.AssemblyName -like $application.Name } 
[ARRAY]$dehydrated = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 8)' -ErrorAction SilentlyContinue | Where-Object { $_.AssemblyName -like $application.Name } 

Write-Host "`nService Instance Information for" $application.Name -fore DarkGray 
Write-Host "Instances Ready to Run:" $readyToRun.Count 
Write-Host "Active Instances:" $active.Count 
Write-Host "Dehydrated Instances:" $dehydrated.Count 

} 

} 
+0

Vous avez posé une question puis quelqu'un vous a indiqué la bonne direction. Au lieu d'accepter sa réponse, vous avez créé votre propre réponse, puis l'avez acceptée. Désolé mais je ferai ce que je peux faire: voter pour votre réponse et voter pour la bonne. – Zee

+0

Yo !!! D'abord je marque sa réponse avant de placer mon script. plus tard, lui ou quelqu'un a enlevé cela comme une réponse, donc je marque ma propre réponse pour signaler que d'autres questions ont été résolues. Quoi qu'il en soit, je ne me bats rien pour les points ou n'importe quel statut ... Bonne chance à votre décision .. Merci –

+0

@Zee aussi prendre en considération ce qui est différent entre les deux scripts et se sentir différent. –

2

Je pense que c'est ce que vous devez Get Biztalk serviceInstance details with Powershell

L'astuce est filtrer par nom de l'Assemblée avec des caractères génériques comme:

Get-WmiObject -Class "MSBTS_ServiceInstance" -Namespace 'root\MicrosoftBizTalkServer' | Where-Object { $_.ServiceClass -eq "1" -and ($_.ServiceStatus -eq "4" -or $_.ServiceStatus -eq "32") -and $_.AssemblyName -like "*BizTalkMassCopy*" } | measure 
+0

Merci beaucoup et aussi je mettrai à jour le dernier script pour toute la boucle d'application BizTalk à travers chaque instance de service @felixmondelo !! –