Buongiorno a tutti e benvenuti
ad un altro articolo del mio blog.
Oggi, riagganciandomi all’articolo precedente di Giugno, sul
metodo di esportare una cassetta postale dal server con new-mailboxexportrequest,
voglio fornirvi uno script bello e pronto per schedulare l’archiviazione del mese
precedente alla data di esecuzione.
Ovviamente, poi, potete modificarlo per ampliare o
restringere il periodo, accettare le date di inizio e di fine dai parametri…. …e
chi più ne ha, più ne metta.
Bando alle ciance, dunque: ecco lo script, prontissimo per
essere messo in un ps1 e lanciato a piacimento, serialmente...
Param(
[parameter(Mandatory=$true, HelpMessage="indirizzo principale della mailbox da archiviare")]
[string]$address,
[parameter(Mandatory=$true, HelpMessage="indica il percorso DI RETE dove salvare il PST (verrà appesa una
sottocartella con l'anno)")]
[string]$baseP
)
import-module activeDirectory
if ( (Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction SilentlyContinue) -eq $null ){
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
}
# check di esistenza mailbox
if (-not ($mb=Get-mailbox $address -ErrorAction silentlycontinue)) {
write-host "la casella
specificata non esiste"
exit
}
$a=get-date
# ottengo il primo giorno del mese precedente
$b=get-date(""+($a.AddMonths(-1)).Month+"/"+$a.Year)
$nomeMese=$b.Month | %{(Get-Culture).DateTimeFormat.GetMonthName($_)}
# ottengo il primo giorno del mese corrente
$c=get-date(""+$a.Month+"/"+$a.Year)
if (-not(test-path -PathType Container ($baseP+"\"+$b.Year))){
New-Item -ItemType Directory -Force -Path ($baseP+"\"+$b.Year)
}
$path = $baseP+"\"+$b.Year+"\"+($mb.Name+"_"+$nomeMese+"-"+$b.Year)+".pst"
new-mailboxExportRequest $mb -FilePath $path -ContentFilter {(received -gt $b) -and (received -lt $c)} -Name ($mb.Name+"--"+$nomeMese+$b.Year)