|
#Update Premium Members Rule |
|
#test exchange connectivity and connect to EMS |
|
if((get-command -listimported).Name -notcontains "Get-Mailbox") |
|
{ |
|
. ($env:exchangeinstallpath + 'bin\RemoteExchange.ps1') |
|
Connect-ExchangeServer -auto -ClientApplication:ManagementShell |
|
} |
|
|
|
function Invoke-SQL { |
|
param( |
|
[string] $dataSource = ".\SQLEXPRESS", |
|
[string] $database = "MasterData", |
|
[string] $sqlCommand = $(throw "Please specify a query.") |
|
) |
|
|
|
$connectionString = "Data Source=$dataSource; " + |
|
"Integrated Security=SSPI; " + |
|
"Initial Catalog=$database" |
|
|
|
$connection = new-object system.data.SqlClient.SQLConnection($connectionString) |
|
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection) |
|
$connection.Open() |
|
|
|
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command |
|
$dataset = New-Object System.Data.DataSet |
|
$adapter.Fill($dataSet) | Out-Null |
|
|
|
$connection.Close() |
|
$dataSet.Tables |
|
|
|
} |
|
$SQLQuery = @" |
|
SELECT DISTINCT * FROM |
|
( |
|
SELECT DISTINCT Substring(Contact_Communication_Type.Description,CharIndex('@',Contact_Communication_Type.Description)+1 ,LEN(Contact_Communication_Type.Description)) as Premium_Domains, Company.Company_ID |
|
FROM Contact_Communication_Type |
|
JOIN Contact on contact.Contact_RecID = Contact_Communication_Type.Contact_RecID |
|
JOIN Company on company.Company_RecID = Contact.Company_RecID |
|
JOIN Company_Status on Company_Status.Company_Status_RecID = company.Company_Status_RecID |
|
WHERE Communication_Type_RecID = '1' |
|
AND Company_Status.Description like '%prem%' |
|
AND LEN(Contact_Communication_Type.Description)>1 |
|
AND Company.Company_ID not in ('arrc','connectwise') |
|
|
|
UNION ALL |
|
|
|
SELECT DISTINCT replace(replace(replace(Website_URL,'www.',''),'http://',''),'/','') AS Premium_Domains, Company.Company_ID |
|
FROM Company |
|
JOIN Company_Status ON Company_Status.Company_Status_RecID = company.Company_Status_RecID |
|
WHERE Company_Status.Description like '%prem%' |
|
AND Website_URL != '' |
|
AND Company.Company_ID not in ('arrc','connectwise') |
|
) |
|
AS Premium_Domains |
|
WHERE Premium_Domains NOT IN ('gmail.com','yahoo.com','msn.com','me.com') |
|
ORDER BY Premium_Domains ASC |
|
"@ |
|
|
|
$SQLResult = Invoke-SQL -dataSource "ct-sql1" -database "cwwebapp_chartec" -sqlCommand $SQLQuery |
|
$Premium_Domains = $SQLResult.Premium_Domains |
|
#echo $Premium_Domains |
|
Set-TransportRule -Identity 'Premium Partners Rule' -Name 'Premium Partners Rule' -Comments 'Flag Messages where FROM address contains premium member domain' -FromAddressContainsWords $Premium_Domains |