PowerShell script to enable all BizTalk Receive Location except filter condition i.e. start receive location name with "DoNotEnable" Skip to main content

PowerShell script to enable all BizTalk Receive Location except filter condition i.e. start receive location name with "DoNotEnable"

Hello everyone today I am going to share a PowerShell script that enable all receive(check receive location status before enable it) but most important that I do not enable few receive location so I rename it with starting word as "DoNotEnable". You can rename in your choice but keep simple for better standing.

Before execute following script Please do following task-
a. Set Server name in ConnectionString
b. Set ($FilterCondition) in my case it "DoNotEnable"
c. Set path value of $OutResultLog for log text file


# Import external assembly and create a new object
[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")
$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer

 #BizTalk Config
$Catalog.ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"  #connectionstring for the BizTalkMgmtDb
$rcvLocation = "" # Define variable for receive location
$BizAppName =""
$FilterCondition="DoNotEnable*";
$resultToWrite =""
$OutResultLog = 'D:\ BizTalkPowerShellService\EnableReceiveLocation\logEnableReceiveLocation.txt'

#Function to retrieve the status of the specify receive location
function CheckReceiveLocatonStatusThenEnable(){
$resultToWrite='Process has started to enable receive location on date : '+(Get-Date).ToString()
Add-Content $OutResultLog $resultToWrite
$resultToWrite=""
   foreach ($receivePort in $catalog.ReceivePorts)
   {
   try
    {
       foreach($receiveLoc in $receivePort.ReceiveLocations  | Where {($_.Enable -eq $false)-and ($_.Name -notlike $FilterCondition)})
       {
          try
          {
            $rcvLocation = $receiveLoc.Name
            $BizAppName = $receivePort.Application.Name
            if($receiveLoc.Enable -eq $false)
              {
                #Enable receive location
                enableReceiveLocation

                #Wait for few seconds
                Start-Sleep -s 5
              }
          }
          catch [Exception]
          {
          $resultToWrite=$resultToWrite+ 'Getting Exception: '+ $_.Exception.Message +' to enable receive location: '+$rcvLocation+ ' in BizTalk Application: '+$BizAppName+' at datetime: '+(Get-Date).ToString()+"`r`n"
          Add-Content $OutResultLog $resultToWrite
          $resultToWrite=""
          }
      }
    }
   catch [Exception]
    {
    $resultToWrite=$resultToWrite+ 'Getting Exception : ' +$_.Exception.Message +' on receive port loop at datetime: '+(Get-Date).ToString()+"`r`n"
    Add-Content $OutResultLog $resultToWrite
    $resultToWrite=""
    }
}
$resultToWrite=$resultToWrite+ 'Process end to enabled receive location on datetime: '+(Get-Date).ToString() +"`r`n"
Add-Content $OutResultLog $resultToWrite #logged all details in log file
[void]$Catalog.Refresh() # refresh biztalk console
}

#Function to enable the receive location
function enableReceiveLocation(){
   $location = get-wmiobject MSBTS_ReceiveLocation -Namespace 'root\MicrosoftBizTalkServer' -Filter "name='${rcvLocation}'"
   [void]$location.Enable()
   $resultToWrite=$resultToWrite+ 'Receive location: '+$rcvLocation+ ' has enabled in BizTalk Application: '+$BizAppName+' at datetime :'+(Get-Date).ToString()
   Add-Content $OutResultLog $resultToWrite
   $resultToWrite=""
   }

 #check status of Receive Location
   CheckReceiveLocatonStatusThenEnable

Note: Use BizTalk Admin Group user to create Window Task Scheduler and If BizTalkMgmtDb database run under different user then please define Username and possword it in ConnectionString.

You can also see another PS Script to enable only one receive location :PowerShell Script to Enable a ReceiveLocation

!! Keep Visiting BizTalkLive !!

Comments

  1. Nice blog .Very useful for beginners .Keep updating Biztalk online training Bangalore

    ReplyDelete
  2. Hi this is a great initiative. Thanks for the good work. Is it possible to get the receive location status using a powershell script?

    ReplyDelete
    Replies
    1. Yes, I have already used in my above post. see at this line- if($receiveLoc.Enable -eq $false)

      Delete
  3. what should the $rcvLocation = "" # Define variable for receive location, be ?
    if this enables all then you shouldnt need to set a specific receivelocation ?

    Regards

    ReplyDelete
    Replies
    1. No It is not possible to enable all receive location in one go, The process start by one by one to enable receive location and $rcvLocation (Variable) I get disable receive location that we ready to enable i.e. in loop.

      Delete
  4. Hello Sir, is it possible to wright a power shell script were the Receive Location that are disabled more than an hour from current time and without description ?

    ReplyDelete

Post a Comment

Please write comment only that belongs to this blog

Popular posts from this blog

BizTalk Interview Question and Answer

1. What is BizTalk? BizTalk is a middleware that sits in the middle of any two software who wish to communicate with each other and agree on some specified communication pattern. It uses SQL Server as back end database. “Microsoft BizTalk Server is an Inter-Organizational Middleware System (IOMS) that enables companies to automate business processes, through the use of adapters which are tailored to communicate with different software systems used in an enterprise. Created by Microsoft, it provides enterprise application integration, business process automation, business-to-business communication, message broker and business activity monitoring.”                 2. What is BizTalk Server Architecture and Life Cycle of Message? BizTalk Server Architecture: Life Cycle of Message: In this simplified view, a message is received through a receive location defined in a given receive port. This message is processed by the receive locatio

Configuring BizTalk WCF Timeout Values on a Binding

There are a number of timeout settings available in WCF bindings. Setting these timeout settings correctly can improve not only your service’s performance but also play a role in the usability and security of your service. The following timeouts are available on WCF bindings: OpenTimeout CloseTimeout SendTimeout ReceiveTimeout Open Timeout :  This property represents the amount of time a channel open operation has to complete. Send Timeout :  Use this property to set the amount of time that a send operation has to complete. When used as part of a solicit-response scenario, this value encompasses the total amount of time for the interaction to complete. If we are sending a large message, we may need to increase this timeout to allow for the request and response messages to be processed within this window. Close Timeout :  A time-stamp that is used to indicate the amount Receive Timeout :  Used by the Service Framework Layer to initialize the session-idle timeo

PowerShell Script to enable BizTalk Receive Location

We are facing problem in BizTalk server 2016 that few of running SFTP Receive location would be stopped after some time due to sftp connectivity issue of their threshold so I am going to share PowerShell script to enable receive location by window task scheduler. Before execute following script Please do following task a. Set Server name in ConnectionString b. Set ( $hostname) host name value that is using in SFTP Receive location c. Set ( $rcvLocation) Receive location name # Import external assembly and create a new object [ void ] [ System.reflection.Assembly ]:: LoadWithPartialName( "Microsoft.BizTalk.ExplorerOM" ) $Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer   #BizTalk Config $Catalog . ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"   #connectionstring for the BizTalkMgmtDb $hostname = "BizTalkServerApplication" #hostname $rcvLocation = "RL_GetAccReq_SQL

Step by step solution of BizTalk Two-Way WCF-SQL XmlPolling in Send Port

I am going to share most awaited Two way WCF_SQL Two Way XmlPolling so that you can easily enhance your old SQL procedure and BizTalk Map without any big change. I know there is no content available in any website to how work with XmlPolling in WCF-SQL two-way adapter. In the last of this post you can download complete source code with an example. Please follow carefully all steps – 1. Open Microsoft Visual Studio as Administrator user and Click File>New>Project… In Installed Templates click BizTalk Projects then Empty BizTalk Server Project and Name as “BizTalkLive-WCF-SQL” and click OK. 2. Now see the below picture and create all respective folders separately for Schema, Map, Orchestration, Pipeline, Binding- 3. Create Schemas in Schema folder as shown below picture to get Account request using One Way WCF-SQL XmlPolling a) Create Envelope Schema first with Target NameSpace - http://BizTalkLive_WCF_SQL.AccountRequest b) Create Second Sch

Publish a web service in biztalk using BizTalk WCF Service Publishing Wizard

Welcome you again in my Blog and let us do another mind blowing achievement that how to publish a WCF web service in BizTalk and as in previous post to Complete BizTalk project to host Schema as Web Service  so If you want to expose/publish a web service, you should run through the BizTalk WCF Service Publishing Wizard. This wizard guides you through choosing what you want to expose as a web service. This section walks you through the wizard step by step to publish WCF Web Service using  WCF-WSHttp- Step-1:  To start the wizard, go to Start, All Programs, Microsoft BizTalk Server 2016(version), BizTalk WCF Service Publishing Wizard. This fires up a welcoming screen, on which you just click Next. Consider disabling the welcoming screen for the future by checking the check box at the bottom. You will now see the screen shown in above figure. Step-2: Choose the Service Endpoint option, and choose which adapter to use. Check Enable Metadata Endpoint if you want to expose t