lunedì 9 maggio 2011

Exchange 2007: come usare la whitelist per nomi di dominio. - Lo Scriptomane - livello MEDIO

Non troppo recentemente ho sviluppato uno script per gestire le whitelist entries del Filtro Contenuti di Microsoft Exchange 2007, con la powershell di Exchange (Exchange Management Shell).


  -  per chi non sapesse di che cosa diamine parlo : http://technet.microsoft.com/en-us/library/bb124739%28EXCHG.80%29.aspx   -


In questa versione del famoso server di posta MS, questo è l'UNICO modo di farlo e, tra le altre cose, non si può che fare con uno script, se si vuole mantenere le entry precedenti. Questo perchè non esiste alcuna funzione "Add" per la proprietà "BypassedSenderDomains" dell'oggetto "contentFilterConfig".

Vorrei dare il mio contributo a rendere più facili le simpatiche pratiche di gestione per quei sistemisti che non sono scriptomani come me, ma si trovano a dover fronteggiare sempre di più la tendenza (che peraltro condivido pienamente) di Microsoft a fornire sempre più possibilità solamente da riga di comando/script, con quel fantastico strumento che è PowerShell.

Usando lo script (che trovate in calce nella sua versione completa), vi viene semplicemente richiesto il nome di un dominio da white-listare e questo viene fatto. Immediatamente.


Ma procediamo al commento delle singole righe dello script:




 [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')

Questa riga richiama la gestibilità degli oggetti VisualBasic nella Powershell.

$a = [Microsoft.VisualBasic.Interaction]::InputBox("inserire il dominio da mettere in white-list", "Whitelist Dominio", "")

Creiamo una istanza  della InputBox (la finestrella che ci chiederà il nome del dominio da mettere in white-list) e valorizziamo la variabile $a con quanto immesso dall'utente.
 
$cf = get-contentFilterConfig

Creiamo una istanza dell'oggetto contentFilterConfig


$cf.BypassedSenderDomains += $a
impostiamo la sua proprietà che ci interessa (BypassedSenderDomains) AGGIUNGENDO (+=) il dominio appena immesso.ATTENZIONE: stiamo modificando una istanza dell'oggetto e non applicando la configurazione direttamente.

$cf | set-ContentFilterConfig

Qui facciamo in modo che le modifiche all'istanza vengano applicate alla configurazione in essere di Exchange 2007, usando il comando set-ContentFilterConfig e passandogli l'oggetto $cf nella PIPE .

echo $cf.BypassedSenderDomains

Mostriamo l'elenco aggiornato dei domini in white-list.








############### Script completo ###############################
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') 
 
$a = [Microsoft.VisualBasic.Interaction]::InputBox("inserire il dominio da mettere in white-list", "Whitelist Dominio", "") 
 
#$a=read-host "inserire il dominio da mettere in white-list"

$cf = get-contentFilterConfig
$cf.BypassedSenderDomains += $a
$cf | set-ContentFilterConfig
echo $cf.BypassedSenderDomains


Nessun commento:

Posta un commento

I commenti sono soggetti a moderazione, prima di essere pubblicati.

Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.