Quesito del giorno: avete un gruppo di distribuzione dinamico composto da tutte le caselle di posta che nel campo “Company” riportano un testo ben preciso, il nome dell’azienda (ovviamente). Quest’ultima però possiede anche decine di caselle di posta condivise che non devono ricevere comunicazioni mandate al gruppo poiché risulterebbero doppioni inutili (la mail arriverebbe sia al singolo dipendente che alla casella comune). In un mondo costruito a rigor di logica dovrebbe esserci un’opzione che esclude le caselle di posta condivise dalla creazione del gruppo dinamico ma non è così perché a Microsoft non piacciono le cose semplici.
In un mondo con minore logica si arriva a pensare che creare un Security Group su Exchange, popolato dalle caselle di posta condivise, possa essere dato in pasto al Dynamic Distribution Group per far si che escluda il contenuto da se stesso ma a quanto pare anche questa cosa che è stata documentata su altri blog e sullo stesso forum di Microsoft pare non funzionare, “voce di corridoio” confermata da chi nello stesso forum fornisce assistenza: community.office365.com/en-us/f/148/t/231233.aspx.
A questo punto mettendo da parte la logica (?) di Microsoft e facendo scendere in campo quella dell’IT di cui fate parte (o magari no) si spera che voi abbiate adottato una nomenclatura ufficiale per creare tutte le caselle di posta condivise, non so, qualcosa del tipo “Nome Azienda S.p.A. – Scopo della casella“. In questi casi c’è ancora una cartuccia da poter sparare e fortunatamente funziona, si basa sull’esclusione di parte del nome (o un nome ben preciso) e potete costruire o modificare il gruppo proprio facendogli rispettare quella regola, andiamo al codice (poi ve lo spiego meglio subito dopo):
Set-DynamicDistributionGroup -Identity "Nome del gruppo di distribuzione dinamico" -RecipientFilter {RecipientType -eq "UserMailbox" -and Company -eq "Nome azienda nel campo Company" -and (-not(Name -like "Parte del nome da escludere o nome preciso*"))} |
Partendo dal presupposto che il gruppo esista già (quindi si userà il Set-DynamicDistributionGroup e non il New-DynamicDistributionGroup, ndr) lo si va a modificare dicendo di mantenere il filtro attivo sul campo Company ma escludendo ciò che nel nome riporta uno specifico testo, nello script di esempio sopra basterà modificare “Parte del nome da escludere o nome preciso*” con ciò che dovete individuare e utilizzare come filtro. Nel mio specifico caso questo codice si sposa benissimo con l’esigenza perché -come già detto qualche riga fa- mi è bastato filtrare “Nome Azienda S.p.A.*” (dove l’asterisco permette di includere tutto ciò che viene inserito in seguito) per modificare il comportamento del gruppo dinamico e ottenere finalmente l’elenco delle caselle dei soli dipendenti.
Per verificare il contenuto del gruppo dinamico vi basterà lanciare due banali istruzioni in Powershell:
$members = Get-DynamicDistributionGroup -Identity "Nome del gruppo" | |
Get-Recipient -RecipientPreviewFilter $members.RecipientFilter |
Il gioco è fatto e potrà essere riutilizzato tutte le volte che volete. Sia chiaro che al posto dell’asterisco potete mettere un nome ben preciso per escludere solo quello e potrete continuare a inserire altri nomi semplicemente “prolungando” l’istruzione di Set e includendo altri -and (-not(Name -like “TestoDaFiltrare”)) prima che si chiuda la parentesi graffa :-)
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! :-)