Per me quella che tanti hanno definito “comodità” non lo è mai realmente stata. I “Messaggi secondari” di Outlook li ho disattivati fin da subito e tanti mi hanno seguito a ruota fuori e dentro l’azienda. A distanza di poco tempo da quel 2015 che ha dato i natali alla novità in casa Microsoft (Office 365: Messaggi Secondari (Exchange Online Clutter)) ne è stato annunciato il prevedibile declino già nel 2017, salvo poi prendersi molto tempo prima di accompagnare i vari tenant Office 365 verso la dismissione della funzionalità che lo scorso 31/12/19 è davvero partita con il conto alla rovescia programmato per il poco distante 31/1/20, cosa che nell’effettivo però non ha dato il colpo di grazia ai Messaggi secondari (riferimento: techcommunity.microsoft.com/t5/outlook-blog/update-on-focused-inbox-and-our-plans-for-clutter/ba-p/136448).
Qualche giorno fa ho scoperto – grazie al dubbio di un collega – che qualcosa dei Messaggi secondari si muove ancora, giusto per quei (pochi) utenti che ne hanno fatto uso in passato. Senza attendere che Microsoft dismetta autonomamente anche loro ho deciso di cercarli e procedere direttamente con la disattivazione da PowerShell, questo perché – aggiungo – per l’utente è nel frattempo diventato impossibile disattivare autonomamente la funzionalità a causa dell’ultimo restyling grafico di Outlook Web Access (OWA) che non riporta più l’interruttore in grado di attivare o disattivare Messaggi secondari.
Cerca e disattiva
O se preferisci “individua e distruggi“, fai un po’ come ti pare, la sostanza non cambia, lo scopo del gioco è togliere di mezzo definitivamente questa funzione facendo leva sul fatto che ormai la stessa Microsoft la disconosce e che se proprio non puoi fare a meno di qualche sorta di automatismo che si sente in dovere di importi quali email considerare e quali no, allora dovrai passare alla Focus Inbox (Messaggi in evidenza per chi possiede Outlook installato in italiano).
Per cercare tutte le utenze che hanno ancora l’impostazione Messaggi secondari attiva ti basterà aprire PowerShell, connetterti al tuo tenant e poi eseguire questo comando:
Get-MailBox -ResultSize unlimited | Where-Object {(Get-Clutter -Identity $_.UserPrincipalName).IsEnabled -eq $True} | select PrimarySmtpAddress | export-csv C:\temp\ClutterDetails.csv -NoTypeInformation
Il processo potrebbe impiegare davvero molto tempo, tutto dipende dalla quantità di caselle di posta che occorrerà analizzare. In alternativa puoi farti dire a che punto dell’analisi ti trovi facendo stampare a video ogni utente analizzato (il che ti permette di capire che tutto sta procedendo per il verso giusto), cambiando un po’ il codice (tratto dall’ottimo lavoro di Alan Byrne):
$OutputFile = "C:\temp\ClutterDetails.csv" #The CSV Output file that is created, change for your purposes Out-File -FilePath $OutputFile -InputObject "UserPrincipalName,SamAccountName,ClutterEnabled" -Encoding UTF8 #Get all users #No input file found, gather all mailboxes from Office 365 write-host "Retrieving Users" $objUsers = get-mailbox -ResultSize Unlimited | select UserPrincipalName, SamAccountName #Iterate through all users Foreach ($objUser in $objUsers) { #Prepare UserPrincipalName variable $strUserPrincipalName = $objUser.UserPrincipalName $strSamAccountName = $objUser.SamAccountName write-host "Processing $strUserPrincipalName" #Get Clutter info to the users mailbox $strClutterInfo = $(get-clutter -Identity $($objUser.UserPrincipalName)).isenabled #Prepare the user details in CSV format for writing to file $strUserDetails = "$strUserPrincipalName,$strSamAccountName,$strClutterInfo" #Append the data to file Out-File -FilePath $OutputFile -InputObject $strUserDetails -Encoding UTF8 -append } write-host "Completed - data saved to $OutputFile"
Al termine (vale per entrambi i codici) otterrai un comodo file CSV ClutterDetails.csv
in C:\Temp
tramite il quale potrai capire quanti e quali utenti hanno ancora la funzionalità attiva, ragionare se sia il caso di spingere sull’acceleratore e proseguire nella disattivazione o prenderti del tempo per anticipare loro la modifica. Se sei deciso a continuare nel tuo percorso sappi che ti basterà importare quel CSV e chiedere a PowerShell (quindi a Exchange) di disattivare la funzionalità Clutter su quelle specifiche caselle di posta (anche questo codice si basa tutto sommato su una rivisitazione di quello di Alan Byrne):
Import-Csv C:\temp\DisableClutter.csv | foreach { $objUser = get-mailbox $_.UserPrincipalName | select UserPrincipalName $strUserPrincipalName = $objUser.UserPrincipalName write-host "Processing $strUserPrincipalName" Set-Clutter -Identity $strUserPrincipalName -Enable:$False }
Qualche accortezza sul codice poco sopra: il file CSV da importare nel mio caso si chiamava DisableClutter.csv
e si trovava anch’esso in C:\Temp
. La colonna contenente gli indirizzi di posta elettronica filtrati perché individuati con Clutter abilitata ha in testa la dicitura UserPrincipalName
, fondamentale per mappare poi correttamente il campo giusto nello script e per evitare che questo vada in errore.
Anche questa operazione può durare diverso tempo, varia in base al numero di caselle di posta da modificare, ciascun comando di Set-Clutter
produrrà a video il risultato per permettere a te di verificare che tutto vada a buon fine.
Cercare lo stato di Clutter partendo da una lista di caselle di posta
Modificando di pochissimo il codice di Alan potrai verificare lo stato di Clutter di una casella di posta elettronica partendo da un elenco CSV da te fornito. Nel mio esempio il CSV si chiama MailboxesList.csv
e si trova in C:\Temp
. In colonna uno c’è l’elenco degli indirizzi da verificare e l’intestazione della colonna riporta UserPrincipalName
. Ciò detto, ecco il codice:
$OutputFile = "C:\temp\clutter\ClutterDetails.csv" #The CSV Output file that is created, change for your purposes Out-File -FilePath $OutputFile -InputObject "UserPrincipalName,SamAccountName,ClutterEnabled" -Encoding UTF8 -Append Write-Host "Retrieving Users" Import-Csv C:\temp\MailboxesList.csv | foreach { $objUser = get-mailbox $_.UserPrincipalName | select UserPrincipalName, SamAccountName $strUserPrincipalName = $objUser.UserPrincipalName $strSamAccountName = $objUser.SamAccountName Write-Host "Processing $strUserPrincipalName" $strClutterInfo = $(get-clutter -Identity $($objUser.UserPrincipalName)).isenabled $strUserDetails = "$strUserPrincipalName,$strSamAccountName,$strClutterInfo" Out-File -FilePath $OutputFile -InputObject $strUserDetails -Encoding UTF8 -append } Write-Host "Completed - data saved to $OutputFile"
In caso di dubbi l’area commenti è sempre a tua disposizione.
#StaySafe
Qualche riferimento utile:
gallery.technet.microsoft.com/office/Export-all-Office-365-ff2fb17f
o365info.com/manage-clutter-by-using-powershell-office-365
social.technet.microsoft.com/Forums/en-US/8a0dde7d-3019-42ca-9e86-41848781a700/office-365-clutter-option-missing
techcommunity.microsoft.com/t5/outlook-blog/update-on-focused-inbox-and-our-plans-for-clutter/ba-p/136448
techcommunity.microsoft.com/t5/office-365/export-mailboxes-with-clutter-enabled/m-p/276763
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)