07 October 2013

Adding multiple Remote IP Addresses to existing Receive Connectors

I had to add a lot of ip addresses to our receive connector, but not overwrite the existing ip addresses in the receive connector.
For that I came across this excellent Powershell script that does just that:
<#
.DESCRIPTION
   Simple Powershell script that can bulk import remote IP ranges from a text file in a determined Exchange Receive Connector.
   The Import of the Remote IP ranges maintains the original values which are already present on the Selected Connector.
.PARAMETERS
   None - execute directly from the Exchange Management Shell
.Version
 0.1
.Author
 Andy Grogan
 http://www.telnetport25.com
.Compatibility
   Exchange 2007
   Exchange 2010
   Exchange 2013
.Release Date
 Jan 2013
#>

function Select-FileDialog 
{
      param([string]$Title,[string]$Directory,[string]$Filter="Text Files (*.txt)|*.txt")
      [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
      $objForm = New-Object System.Windows.Forms.OpenFileDialog
      $objForm.InitialDirectory = $Directory
      $objForm.Filter = $Filter
      $objForm.Title = $Title
      $objForm.ShowHelp = $true
      
      $Show = $objForm.ShowDialog()
      
      if ($Show -eq "OK")
      {
            return $objForm.FileName
      }
      else
      {
            exit
      }
}

function get_RecConnector{

 $RecConns = Get-ReceiveConnector | Select -ExpandProperty Identity
 $Count = 0;
 Write-Host "Bulk Import of Remote IP Addresses for Exchange Receive Connectors" -ForegroundColor Green
 Write-Host "Version 0.1" -ForegroundColor Green
 Write-Host "www.telnetport25.com" -ForegroundColor Green
 Write-Host ""
 Write-Host "Detected Receive Connectors: " -ForegroundColor Cyan
 Write-Host ""
 foreach($Connector in $RecConns){
  Write-Host $Count "." $Connector -ForegroundColor White
  $Count ++
 }
 Write-Host ""
 $Choice = Read-Host "Please select the Receive Connector that you wish to work with."
 Write-Host ""
 import_RemoteIPRanges $RecConns[$Choice]
}

function import_RemoteIPRanges{

 param($ConnectorID)
 
 $FileName = Select-FileDialog "Open IP Range Text File..."
 $IPs = Get-Content $FileName
 
  foreach($IP in $IPs){
   Write-Host "Adding IP Address :" $IP " to "$ConnectorID -ForegroundColor Cyan
        $Rcnn = Get-ReceiveConnector "$ConnectorID"
        $Rcnn.RemoteIPRanges += $IP
        Set-ReceiveConnector "$ConnectorID" -RemoteIPRanges $Rcnn.RemoteIPRanges

  }
}

get_RecConnector
Write-Host ""
Write-Host "Script Completed." -ForegroundColor Yellow

Source

No comments:

Post a Comment