Utilizza il Cmdlet Get-Mailbox per esportare l'elenco delle caselle di posta in Exchange
Sep 26, 2024
Cos'è un Cmdlet Get-Mailbox?
Il cmdlet Get-Mailbox è un comando chiave nella Exchange Management Shell (per Exchange Server) e nel modulo PowerShell di Exchange Online (per Office 365). Viene utilizzato per recuperare informazioni sulle caselle di posta in un ambiente Exchange. Che si tratti di caselle di posta utente, collegate, condivise o risorse, con Get-Mailbox gli amministratori possono elencare tutte le caselle di posta all'interno di un ambito specificato, come un database, un server o un'unità organizzativa, o recuperare proprietà dettagliate per una singola casella di posta. È possibile anche filtrare i risultati per restituire solo le caselle di posta che soddisfano determinati criteri.
Il cmdlet PowerShell Get-Mailbox supporta molti parametri che possono essere utilizzati per personalizzare le informazioni restituite. Parametri come -Properties consentono di ottenere un dettaglio completo degli attributi delle caselle di posta. L'output di Get-Mailbox può essere facilmente esportato in formati CSV o JSON, facilitando l'integrazione con altri strumenti e piattaforme. Il cmdlet Get-Mailbox offre anche la flessibilità della scripting di PowerShell negli ambienti Exchange.
Disponibilità sia in Exchange on-premises che in servizio cloud-based
Il cmdlet PowerShell Get-Mailbox è disponibile sia negli ambienti Exchange Server on-premises che in Exchange Online (Office 365), sebbene ci siano differenze nell'implementazione e nelle funzionalità disponibili. Introdotto come parte di Exchange Management Shell in Exchange Server 2007.
Contenuti correlati selezionati:
On-Premises Exchange Server
Get-Mailbox è disponibile in Exchange Server 2010, 2013, 2016 e 2019. Get-Mailbox viene utilizzato tramite Exchange Management Shell (EMS) in Exchange on-premises o tramite PowerShell caricando il modulo Exchange. Include parametri per il filtraggio per database, unità organizzativa, tipo di destinatario e altro. Fornisce in output varie proprietà della casella di posta come nome, indirizzo email e database della casella di posta.
Exchange Online (Office 365)
Get-Mailbox tramite PowerShell può essere utilizzato per Exchange Online, a cui si accede tramite connessioni remote PowerShell. Questo modulo fornisce capacità di gestione basate sul cloud ed è accessibile da remoto. Simile a Exchange on-premises ma può includere parametri aggiuntivi o funzionalità ottimizzate per l'ambiente cloud. L'output include proprietà rilevanti per la gestione del cloud.
Raccomandazione per l'uso del cmdlet Get-EXOMailbox in Exchange Online
Il cmdlet Get-EXOMailbox fa parte del modulo PowerShell di Exchange Online ed è utilizzato per recuperare informazioni sulle caselle di posta in Exchange Online (parte di Office 365). Questo cmdlet è un'alternativa a Get-Mailbox con miglioramenti per Exchange Online. Get-EXOMailbox è ottimizzato per ambienti cloud e può offrire prestazioni migliori e funzionalità aggiuntive progettate per Office 365. Questo cmdlet offre opzioni di filtraggio e interrogazione più avanzate che sono particolarmente utili in una configurazione basata su cloud ed è meglio integrato con altri servizi e funzionalità di Office 365.
Raccomandazioni per l'uso di Get-EXOMailbox
- Quando si lavora in Exchange Online, utilizzare Get-EXOMailbox piuttosto che Get-Mailbox per prestazioni ottimizzate e funzionalità specifiche per il cloud.
- Utilizza il parametro -Filter per recuperare in modo efficiente sottoinsiemi di caselle di posta in base a criteri specifici, riducendo il carico e migliorando le prestazioni delle query.
- Per le grandi organizzazioni, utilizzare -ResultSize Unlimited per assicurarsi di catturare tutte le caselle di posta pertinenti. Prestare attenzione alle implicazioni sulle prestazioni con set di dati molto grandi.
- Utilizza Get-EXOMailbox negli script PowerShell per compiti automatizzati di reporting, gestione e manutenzione in Exchange Online.
Funzione del Cmdlet Get-Mailbox
Il cmdlet Get-Mailbox in Exchange Server e Exchange Online viene utilizzato per recuperare informazioni dettagliate sulle caselle di posta. Il cmdlet non modifica alcun dato, la sua funzione principale è raccogliere e visualizzare le proprietà e le configurazioni delle caselle di posta, ciò include dati sulle dimensioni delle caselle di posta, le quote, il numero di elementi, l'ultimo accesso e molto altro. Il cmdlet offre flessibilità nel mirare a caselle di posta specifiche, gruppi di caselle di posta o tutte le caselle di posta, a seconda dei parametri utilizzati.
Scopo
Il cmdlet Get-Mailbox recupera informazioni sulle caselle di posta, incluse le caselle di posta degli utenti, condivise, risorse (come sale riunioni, condivise e attrezzature) e altre. Fornisce dettagli come proprietà delle caselle di posta, ubicazione e configurazione.
Utilizzi principali
Genera elenchi di caselle di posta per scopi di reporting, come l'auditing dei tipi di caselle di posta, delle loro ubicazioni e attributi. Recupera i dettagli necessari per le attività di gestione delle caselle di posta, come la configurazione delle impostazioni delle caselle di posta o l'esecuzione di operazioni in blocco. Aiuta a diagnosticare problemi fornendo informazioni specifiche della casella di posta relative a configurazioni, quote e altro.
Operazione
Quando esegui il cmdlet Get-Mailbox, interroga i servizi di directory Exchange, Active Directory negli ambienti on-premises, o la directory Exchange Online in Office 365, per recuperare le informazioni sulla casella di posta. Il cmdlet recupera i dati dal database della casella di posta o dalle directory e li presenta in base ai parametri specificati. Questo include proprietà come indirizzi email, dimensioni delle caselle di posta e altro ancora.
Output
Per impostazione predefinita, Get-Mailbox mostra un insieme di proprietà comuni come DisplayName, PrimarySmtpAddress, Database e Recipient Type. L'output può essere personalizzato utilizzando Select-Object per visualizzare proprietà aggiuntive o specifiche.
Parametri
Parametri come -Identity, -Database, -OrganizationalUnit e -Filter ti permettono di restringere la ricerca a specifiche caselle di posta o insiemi di caselle di posta in base a criteri come la posizione del database, l'unità organizzativa o attributi personalizzati. -ResultSize ti consente di controllare il numero di risultati restituiti, il che è utile per gestire le prestazioni e concentrarsi su sottogruppi pertinenti di dati. Get-Mailbox supporta molti altri parametri per ulteriori compiti.
Permessi necessari per eseguire il Cmdlet Get-Mailbox
Per eseguire il cmdlet Get-Mailbox in Exchange Server e Exchange Online sono necessari permessi specifici. Questi permessi determinano chi può eseguire il cmdlet per recuperare le informazioni delle caselle di posta. Tali permessi vengono tipicamente assegnati tramite il controllo degli accessi basato sui ruoli (RBAC) in Exchange. Questi ruoli includono tipicamente “Gestione Destinatari”, “Gestione Organizzazione” o “Gestione Organizzazione Solo Visualizzazione”. Di seguito è presente una panoramica dettagliata dei permessi necessari per l'esecuzione del cmdlet Get-Mailbox.
Exchange Server (On-Premises)
In un ambiente Exchange Server on-premises, i permessi vengono tipicamente concessi tramite il controllo degli accessi basato sui ruoli (role-based access control). I ruoli RBAC possono essere assegnati a diversi livelli, dall'intera organizzazione a specifici database di caselle di posta.
Ruolo di Gestione dei Destinatari
Per la gestione generale delle caselle di posta, inclusa l'esecuzione di Get-Mailbox, gli utenti vengono tipicamente aggiunti al gruppo di ruoli “Recipient Management”. Questo gruppo di ruoli include ruoli che consentono di creare, gestire e rimuovere caselle di posta, tra le altre attività relative ai destinatari.
Ruolo di gestione dell'organizzazione
Per privilegi amministrativi di alto livello, inclusa la capacità di eseguire tutti i cmdlet relativi alle caselle di posta, può essere utilizzato il gruppo di ruoli “Organization Management”, che concede permessi in tutta l'organizzazione Exchange.
Ruolo di gestione dell'organizzazione in sola visualizzazione
Questo ruolo fornisce accesso in sola lettura alle impostazioni organizzative, inclusa la capacità di eseguire Get-Mailbox ma senza la possibilità di modificare le impostazioni.
Ruoli RBAC personalizzati
È possibile anche creare ruoli personalizzati che includono specificamente il cmdlet Get-Mailbox, personalizzando i permessi in base alle esigenze specifiche senza concedere un accesso più ampio del necessario.
Exchange Online (Office 365)
In Exchange Online per Get-Mailbox, i permessi sono gestiti in modo simile attraverso RBAC, parte della struttura complessiva dei permessi di Office 365, tutti i ruoli sopra menzionati per il server Exchange on-premises sono disponibili anche qui, ma ci sono alcuni ruoli di livello superiore menzionati di seguito, che hanno anche i permessi per eseguire il cmdlet Get-Mailbox.
Amministratore globale
Gli utenti con il ruolo di Amministratore Globale hanno i permessi per eseguire Get-Mailbox insieme ad altri cmdlet amministrativi in tutta l'organizzazione di Exchange Online.
Ruolo di Amministratore Exchange
Specifico per Exchange Online, il ruolo di Exchange Administrator fornisce i permessi necessari per gestire le impostazioni di Exchange, la gestione degli oggetti, inclusa l'esecuzione di Get-Mailbox.
Ruoli personalizzati dell'amministratore
Office 365 consente la creazione di ruoli di amministratore personalizzati, come Exchange on-premises. Un ruolo personalizzato può includere specificamente il cmdlet Get-Mailbox, insieme a qualsiasi altro cmdlet richiesto, offrendo un controllo preciso sulle autorizzazioni.
Sintassi per il Cmdlet Get-Mailbox
Sintassi di base
L'utilizzo più semplice del cmdlet Get-Mailbox è ottenere tutte le caselle di posta utilizzando PowerShell. Il cmdlet restituisce un elenco riassuntivo di tutte le caselle di posta quando utilizzato senza parametri, inclusi attributi principali come DisplayName, Alias, ServerName, ProhibitSendQuota e altri a seconda dell'ambiente.
Get-Mailbox
Sintassi generale
La struttura generale del Get-Mailbox con diversi parametri è la seguente.
Get-Mailbox [-Identity <MailboxIdParameter>] [-Database <DatabaseIdParameter>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-RecipientTypeDetails <RecipientTypeDetails>] [-Filter <FilterExpression>] [-ResultSize <Unlimited | Integer>] [-DomainController <Fqdn>] [-ReadFromDomainController] [-Anr <String>] [-IncludeSoftDeletedMailboxes] [-MessageTrackingLogPath <String>] [-ResultSize <Unlimited | Integer>]
Di seguito è riportata la sintassi generale con un parametro
Get-Mailbox [-Parameter <value>]
Contenuti correlati selezionati:
Parametri di Get-Mailbox comunemente utilizzati
I seguenti sono parametri comunemente utilizzati di Get-Mailbox:
Get-Mialbox Parametri | Sintassi |
|---|---|
|
-Parametro di Identity |
Get-Mailbox -Identity “BarbaraCole” |
|
-Filter Parameter |
Get-Mailbox -Filter {Name -like “Bar*”} |
|
-Parametro del database |
Get-Mailbox -Database “ Mailbox Database 1767124038″ |
|
-OrganizationalUnit Parametro |
Get-Mailbox -OrganizationalUnit “OU=Versacorp,DC=MILKYWAY,DC=LOCAL” |
|
-Parametro di Arbitrato |
Get-Mailbox -Arbitration |
|
-AuditLog Parametro |
Get-Mailbox -AuditLog |
|
-RecipientTypeDetails Parameter |
Get-Mailbox -RecipientTypeDetails SharedMailbox |
|
-ResultSize Parameter |
Get-Mailbox -ResultSize 10 |
|
-Parametro SoftDeletedMailbox |
Get-Mailbox -SoftDeletedMailbox |
|
-Anr |
Get-Mailbox -Anr “Adita” |
|
-SortBy |
Get-Mailbox -SortBy Name |
Esaminiamo ciascuno di essi
-Parametro di Identity
Il parametro -Identity specifica la casella di posta da recuperare. Può accettare diverse forme di identificatori come il GUID della casella di posta, il Nome Distinto (DN), Dominio\Nome utente, Nome Principale dell'Utente (UPN), Legacy Exchange DN, indirizzo SMTP o Alias. Questo parametro può essere utilizzato per accedere rapidamente alle informazioni su una specifica casella di posta.
Get-Mailbox -Identity "BarbaraCole"
-Parametro di filtro
Il parametro -Filter consente query più complesse. Viene utilizzato per definire condizioni che individuano esattamente l'insieme di caselle di posta di interesse, in base ad attributi come il dipartimento, attributi personalizzati o la dimensione della casella di posta.
Get-Mailbox -Filter {Name -like "Bar*"}
Get-Mailbox -Filter {DisplayName -like "Bar*"}
Get-Mailbox -Filter {CustomAttribute1 -like 'TeamA'}
-Parametro del Database
Il parametro -Database filtra le caselle di posta in base al database in cui sono memorizzate. È utile per operazioni che mirano a database specifici, come durante le migrazioni o per reportistica specifica del database.
Get-Mailbox -Database " Mailbox Database 1767124038"
-OrganizationalUnit Parametro
Il parametro -OrganizationalUnit restringe la ricerca alle caselle di posta situate all'interno di una specifica unità organizzativa di Active Directory. Questo è particolarmente utile in grandi organizzazioni con una gerarchia OU strutturata.
Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL"
-Parametro di Arbitrato
Il parametro dello switch -Arbitration recupera le cassette postali di arbitrato, che sono cassette postali di sistema utilizzate per memorizzare dati organizzativi, come i registri di controllo dell'amministratore, eDiscovery informazioni e altri compiti correlati al sistema.
Get-Mailbox -Arbitration
-AuditLog Parametro
Il parametro switch -AuditLog viene utilizzato per recuperare le cassette postali del registro di controllo, che contengono i log di controllo per le azioni intraprese dagli amministratori e dagli utenti. Questo è importante per scopi di conformità e monitoraggio.
Get-Mailbox -AuditLog
-RecipientTypeDetails Parametro
Questo parametro consente di filtrare le caselle di posta in base al loro tipo, come UserMailbox, SharedMailbox, RoomMailbox o EquipmentMailbox, tra gli altri. Facilita le operazioni mirate specificamente alla gestione di particolari tipi di caselle di posta.
Get-Mailbox -RecipientTypeDetails SharedMailbox
-ResultSize Parameter
Il parametro -ResultSize limita il numero di risultati restituiti dal cmdlet. Per impostazione predefinita, Get-Mailbox recupera fino a 1000 caselle di posta. Impostando questo parametro su “Unlimited” si possono ottenere i dettagli di tutte le caselle di posta senza troncamento o impostandolo su un numero inferiore, ad esempio 50, si otterranno risultati in base al valore fornito.
Get-Mailbox -ResultSize 10
-Parametro SoftDeletedMailbox
Recupera le caselle di posta che sono state eliminate in modo non definitivo ma non rimosse permanentemente, questo parametro è disponibile solo per Exchange Online (Office365).
Get-Mailbox -SoftDeletedMailbox
-Anr
Il parametro -Anr (Ambiguous Name Resolution) viene utilizzato in combinazione con il parametro -Identity per cercare una casella di posta dove la stringa specificata è vicina o simile all'effettiva identità della casella di posta. È utile quando il nome esatto o l'alias della casella di posta non è noto.
Get-Mailbox -Anr "Adita"
-SortBy
Questo parametro specifica la proprietà in base alla quale i risultati devono essere ordinati. Ad esempio, utilizzando -SortBy DisplayName, organizza l'elenco delle caselle di posta restituite in ordine alfabetico per il nome visualizzato delle caselle di posta.
Get-Mailbox -SortBy Name
Parametri Comuni
Come altri cmdlet in PowerShell, Get-Mailbox supporta parametri comuni come -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer, -PipelineVariable e -OutVariable. Questi parametri possono aiutare a controllare la messaggistica del cmdlet, gestire errori e avvisi e gestire l'output negli script e nelle funzioni.
Altri parametri disponibili per cmdlet
-Archivio: Restituisce le caselle di posta con archiviazione abilitata
-AuxAuditLog: Restituisce le caselle di posta elettronica del registro di controllo ausiliario
-Credential: Specifica nome utente e password
-DomainController: Specifica il domain controller
-GroupMailbox: Restituisce solo i gruppi di Microsoft 365
-IgnoreDefaultScope: Ignora l'ambito del destinatario predefinito
-InactiveMailboxOnly: Restituisce solo le caselle di posta inattive
-IncludeInactiveMailbox: Include le caselle di posta inattive
-MailboxPlan: Filtra i risultati in base al piano della casella di posta
-Migrazione: Restituisce le caselle di posta della migrazione
-Monitoring: Restituisce le caselle di posta di monitoraggio
-PublicFolder: Restituisce le caselle di posta delle cartelle pubbliche
-ReadFromDomainController: Legge le informazioni dal domain controller
-RemoteArchive: Restituisce le caselle di posta elettronica dell'archivio remoto
-Server: Filtra i risultati per server Exchange
Contenuti correlati selezionati:
Combinando Parametri
Puoi combinare più parametri per affinare la tua ricerca. Ecco alcuni esempi.
- Il cmdlet seguente recupera tutte le caselle di posta utente in un database specifico con il tipo di destinatario come “utente”.
Get-Mailbox -Database "Test3" -RecipientTypeDetails UserMailbox
- Il cmdlet seguente otterrà tutte le caselle di posta con un attributo personalizzato specifico, utilizzando -ResultSize per tutti i risultati.
Get-Mailbox -Filter {CustomAttribute1 -eq “TeamA”} -ResultSize Unlimited
Inoltrando l'output del cmdlet Get-Mailbox al cmdlet Select-Object, i cmdlet di esempio sottostanti recuperano un elenco personalizzato che mostra il nome visualizzato, l'indirizzo SMTP principale e la quota di invio per ogni casella di posta da una specifica OU. Questo formato è particolarmente utile per generare report o audit.
- Recupera le caselle di posta in una specifica OU e mostra solo i loro nomi visualizzati e indirizzi email.
Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL" | Select-Object DisplayName,PrimarySmtpAddress
- Elenco di tutte le caselle di posta con proprietà dettagliate
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, ProhibitSendQuota
- L'esempio più complesso mostrato di seguito combina più cmdlet per identificare le caselle di posta che non sono state accedute negli ultimi 90 giorni.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddDays(-90)}
Casi d'uso e scenari
Get-Mailbox combinato con i suoi parametri, consente una vasta gamma di utilizzi e scenari che possono facilitare la gestione efficace del sistema di posta elettronica, la conformità, la generazione di rapporti e la risoluzione dei problemi. Di seguito sono riportati alcuni casi d'uso e scenari.
Auditing e Reporting delle caselle di posta
Generazione di rapporti sulle dimensioni delle caselle di posta, le quote e l'utilizzo per garantire la conformità con le politiche organizzative. Il cmdlet sottostante non produce risultati, puoi andare alla posizione fornita nel cmdlet Export-CSV e aprire il file CSV, apparirà come nello screenshot sottostante.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount, StorageLimitStatus | Export-Csv -Path "MailboxReport.csv"
Identificazione di caselle di posta inattive o orfane
Trovare caselle di posta che non sono state accedute per un periodo specifico, il che potrebbe indicare caselle di posta inattive o orfane. Questo scenario aiuta nella pulizia del sistema di posta, potenzialmente liberando risorse e licenze identificando caselle di posta che non sono più in uso.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddMonths(-6)} | Select DisplayName, LastLogonTime
Gestione delle configurazioni delle caselle di posta
Elenco delle caselle di posta con determinate configurazioni, come l'inoltro attivato o specifiche funzionalità della casella di posta.
Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null} | Select DisplayName, ForwardingAddress
Gestione in massa
Eseguire operazioni di massa, come spostare cassette postali o applicare impostazioni delle cassette postali a più cassette postali contemporaneamente. Spostare tutte le cassette postali da un database all'altro come parte di un compito di manutenzione.
Get-Mailbox -Database "DB01" | New-MoveRequest -TargetDatabase "DB05"
Operazioni di massa e deleghe
Trovare tutte le caselle di posta condivise o delegate e rivedere gli utenti delegati per scopi di audit.
Get-Mailbox -RecipientTypeDetails SharedMailbox -Database “Test3” | Get-MailboxPermission | Where {$_.AccessRights -contains "FullAccess"}
Impostazione delle quote per la casella di posta
Se vuoi impostare il limite di invio e ricezione in base alle tue esigenze, il seguente cmdlet sarà in grado di impostare la quota con un valore di 5GB, puoi utilizzare il valore che ritieni necessario.
Get-Mailbox -Identity "JackRobert" | Set-Mailbox -ProhibitSendReceiveQuota "5GB"
Il cmdlet sopra non produrrà alcun output ma imposterà il valore; puoi usare il cmdlet sottostante per verificare l'output desiderato che hai impostato usando il cmdlet precedente.
Get-Mailbox -Identity "JackRobert" | Select prohibitsendreceivequota
Risoluzione dei problemi
Diagnostica e risolvi problemi relativi alle caselle di posta, come l'identificazione di caselle di posta con quote superate. Identifica le caselle di posta che hanno superato le loro quote di invio per affrontare potenziali problemi di prestazione.
Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ProhibitSendQuota -ne $null -and $_.ProhibitSendQuota -lt 5GB } | Select-Object DisplayName,PrimarySmtpAddress,ProhibitSendQuota
Gestione delle Organizational Unit
Gestire le caselle di posta all'interno di un'unità organizzativa specifica (OU), come applicare impostazioni o configurazioni specifiche. Recuperare e applicare una modifica della configurazione a tutte le caselle di posta nell'OU “HR”.
Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Set-Mailbox -MaxSendSize 50MB
Il cmdlet sopra non produrrà alcun risultato ma assegnerà il valore per la dimensione massima di invio dei messaggi, per tutti gli utenti all'interno dell'OU specificato, utilizzare il cmdlet sottostante per confermare.
Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Select MaxSendSize
Delegare l'Accesso
Delegare l'accesso alle caselle di posta per scopi amministrativi o di supporto. Concedere i permessi di accesso completo a una casella di posta di supporto per tutte le caselle di posta in un specifico database di caselle di posta.
Get-Mailbox -Database “Test3” | Add-MailboxPermission -User "administrator@milkyway.local" -AccessRights FullAccess
Verifica delle impostazioni di quota della casella di posta
Controllare le impostazioni della quota della casella di posta è importante, poiché aiuta a garantire che gli utenti non superino i limiti di archiviazione impostati dall'organizzazione, potenzialmente influenzando la funzionalità della posta elettronica.
Panoramica della quota della casella di posta
Le quote delle caselle di posta elettronica sono utilizzate per limitare la quantità di spazio di archiviazione che una casella di posta può utilizzare. Queste quote includono quanto segue.
- Quota di Avviso: La soglia alla quale gli utenti vengono avvisati che la loro casella di posta si sta avvicinando al limite di spazio.
- Prohibit Send Quota: La soglia oltre la quale agli utenti viene impedito di inviare nuovi messaggi.
- Proibire quota di invio e ricezione: La soglia oltre la quale agli utenti è impedito di inviare o ricevere nuovi messaggi.
Per controllare le impostazioni di quota per una specifica casella di posta, puoi utilizzare il cmdlet Get-Mailbox seguito dall'identità della casella di posta. Questo restituirà varie proprietà della casella di posta, incluse le impostazioni di quota.
Get-Mailbox -Identity "BarbaraCole" | Format-List IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, UsedDatabaseQuotaDefaults
Se devi rivedere le impostazioni di quota su più o tutte le caselle di posta all'interno del tuo ambiente, puoi utilizzare il cmdlet Get-Mailbox senza specificare un'identità ed esportare le proprietà di quota pertinenti, e esportare i dati in un file CSV, rendendo più semplice analizzare e riportare le configurazioni di quota.
Get-Mailbox -ResultSize Unlimited -Database “Test3” | Select-Object DisplayName,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota
Esempio1: Restituzione di un elenco riassuntivo di tutte le caselle di posta
Per ottenere un elenco riassuntivo di tutte le caselle di posta in Exchange Online o Exchange Server tramite PowerShell, utilizzare il cmdlet sottostante.
Il comando sottostante produrrà una tabella nella console PowerShell che contiene un riepilogo di tutte le caselle di posta con i loro nomi visualizzati, alias, UPN, date di creazione e indirizzi email principali. Questo riepilogo fornisce una panoramica rapida, utile per report, audit o semplicemente per ottenere un'intuizione sulle caselle di posta attualmente stabilite nel tuo ambiente Exchange.
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, Alias, UserPrincipalName, WhenCreated, PrimarySmtpAddress | Format-Table -AutoSize
Il cmdlet sottostante utilizzerà alcune proprietà aggiuntive, ad esempio Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota, insieme al nome visualizzato e all'indirizzo smtp primario.
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,Database,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota | Format-Table -Autosize
Esempio2: Generazione di un elenco riassuntivo delle cassette postali d'archivio in un database specifico
Per ottenere un elenco riassuntivo delle cassette postali di archivio situate all'interno di un database specifico utilizzando PowerShell in Exchange Online o Exchange Server, è possibile utilizzare una combinazione dei cmdlet “Get-Mailbox” e “Get-MailboxStatistics”. Questa combinazione consente di filtrare le cassette postali in base al loro database di hosting e poi verificare ciascuna per un archivio. Di seguito è illustrato come è possibile realizzare ciò.
Get-Mailbox -Database "Test3" -Archive | Get-MailboxStatistics -Archive | Select-Object DisplayName, TotalItemSize, ItemCount | Format-Table -AutoSize
Contenuti correlati selezionati:
Combinando Get-Mailbox con altri cmdlet (Get-Member, Select-Object, Format-List)
Combinando il cmdlet Get-Mailbox con altri cmdlet di PowerShell come Get-Member, Select-Object e Format-List puoi recuperare, visualizzare e formattare le informazioni della casella di posta in modo più efficace.
Get-Member
Il cmdlet Get-Member viene utilizzato per ispezionare le proprietà e i metodi degli oggetti restituiti da Get-Mailbox. Questo è particolarmente utile per scoprire quali proprietà sono disponibili per la selezione o la formattazione.
Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Get-Member
Select-Object
Il cmdlet Select-Object consente di specificare quali proprietà si desidera includere nel proprio output. Questo è utile per creare una visualizzazione personalizzata delle informazioni della casella di posta.
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress,Database
Format-List
Il cmdlet Format-List formatta l'output come un elenco, mostrando tutte le proprietà e i loro valori. Questo è utile per una visualizzazione dettagliata delle proprietà di un oggetto mailbox.
Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-List DisplayName, PrimarySmtpAddress, ProhibitSendQuota
Operazioni in blocco con Get-Mailbox e Set-Mailbox
Vuoi aggiornare le impostazioni delle caselle di posta per più mailbox, come impostare una specifica quota per la mailbox o abilitare/disabilitare l'archiviazione.
Il comando seguente trova tutte le caselle di posta in “Test3” e imposta le loro configurazioni di quota. Aggiorna il ProhibitSendQuota, ProhibitSendReceiveQuota e IssueWarningQuota per ogni casella di posta.
Get-Mailbox -ResultSize Unlimited | Where-Object { $_.Database -eq "Test3" } | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 6GB -IssueWarningQuota 4GB
Utilizzando filtri e ordinando i risultati
Quando si lavora con grandi insiemi di informazioni, è possibile restringere il dataset esattamente a ciò di cui si ha bisogno, e l'ordinamento aiuta ad organizzare l'output per un'analisi o una reportistica migliore. Di seguito, i cmdlet mostreranno come utilizzare i meccanismi di filtraggio e ordinamento con Get-Mailbox.
Utilizzo dei filtri in Get-Mailbox
I cmdlet di filtraggio ti permettono di specificare criteri per includere solo gli oggetti che corrispondono a tali criteri nell'output del comando, puoi applicare i filtri direttamente nei cmdlet che supportano il parametro -Filter o utilizzare il cmdlet “Where-Object” per scenari di filtraggio più complessi o non supportati.
Get-Mailbox -ResultSize Unlimited | Where-Object {$_.CustomAttribute1 -eq "TeamA" -and $_.DisplayName -like "Barb*"}
Ordinamento dei risultati con Get-Mailbox
L'ordinamento aiuta ad organizzare i tuoi dati in un ordine significativo, rendendoli più facili da leggere e analizzare. Puoi utilizzare il cmdlet “Sort-Object” per scopi di ordinamento. Questo comando recupera tutte le caselle di posta e le ordina alfabeticamente per il loro nome visualizzato.
Get-Mailbox -ResultSize 10 | Sort-Object DisplayName
Esportazione dei risultati in CSV
Per esportare i risultati in un file CSV, PowerShell offre il cmdlet “Export-Csv”, che prende l'input dalla pipeline e lo scrive in un file CSV specificato. Ad esempio, se vuoi esportare un elenco di caselle di posta Exchange con le loro dimensioni e dettagli di utilizzo, puoi utilizzare il cmdlet sottostante. Devi specificare il percorso e il nome del file per il tuo file CSV nel parametro -Path.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select-Object DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Exports\MailboxDetails.csv" -NoTypeInformation
Raggruppamento e formattazione dei risultati
Raggruppare e formattare i risultati migliora notevolmente la leggibilità dell'output dei dati. PowerShell fornisce cmdlet come Group-Object, Format-Table, Format-List, ecc., che possono essere utilizzati per questi scopi.
Raggruppamento dei risultati
Il cmdlet Group-Object serve per categorizzare gli oggetti in base ai valori delle proprietà. Questo può essere particolarmente utile per ordinare le caselle di posta in base ad attributi, come il dipartimento o attributi personalizzati.
Get-Mailbox -ResultSize Unlimited | Group-Object -Property CustomAttribute1
Formattazione dei risultati
Dopo che i dati sono stati raggruppati, o quando si presenta qualsiasi tipo di dato, una corretta formattazione può rendere l’output più accessibile.
Format-Table, spesso abbreviato come “ft”, visualizza i dati in formato tabellare. È ideale quando si desidera vedere i risultati disposti in colonne. È possibile specificare le proprietà da visualizzare e persino controllare la larghezza delle colonne.
Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-Table DisplayName,UserPrincipalName,WhenCreated,PrimarySmtpAddress,database -AutoSize
Uso di “Format-List”
Format-List, abbreviato come “fl”, mostra ogni proprietà di un oggetto su una nuova riga, rendendolo adatto alla visualizzazione dettagliata di pochi oggetti oppure quando l’oggetto ha molte proprietà che non si adatterebbero bene in una tabella.
Get-Mailbox -Identity "BarbaraCole" | Format-List DisplayName, PrimarySmtpAddress, EmailAddresses
Differenze nel comportamento dei cmdlet in Exchange Online
Il cmdlet Get-Mailbox si comporta in modo leggermente diverso in Exchange Online rispetto al suo utilizzo in Exchange locale (on-premises).
Queste differenze derivano principalmente dall’architettura basata sul cloud di Exchange Online e dalla configurazione multi-tenant, che influiscono sul modo in cui gli amministratori interagiscono con i mailbox e sull’ambito di applicazione dei cmdlet.
Di seguito sono riportate alcune differenze principali.
- In Exchange Online, le operazioni dei cmdlet possono essere soggette a limitazioni (throttling) per mantenere le prestazioni complessive del servizio.
Ciò significa che alcune operazioni possono richiedere più tempo o necessitare di elaborazione in batch in ambienti di grandi dimensioni per evitare di superare i limiti di throttling. - Exchange Online include più tipi di destinatari e dettagli per supportare la varietà di servizi disponibili in Office 365.
Potresti quindi incontrare tipi di destinatari specifici dell’ambiente cloud che non esistono in Exchange locale. - Alcune proprietà e attributi disponibili in Exchange locale potrebbero non essere presenti o accessibili in Exchange Online, a causa della natura dell’ambiente ospitato.
I mailbox di Exchange Online possono avere proprietà aggiuntive relative all’ambiente cloud, come informazioni sulle licenze e piani di mailbox. - L’output predefinito in Exchange Online è diverso rispetto a quello locale, in quanto fornisce informazioni più pertinenti per la gestione nel cloud.
Il set di proprietà visualizzate di default e i filtri integrati possono differire da quelli di un Exchange locale. - A causa dell’architettura multi-tenant di Exchange Online, l’ambito del cmdlet Get-Mailbox è limitato ai mailbox dell’organizzazione.
In un ambiente ibrido, per gestire i mailbox locali, gli amministratori devono utilizzare la Exchange Management Shell on-premises. - Exchange Online si integra strettamente con altri servizi di Office 365, offrendo funzionalità avanzate di sicurezza e conformità.
Il comportamento di Get-Mailbox può riflettere queste integrazioni, ad esempio tramite flag o proprietà legate a litigation hold, eDiscovery o Advanced Threat Protection.
Handpicked related content:
Utilizzo di Get-EXOMailbox per prestazioni migliori
Get-EXOMailbox è un cmdlet progettato per l’uso negli ambienti Exchange Online. Offre prestazioni migliorate e funzionalità specifiche per la natura cloud di Exchange Online rispetto al cmdlet tradizionale Get-Mailbox. Get-EXOMailbox è ottimizzato per un’esecuzione più rapida su connessioni remote, rendendolo più efficiente per il recupero delle informazioni sui mailbox da Exchange Online. La connessione richiede autenticazione moderna, potenzialmente inclusa l’autenticazione a più fattori (MFA), a seconda della configurazione del tuo ambiente.
Connect-ExchangeOnline -UserPrincipalName administrator@milkyway.com
Di seguito sono riportati un paio di esempi su come “Get-EXOMailbox” può essere utilizzato per attività amministrative comuni.
Get-EXOMailbox -ResultSize Unlimited
Filtrare per tipo di destinatario (Recipient Type)
Get-EXOMailbox -RecipientTypeDetails SharedMailbox | Format-Table -Autosize
Filtrare per stato di archiviazione (Archive Status)
Get-EXOMailbox -Filter { ArchiveStatus -eq "Active" } Format-Table -Autosize
L’archiviazione in Office 365 è una funzionalità premium; ho utilizzato ArchiveStatus impostato su None per mostrare l’output qui sotto; il cmdlet soprastante funzionerà se saranno presenti mailbox con archiviazione abilitata.
Selezionare proprietà specifiche
Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,UserPrincipalName
Ordinare per nome visualizzato (Display Name)
Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,UserPrincipalName | Sort-Object DisplayName
Parametri esclusivi di Get-Mailbox per Exchange Online
Il cmdlet Get-Mailbox include parametri che sono esclusivi di Exchange Online o rilevanti in un ambiente ospitato nel cloud rispetto a un’installazione di Exchange Server on-premises. Questi parametri esclusivi forniscono caratteristiche uniche per la gestione dei mailbox nel cloud, come la gestione delle licenze, l’elenco dei mailbox inattivi o il recupero dei mailbox eliminati in modo “soft”.
InactiveMailboxOnly
Puoi scegliere di limitare i risultati ai soli mailbox inattivi utilizzando il parametro -InactiveMailboxOnly. Questo switch non richiede un valore.
Un mailbox messo in litigation hold o in-place hold prima di essere eliminato in modo “soft” è considerato inattivo.
MailboxPlan
Questo parametro filtra i mailbox restituiti dal comando includendo solo quelli associati a uno specifico piano di mailbox. È particolarmente utile in ambienti in cui sono in uso più piani, ad esempio piani diversi per reparti o ruoli diversi all’interno dell’organizzazione.
IncludeInactiveMailbox
Questo parametro include nei risultati i mailbox inattivi. I mailbox inattivi sono in genere associati a utenti eliminati o deprovisionati ma conservati per finalità di data retention, particolarmente importanti per la conformità e l’eDiscovery.
SoftDeletedMailbox
Questo parametro include nei risultati i mailbox eliminati in modo “soft”. I mailbox soft-deleted si verificano quando un mailbox viene eliminato tramite il centro di amministrazione di Office 365 o tramite PowerShell, ma viene conservato per un periodo per consentirne il ripristino.
Best practice per Get-Mailbox
Quando si gestiscono i mailbox in un ambiente Microsoft Exchange usando il cmdlet Get-Mailbox, l’adozione delle best practice garantisce prestazioni ottimali, sicurezza e gestibilità. Di seguito alcune raccomandazioni chiave.
Limita l’ambito delle query
Usa i filtri per restringere i risultati ai soli mailbox di interesse. Questo riduce il carico sul sistema e ti consente di ottenere le informazioni più rapidamente. Quando esegui “Get-Mailbox”, soprattutto in ambienti di grandi dimensioni, cerca di limitare l’ambito del comando ai mailbox necessari. Usa parametri come -RecipientTypeDetails o -OrganizationalUnit per ridurre i risultati e il carico sul tuo server Exchange.
Usa il filtraggio lato server
Quando possibile, utilizza parametri dei cmdlet che eseguono il filtraggio sul server invece di recuperare tutti gli oggetti in memoria e filtrare lato client con Where-Object. Questo migliora prestazioni ed efficienza. Sfrutta il parametro -Filter per eseguire il filtraggio lato server. Questo approccio è più efficiente e riduce la quantità di dati trasmessa sulla rete.
Usa con cautela le dimensioni dei risultati
Presta attenzione al parametro -ResultSize Unlimited, soprattutto in ambienti di grandi dimensioni. Sebbene sia necessario per operazioni complete, può causare problemi di prestazioni. Valuta di suddividere le operazioni più grandi in blocchi più piccoli.
Recupero selettivo delle proprietà
Per impostazione predefinita, Get-Mailbox recupera molte proprietà per ciascun mailbox, che potrebbero non essere sempre necessarie. Utilizza il parametro -Properties per specificare solo le proprietà di cui hai bisogno oppure usa Select-Object per ridurre i risultati. Questo può migliorare significativamente le prestazioni.
Uso efficiente dei caratteri jolly
Quando utilizzi i wildcard (*) nei filtri, considera che un uso eccessivo o inefficiente può causare problemi di prestazioni. Posiziona i wildcard con attenzione all’interno delle query per garantirne la massima efficienza.
Combina saggiamente con altri cmdlet
Spesso Get-Mailbox viene utilizzato insieme ad altri cmdlet per attività come modifiche ai mailbox o report. Quando canalizzi (“pipe”) Get-Mailbox in altri cmdlet, assicurati che il comando iniziale sia il più mirato possibile per evitare elaborazioni inutili.
Comprendi l’impatto di RecipientTypeDetails
Questo parametro è estremamente utile per indirizzare tipi specifici di mailbox (ad es. UserMailbox, SharedMailbox, ecc.). Comprenderlo e usarlo in modo efficace aiuta a eseguire operazioni più precise.
Sicurezza e conformità
Quando esegui script o comandi “Get-Mailbox” che potrebbero esporre informazioni sensibili, assicurati di rispettare le politiche di sicurezza della tua organizzazione. Limita l’accesso a questi script e ai relativi output al solo personale autorizzato.
Testa e valida gli script
Prima di eseguire in produzione uno script che apporta modifiche basandosi sull’output di “Get-Mailbox”, testalo accuratamente in un ambiente non di produzione. Valida la selezione dei mailbox e le modifiche previste per evitare impatti indesiderati.
Rivedi e aggiorna regolarmente gli script
Man mano che il tuo ambiente Exchange evolve, dovrebbero evolvere anche i tuoi script e comandi. Rivedili e aggiornali regolarmente per assicurarti che utilizzino i metodi più efficienti e siano allineati alle best practice attuali.
Rimani aggiornato
Assicurati che la tua sessione PowerShell o il modulo per Exchange sia aggiornato. Microsoft aggiorna regolarmente i cmdlet di PowerShell per Exchange Online, introducendo nuove funzionalità e miglioramenti che possono potenziare le tue capacità di scripting.
Handpicked related content:
Get-Mailbox — Risoluzione dei problemi comuni
Potresti riscontrare diversi problemi o comportamenti imprevisti quando lavori con il cmdlet Get-Mailbox. Di seguito alcuni problemi comuni con passaggi di troubleshooting e soluzioni per risolverli in modo efficace.
Cmdlet non riconosciuto
Potresti ricevere un messaggio di errore che indica che “Get-Mailbox” non è riconosciuto come nome di cmdlet, funzione, file di script o programma eseguibile.
Passaggi di troubleshooting
- Assicurati di eseguire il cmdlet nella Exchange Management Shell (per Exchange Server) o di esserti connesso a Exchange Online PowerShell utilizzando Connect-ExchangeOnline (per Exchange Online).
- Per Exchange Online, assicurati che il modulo Exchange Online PowerShell sia installato e aggiornato.
- Verifica la tua sessione PowerShell: potresti trovarti in una sessione che non carica i cmdlet di Exchange per impostazione predefinita.
Autorizzazioni insufficienti
Sei connesso a Exchange Online o Exchange Server ma ricevi errori relativi ai permessi quando tenti di eseguire “Get-Mailbox”.
Passaggi di troubleshooting
- Verifica che l’account utilizzato disponga delle autorizzazioni necessarie (ad es. Exchange Admin per Exchange Online o i ruoli RBAC appropriati in Exchange Server).
- Per Exchange Online, assicurati che la MFA sia configurata correttamente se richiesta dal tuo account.
- In Exchange Server, verifica che all’account sia stato concesso esplicitamente l’accesso all’uso di “Get-Mailbox” o che sia stato aggiunto a un ruolo che consente l’operazione, ad es. Recipient Management.
Risultati incompleti o imprevisti
Il cmdlet “Get-Mailbox” viene eseguito senza errori ma restituisce risultati incompleti o inattesi.
Passaggi di troubleshooting
- Usa il parametro -ResultSize per assicurarti che vengano interrogati tutti i mailbox previsti. Il valore predefinito potrebbe non restituire tutti i mailbox.
- Affina la query con il parametro -Filter per assicurarti che rispecchi accuratamente i criteri che vuoi applicare.
- Verifica se esistono opzioni di filtraggio lato server o lato client che potrebbero limitare i risultati.
- Per Exchange Online, le politiche di throttling talvolta possono ritardare l’esecuzione dei comandi; valuta di riprovare dopo un breve intervallo.
Problemi di prestazioni
Il cmdlet impiega molto tempo per l’esecuzione, soprattutto in ambienti con un numero elevato di mailbox.
Passaggi di troubleshooting
- Limita l’ambito della query utilizzando -ResultSize, -Filter o parametri specifici come -OrganizationalUnit per restringere i risultati e migliorare le prestazioni.
- Valuta di suddividere l’attività in batch più piccoli se stai elaborando un grande numero di mailbox.
- Per Exchange Online, assicurati di usare la versione più recente del Exchange Online Management Module, ottimizzata per grandi set di dati.
Problemi di connettività
Rilevi problemi di connettività quando tenti di utilizzare “Get-Mailbox” in Exchange Online.
Passaggi di troubleshooting
- Assicurati che la tua connessione Internet sia stabile.
- Verifica che non siano in corso incidenti di servizio che influenzano Exchange Online controllando il Service Health Dashboard di Office 365.
- Ristabilisci la sessione PowerShell con Exchange Online usando Connect-ExchangeOnline, perché timeout di sessione o cambi di rete possono interrompere la connettività.
Restrizioni della Execution Policy degli script
Incontri restrizioni relative alla Execution Policy di PowerShell quando esegui script che includono il cmdlet “Get-Mailbox”.
Passaggi di troubleshooting
- Usa Get-ExecutionPolicy per verificare la policy corrente.
- Se necessario, modifica la policy usando Set-ExecutionPolicy con un livello appropriato (ad es. RemoteSigned) che consenta l’esecuzione dello script, tenendo conto delle implicazioni di sicurezza.
Windows PowerShell Scripting Tutorial (PDF) for Beginners
Learn MoreFAQs
Perché Get-Mailbox non è riconosciuto in PowerShell?
L’errore “Get-Mailbox non riconosciuto” si verifica perché il modulo Exchange Management Shell non è caricato nella tua sessione PowerShell. Questo cmdlet è specifico di Exchange Server e richiede il modulo appropriato per funzionare. Per Exchange Online, devi installare e connetterti con il modulo Exchange Online PowerShell V2:
Install-Module ExchangeOnlineManagement
Per Exchange on-premises, assicurati di eseguire PowerShell dalla Exchange Management Shell o di aver importato il modulo di Exchange. Dopo l’installazione, connettiti usando:
# For cloud environments
Connect-ExchangeOnline
# For on-premises
Import-Module Exchange
Inoltre, il nome del cmdlet differisce tra le versioni: Exchange Online usa Get-EXOMailbox per migliori prestazioni in ambienti di grandi dimensioni, mentre l’Exchange tradizionale usa Get-Mailbox.
Come connettersi a Exchange Online PowerShell?
La connessione a Exchange Online PowerShell richiede il modulo Exchange Online Management e un’autenticazione corretta. Per prima cosa, installa il modulo in una sessione di PowerShell con privilegi elevati:
Connect-ExchangeOnline
Poi connettiti:
Connect-ExchangeOnline -UserPrincipalName youradmin@domain.com -ShowProgress
Questo richiederà le credenziali di Office 365. Per maggiore sicurezza, usa l’autenticazione moderna: la MFA viene gestita automaticamente durante il processo di connessione. Una volta connesso, puoi utilizzare Get-EXOMailbox al posto di Get-Mailbox per prestazioni migliori in ambienti di grandi dimensioni. Disconnetti sempre al termine:
Disconnect-ExchangeOnline
Questo metodo di connessione fornisce pieno accesso amministrativo alle funzioni di gestione di Exchange Online.
Come verificare i permessi di un mailbox con PowerShell?
La verifica delle autorizzazioni di un mailbox richiede la combinazione dei cmdlet Get-Mailbox e Get-MailboxPermission per ottenere informazioni di accesso complete. Usa questo comando per vedere chi ha accesso a un mailbox specifico:
Get-MailboxPermission -Identity username@domain.com
Questo mostra i permessi Full Access, Send As e Send on Behalf. Per un’analisi in massa, canalizza i risultati di Get-Mailbox in Get-MailboxPermission:
Get-Mailbox | Get-MailboxPermission
L’output mostra AccessRights, User e Deny per ogni voce di autorizzazione. Per individuare privilegi eccessivi, filtra i risultati usando Where-Object:
Get-MailboxPermission -Identity username@domain.com | Where-Object {$_.User -notlike "NT AUTHORITY*"}
Questo approccio fornisce visibilità su chi può accedere a quali dati dei mailbox, fondamentale per mantenere il principio del minimo privilegio e la conformità.
Come esportare l’elenco dei mailbox in CSV?
L’esportazione degli elenchi di mailbox in CSV combina Get-Mailbox con Export-Csv per report completi. Per un’esportazione di base:
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, RecipientTypeDetails | Export-CSV -Path "C:\MailboxList.csv" -NoTypeInformation
Per report dettagliati, includi proprietà aggiuntive:
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, TotalItemSize, ProhibitSendQuota, LastLogonTime | Export-CSV -Path "C:\DetailedMailboxList.csv" -NoTypeInformation
Il cmdlet Select-Object controlla quali attributi del mailbox compaiono nell’esportazione, mentre Export-Csv gestisce la formattazione del file. Per ambienti di grandi dimensioni, considera l’uso di Get-EXOMailbox in Exchange Online per prestazioni migliori. Aggiungi filtri per esportare tipi specifici di mailbox:
Get-Mailbox | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"} | Export-CSV -Path "C:\UserMailboxes.csv" -NoTypeInformation
Questo metodo crea file di dati strutturati perfetti per report di conformità, capacity planning e audit di sicurezza.
Get-Mailbox vs Get-EXOMailbox: quale usare?
Get-EXOMailbox è il sostituto moderno di Get-Mailbox negli ambienti Exchange Online, offrendo prestazioni significativamente migliori per organizzazioni di grandi dimensioni.
Usa Get-EXOMailbox quando lavori con Exchange Online perché è ottimizzato per operazioni su scala cloud e gestisce automaticamente la paginazione. La sintassi rimane quasi identica, ma Get-EXOMailbox elabora i risultati più velocemente e utilizza meno memoria.
Per Exchange Server on-premises, devi usare Get-Mailbox, poiché Get-EXOMailbox non esiste nella Exchange Management Shell tradizionale.
Negli ambienti ibridi, usa il cmdlet appropriato per ciascun ambiente: Get-EXOMailbox per i mailbox nel cloud e Get-Mailbox per quelli on-premises. Microsoft raccomanda Get-EXOMailbox per tutti i nuovi script destinati a Exchange Online e la migrazione graduale degli script esistenti per ottenere prestazioni migliori e compatibilità futura.
Condividi su
Scopri di più
Informazioni sull'autore
Kevin Horvatin
Lead Software Architect
Kevin Horvatin è Lead Software Architect presso Netwrix ed è responsabile per Netwrix Privilege Secure. Sviluppatore software da oltre 20 anni, lavora con PowerShell e C# da quando sono stati introdotti.
Scopri di più su questo argomento
Powershell Elimina il file se esiste
PowerShell Write to File: "Out-File" e Tecniche di Output del File
Come creare nuovi utenti di Active Directory con PowerShell
Come eseguire uno script PowerShell
Cos'è PowerShell? Una guida completa alle sue funzionalità e utilizzi