Aggiungere un dominio SMTP Authoritative in Exchange Server 2007
Recentemente ho scritto per un cliente una script in PowerShell / EMS, per aggiungere un dominio di posta Autoritative ad una organizzazione Exchange Server 2007.
Di per sè saremmo in presenza di una sola CmdLet, ma se vogliamo fare le cose un pò meglio (migliorare si può e si deve ... sempre !) dobbiamo anche rispettare gli standard e la netiquette.
Un dominio SMTP gestito correttamente, deve infatti avere sempre un account Postmaster@... ed Abuse@..., pena l'inclusione in Black/Gray lists. E' questa un'area poco gestita da parte delle aziende ed purtroppo anche dagli ISP, ma credo che saremo costretti tutti a usare gli standard RFC meglio, per ridurre il disordine-mondiale che governa ormai l'email.
Il codice commentato è quì sotto, ma è disponibile anche il download di Add-ManagedDomain.ps1
param(
[string] $Dom=$(Throw "Please specify a domain name. (E.g. 'test.local')")
)
Il file di script, ha bisogno obbligatoriamente di un parametro, di tipo String, che se mancante genera una eccezione (Throw).
# Defines constant
set-variable mbx 'Res-Postmaster' -option constant
# Gets the Postmaster/Abuse associated Mailbox
$local:oMbx = get-Mailbox $mbx -ea SilentlyContinue
Le righe soprastanti servono a dimostrare l'uso di una Costante in WPS e a recuperare la Mailbox che avrà associati gli alias Postmaster/Abuse, senza curarsi di eventuali errori, che verranno nascosti. La verifica dell'effettiva esistenza della Mailbox è controllata da
if ($oMbx -eq $Null) {
write-warning "`n$mbx: mailbox not found. Cannot continue!"
}
Bene, abbiamo tutto, quindi possiamo procedere a creare il Domain e gli Alias!
Da notare come l'aggiunta di EmailAddresses venga fatta con l'operatore '+=' senza necessità di conversioni di tipo espilcite, gestite internamente da ETS di PowerShell e come sia necessario salvare le modifice in AD con la CmdLet Set-Mailbox.
else {
# Adds the domain
write-host 'Adding authoritative domain ', $Dom
New-AcceptedDomain -Name $Dom -DomainName $Dom -domaintype Authoritative
# Adds Abuse/Postmaster aliases to predefined mbx
write-host "`nSetting $mbx mailbox aliases for $Dom"
$oMbx.EmailAddresses += 'Abuse@' + $Dom;
$oMbx.EmailAddresses += 'Postmaster@' + $Dom;
$oMbx | set-Mailbox
"`nDone !"
}
That's all folks!
Ciao,
Claudio
MCSA, MCSE, MCT su NT/2000/2003
MCTS: Windows Server 2008 Active Directory/Application Platform/Network Infrastructure