Condividi tramite


Informazioni sul modulo Exchange Online PowerShell

Il modulo Exchange Online PowerShell usa l'autenticazione moderna e funziona con o senza l'autenticazione a più fattori (MFA) per la connessione a tutti gli ambienti PowerShell correlati a Exchange in Microsoft 365: Exchange Online PowerShell, PowerShell per la sicurezza & conformità e Exchange Online Protection autonomo (EOP) PowerShell.

Per istruzioni di connessione con il modulo, vedere gli articoli seguenti:

Il resto di questo articolo spiega come funziona il modulo, come installare e gestire il modulo e i cmdlet ottimizzati di Exchange Online disponibili nel modulo.

Consiglio

La versione 3.0.0 e successive (2022) è nota come modulo Exchange Online PowerShell V3 (abbreviato come modulo EXO V3). La versione 2.0.5 e precedenti (2021) era nota come modulo Exchange Online PowerShell V2 (abbreviato come modulo EXO V2).

Connessioni API REST nel modulo EXO V3

Exchange Online PowerShell e Conformità & sicurezza di PowerShell ora usano le connessioni API REST per tutti i cmdlet:

  • Exchange Online PowerShell: modulo EXO V3 v3.0.0 o versione successiva.
  • PowerShell per la sicurezza & conformità: modulo EXO V3 v3.2.0 o versione successiva.

Le connessioni API REST richiedono i moduli PowerShellGet e PackageManagement. Per altre informazioni, vedere PowerShellGet per le connessioni basate su REST in Windows.

I cmdlet nelle connessioni API REST presentano i vantaggi seguenti rispetto alle controparti cronologiche:

  • Più sicuro: supporto predefinito per l'autenticazione moderna e nessuna dipendenza dalla sessione remota di PowerShell. PowerShell nel computer client non richiede l'autenticazione di base in WinRM.
  • Più affidabile: gli errori temporanei usano tentativi predefiniti, quindi gli errori o i ritardi vengono ridotti al minimo. Ad esempio:
    • Errori dovuti a ritardi di rete.
    • Ritardi dovuti a query di grandi dimensioni che richiedono molto tempo per il completamento.
  • Prestazioni migliori: le connessioni API REST evitano di configurare uno spazio di esecuzione di PowerShell.

I vantaggi dei cmdlet nelle connessioni API REST sono descritti nella tabella seguente:

  Cmdlet di PowerShell remoti Cmdlet Get-EXO* Cmdlet dell'API REST
Sicurezza Meno sicuro Sicurezza elevata Sicurezza elevata
Prestazioni Prestazioni ridotte Elevate prestazioni Prestazioni medie
Affidabilità Meno affidabile Altamente affidabile Altamente affidabile
Funzionalità Tutti i parametri e le proprietà di output disponibili Parametri limitati e proprietà di output disponibili Tutti i parametri e le proprietà di output disponibili

I cmdlet dell'API REST hanno gli stessi nomi di cmdlet e funzionano esattamente come gli equivalenti di PowerShell remoti, quindi non è necessario aggiornare i nomi o i parametri dei cmdlet negli script precedenti.

Consiglio

Il cmdlet Invoke-Command non funziona nelle connessioni API REST. Per le alternative, vedere Soluzioni alternative per scenari di Invoke-Command nelle connessioni API REST.

Le connessioni di autenticazione di base (PowerShell remoto) sono deprecate in PowerShell Exchange Online PowerShell e Sicurezza & Conformità. Per altre informazioni, vedere qui e qui.

Alcuni cmdlet in Exchange Online PowerShell sono stati aggiornati con il commutatore UseCustomRouting sperimentale nelle connessioni API REST. Questa opzione instrada il comando direttamente al server delle cassette postali necessario e potrebbe migliorare le prestazioni generali. Usare l'opzione UseCustomRouting in modo sperimentale.

  • Quando si usa l'opzione UseCustomRouting, è possibile usare solo i valori seguenti per l'identità della cassetta postale:

    • Nome dell'entità utente (UPN)
    • Indirizzo di posta elettronica
    • GUID cassetta postale
  • L'opzione UseCustomRouting è disponibile solo nei cmdlet di PowerShell Exchange Online seguenti nelle connessioni API REST:

    • Get-Clutter
    • Get-FocusedInbox
    • Get-InboxRule
    • Get-MailboxAutoReplyConfiguration
    • Get-MailboxCalendarFolder
    • Get-MailboxFolderPermission
    • Get-MailboxFolderStatistics
    • Get-MailboxMessageConfiguration
    • Get-MailboxPermission
    • Get-MailboxRegionalConfiguration
    • Get-MailboxStatistics
    • Get-MobileDeviceStatistics
    • Get-UserPhoto
    • Remove-CalendarEvents
    • Set-Clutter
    • Set-FocusedInbox
    • Set-MailboxRegionalConfiguration
    • Set-UserPhoto
  • Usare il cmdlet Get-ConnectionInformation per ottenere informazioni sulle connessioni DELL'API REST a PowerShell Exchange Online PowerShell e security & Compliance. Questo cmdlet è obbligatorio perché il cmdlet Get-PSSession in Windows PowerShell non restituisce informazioni per le connessioni API REST.

    Gli scenari in cui è possibile usare Get-ConnectionInformation sono descritti nella tabella seguente:

    Scenario Output previsto
    Eseguire dopo i comandi Connect-ExchangeOnline o Connect-IPPSSession per le connessioni API REST. Restituisce un oggetto informazioni di connessione.
    Eseguire dopo più comandi Connect-ExchangeOnline o Connect-IPPSSession per le connessioni API REST. Restituisce una raccolta di oggetti informazioni di connessione.
  • Usare l'opzione SkipLoadingFormatData nel cmdlet Connect-ExchangeOnline per evitare il caricamento dei dati di formato e per eseguire i comandi Connect-ExchangeOnline più velocemente.

  • I cmdlet supportati dall'API REST hanno un timeout di 15 minuti, che può influire sulle operazioni bulk. Ad esempio, potrebbe verificarsi il timeout del comando Update-DistributionGroupMember seguente per aggiornare 10.000 membri di un gruppo di distribuzione:

    $Members = @("member1","member2",...,"member10000")
    
    Update-DistributionGroupMember -Identity DG01 -Members $Members
    

    Usare invece il comando Update-DistributionGroupMember per aggiornare meno membri e quindi aggiungere singolarmente i membri rimanenti usando un comando Add-DistributionGroupMember . Ad esempio:

    Update-DistributionGroupMember -Identity DG01 -Members $Members[0..4999]
    
    $Remaining = $Members[-5000..-1]
    
    foreach ($Member in $Remaining)
    
    {
       Add-DistributionGroupMember -Identity DG01 -Member $Member
    }
    

Per altre informazioni sulle novità del modulo EXO V3, vedere la sezione Note sulla versione più avanti in questo articolo.

Segnalare bug e problemi per le versioni di anteprima del modulo powershell Exchange Online

Consiglio

Per le versioni a disponibilità generale del modulo, non usare l'indirizzo di posta elettronica seguente per segnalare i problemi. I messaggi relativi alle versioni ga del modulo non risponderanno. Aprire invece un ticket di supporto.

Per le versioni di anteprima del modulo, usare exocmdletpreview[at]service[dot]microsoft[dot]com per segnalare eventuali problemi riscontrati. Assicurarsi di includere i file di log nel messaggio di posta elettronica. Per generare i file di log, sostituire <Path> con una cartella di output e quindi eseguire il comando seguente:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path> -LogLevel All

Cmdlet nel modulo powershell Exchange Online

Il modulo EXO contiene nove cmdlet Get-EXO* esclusivi ottimizzati per la velocità negli scenari di recupero dati in blocco (migliaia e migliaia di oggetti) in Exchange Online PowerShell. I cmdlet migliorati nel modulo sono elencati nella tabella seguente:

Cmdlet del modulo EXO Cmdlet precedente correlato
Get-EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
Get-EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics

Consiglio

Se si aprono più connessioni a Exchange Online PowerShell nella stessa finestra, i cmdlet Get-EXO* vengono sempre associati all'ultima connessione (più recente) Exchange Online PowerShell. Eseguire il comando seguente per trovare la sessione dell'API REST in cui vengono eseguiti i cmdlet Get-EXO* : Get-ConnectionInformation | Where-Object {$_.ConnectionUsedForInbuiltCmdlets -eq $true}.

I cmdlet correlati alla connessione nel modulo sono elencati nella tabella seguente:

Cmdlet del modulo EXO Cmdlet precedente correlato Commenti
Connect-ExchangeOnline Connect-EXOPSSession nella versione 1 del modulo
oppure
Nuovo PSSession
Connect-IPPSSession Connect-IPPSSession nella versione 1 del modulo
Disconnect-ExchangeOnline Rimuovi PSSession
Get-ConnectionInformation Get-PSSession Disponibile nella versione 3.0.0 o successiva.

Consiglio

L'uso frequente dei cmdlet Connect-ExchangeOnline e Disconnect-ExchangeOnline in una singola sessione o script di PowerShell potrebbe causare una perdita di memoria. Il modo migliore per evitare questo problema consiste nell'usare il parametro CommandName nel cmdlet Connect-ExchangeOnline per limitare i cmdlet utilizzati nella sessione.

Nella tabella seguente sono elencati vari cmdlet Exchange Online che si trovano nel modulo:

Cmdlet Commenti
Get-DefaultTenantBriefingConfig Disponibile nella versione 3.2.0 o successiva.
Set-DefaultTenantBriefingConfig Disponibile nella versione 3.2.0 o successiva.
Get-DefaultTenantMyAnalyticsFeatureConfig Disponibile nella versione 3.2.0 o successiva.
Set-DefaultTenantMyAnalyticsFeatureConfig Disponibile nella versione 3.2.0 o successiva.
Get-MyAnalyticsFeatureConfig Disponibile nella versione 2.0.4 o successiva.
Set-MyAnalyticsFeatureConfig Disponibile nella versione 2.0.4 o successiva.
Get-UserBriefingConfig Sostituito da Get-MyAnalyticsFeatureConfig.
Set-UserBriefingConfig Sostituito da Set-MyAnalyticsFeatureConfig.
Get-VivaInsightsSettings Disponibile nella versione 2.0.5 successiva.
Set-VivaInsightsSettings Disponibile nella versione 2.0.5 successiva.
Get-VivaModuleFeature Disponibile nella versione 3.2.0 o successiva.
Get-VivaModuleFeatureEnablement Disponibile nella versione 3.2.0 o successiva.
Add-VivaModuleFeaturePolicy Disponibile nella versione 3.2.0 o successiva.
Get-VivaModuleFeaturePolicy Disponibile nella versione 3.2.0 o successiva.
Remove-VivaModuleFeaturePolicy Disponibile nella versione 3.2.0 o successiva.
Update-VivaModuleFeaturePolicy Disponibile nella versione 3.2.0 o successiva.
Add-VivaOrgInsightsDelegatedRole Disponibile nella versione 3.7.0-Preview1 o successiva.
Get-VivaOrgInsightsDelegatedRole Disponibile nella versione 3.7.0-Preview1 o successiva.
Remove-VivaOrgInsightsDelegatedRole Disponibile nella versione 3.7.0-Preview1 o successiva.

Installare e gestire il modulo Exchange Online PowerShell

Scaricare il modulo dalla raccolta di PowerShell all'indirizzo https://www.powershellgallery.com/packages/ExchangeOnlineManagement/.

Le procedure descritte in questa sezione illustrano come installare, aggiornare e disinstallare il modulo.

Sistemi operativi supportati per il modulo powershell Exchange Online

Le versioni più recenti del modulo sono ufficialmente supportate in PowerShell 7 in Windows, Linux e Apple macOS.

In particolare, la versione 2.0.4 o successiva è supportata in PowerShell 7.0.3 o versioni successive.

Per altre informazioni su PowerShell 7, vedere Annuncio di PowerShell 7,0.

Apple macOS

Il modulo è supportato nelle versioni seguenti di macOS:

  • MacOS 11 Big Sur o versioni successive
  • macOS 10.15 Catalina
  • macOS 10.14 Mojave

Per istruzioni sull'installazione di PowerShell 7 in macOS, vedere Installazione di PowerShell in macOS.

Come descritto nell'articolo sull’installazione, è necessario installare OpenSSL, obbligatorio per WSMan.

Dopo aver installato PowerShell 7 e OpenSSL, eseguire la procedura seguente:

  1. Eseguire PowerShell come utente avanzato: sudo pwsh

  2. Nella sessione dell'utente con privilegi avanzati di PowerShell, eseguire i seguenti comandi:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Se richiesto, accettare PSGallery come origine per i cmdlet.

È ora possibile eseguire i normali prerequisiti di PowerShell e installare il modulo Exchange Online PowerShell.

Linux

Il modulo è ufficialmente supportato nelle distribuzioni seguenti di Linux:

  • Ubuntu 24.04 LTS
  • Ubuntu 20.04 LTS
  • Ubuntu 18.04 LTS

Per istruzioni sull'installazione di PowerShell 7 in Linux, vedere Installazione di PowerShell in Linux.

Dopo aver installato PowerShell 7, eseguire la procedura seguente:

  1. Eseguire PowerShell come utente avanzato: sudo pwsh

  2. Nella sessione dell'utente con privilegi avanzati di PowerShell, eseguire i seguenti comandi:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Se richiesto, accettare PSGallery come origine per i cmdlet.

È ora possibile eseguire i normali prerequisiti di PowerShell e installare il modulo Exchange Online PowerShell.

Nota

Se ci si connette a Exchange Online PowerShell da una rete dietro un server proxy, il modulo EXO V2 (versione 2.0.5 o precedente) non funziona in Linux. È necessario usare il modulo EXO V3 (v3.0.0 o versione successiva) in Linux per connettersi da una rete dietro un server proxy.

Windows

Tutte le versioni del modulo sono supportate in Windows PowerShell 5.1.

PowerShell 7 in Windows richiede la versione 2.0.4 o successiva.

La versione 2.0.5 o successiva del modulo richiede la connessione di Microsoft .NET Framework 4.7.2 o versione successiva. In caso contrario, viene visualizzato un System.Runtime.InteropServices.OSPlatform errore. Questo requisito non deve essere un problema nelle versioni correnti di Windows. Per altre informazioni sulle versioni di Windows che supportano .NET Framework 4.7.2, vedere questo articolo.

Windows PowerShell requisiti e il supporto dei moduli nelle versioni precedenti di Windows sono descritti nell'elenco seguente:

  • Windows 8.1¹

  • Windows Server 2012 o Windows Server 2012 R2¹

  • Windows 7 Service Pack 1 (SP1)² ³ ⁴

  • Windows Server 2008 R2 SP1² ³ ⁴

  • ¹ PowerShell 7 in questa versione di Windows richiede l'Windows 10 CRT (Universal C Runtime).

  • ² Il supporto per questa versione di Windows è terminato ed è ora supportato solo nelle macchine virtuali di Azure.

  • ³ Questa versione di Windows supporta solo la versione 2.0.3 o versioni precedenti del modulo.

  • ⁴ Windows PowerShell 5.1 in questa versione di Windows richiede .NET Framework 4.5 o versioni successive e il Windows Management Framework 5.1. Per altre informazioni, vedere Windows Management Framework 5.1.

Prerequisiti per il modulo powershell Exchange Online

Impostare i criteri di esecuzione di PowerShell su RemoteSigned

Consiglio

Le impostazioni in questa sezione si applicano a tutte le versioni di PowerShell in tutti i sistemi operativi.

PowerShell deve essere configurato per poter eseguire gli script e, per impostazione predefinita, non lo è. Durante il tentativo di connessione viene visualizzato l'errore seguente:

Impossibile caricare i file perché l'esecuzione di script è disabilitata nel sistema. Specificare un certificato valido per la firma dei file.

Per richiedere che tutti gli script di PowerShell scaricati da internet siano firmati da un editore attendibile, eseguire il seguente comando in una finestra di PowerShell elevata (una finestra di PowerShell aperta selezionando Esegui come amministratore):

Set-ExecutionPolicy RemoteSigned

Per altre informazioni sui criteri di esecuzione, vedere Informazioni sui criteri di esecuzione.

Attivare l'autenticazione di base in WinRM

Importante

Le connessioni API REST non richiedono l'autenticazione di base in WinRM come descritto in questa sezione. Come descritto in precedenza in questo articolo, l'accesso di autenticazione di base (PowerShell remoto) a Exchange Online PowerShell e sicurezza & conformità PowerShell sono deprecati. Le informazioni contenute in questa sezione vengono mantenute per scopi cronologici.

Per le connessioni Remote PowerShell che non usano l'API REST (che ora sono impossibili), WinRM deve consentire l'autenticazione di base. Non viene inviata la combinazione di nome utente e password. L'intestazione di autenticazione di base è necessaria per inviare il token OAuth della sessione, perché l'implementazione lato client di WinRM non supporta OAuth.

Per verificare che l'autenticazione di base sia abilitata per WinRM, eseguire il comando seguente in un prompt dei comandi o Windows PowerShell:

Nota

I comandi seguenti richiedono l'abilitazione di WinRM. Per abilitare WinRM, eseguire il comando seguente: winrm quickconfig.

winrm get winrm/config/client/auth

Se il valore Basic = truenon viene visualizzato, è necessario eseguire uno dei comandi seguenti per abilitare l'autenticazione di base per WinRM:

  • In un prompt dei comandi:

    winrm set winrm/config/client/auth @{Basic="true"}
    
  • In Windows PowerShell:

    winrm set winrm/config/client/auth '@{Basic="true"}'
    
  • In Windows PowerShell per modificare il registro:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
    

Se l'autenticazione di base per WinRM è disabilitata, si verifica uno degli errori seguenti quando si tenta di connettersi usando una connessione di autenticazione di base (PowerShell remota):

Client Gestione remota Windows: impossibile elaborare la richiesta. L'autenticazione di base è attualmente disabilitata nella configurazione del client. Modificare la configurazione del client e riprovare.

La creazione della sessione di PowerShell non è riuscita con OAuth.

PowerShellGet per le connessioni API REST in Windows

Le connessioni API REST in Windows richiedono il modulo PowerShellGet e, per dipendenza, il modulo PackageManagement. La considerazione per questi moduli è più importante per PowerShell 5.1 che per PowerShell 7, ma tutte le versioni di PowerShell traggono vantaggio dall'installazione delle versioni più recenti dei moduli. Per istruzioni di installazione e aggiornamento, vedere Installazione di PowerShellGet in Windows.

Consiglio

Le versioni beta dei moduli PackageManagement o PowerShellGet potrebbero causare problemi di connessione. In caso di problemi di connessione, verificare di non avere versioni beta dei moduli installati eseguendo il comando seguente: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions.

Se PowerShellGet non è installato quando si tenta di creare una connessione API REST, viene visualizzato l'errore seguente quando si tenta di connettersi:

Impossibile trovare un cmdlet Update-Manifest

Installare il modulo Exchange Online PowerShell

Per installare il modulo per la prima volta, seguire questa procedura:

  1. Installare o aggiornare il modulo PowerShellGet come descritto in Installazione di PowerShellGet.

  2. Chiudere e riaprire la finestra di Windows PowerShell.

  3. È ora possibile usare il cmdlet Install-Module per installare il modulo dal PowerShell Gallery. In genere, si vuole la versione pubblica più recente del modulo, ma è anche possibile installare una versione di anteprima, se disponibile.

    • Per installare la versione pubblica più recente del modulo, eseguire uno dei comandi seguenti:

      • In una finestra di PowerShell con privilegi elevati (tutti gli utenti):

        Install-Module -Name ExchangeOnlineManagement
        
      • Solo per l'account utente corrente:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Per visualizzare le versioni di anteprima disponibili del modulo, eseguire il comando seguente:

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • Per installare la versione di anteprima più recente disponibile del modulo, eseguire uno dei comandi seguenti:

      • In una finestra di PowerShell con privilegi elevati (tutti gli utenti):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • Solo per l'account utente corrente:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • Per installare una versione di anteprima specifica del modulo, sostituire <PreviewVersion> con il valore necessario ed eseguire uno dei comandi seguenti:

      • In una finestra di PowerShell con privilegi elevati (tutti gli utenti):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • Solo per l'account utente corrente:

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
        

    Al termine, immettere Y per accettare il contratto di licenza.

Per informazioni dettagliate sulla sintassi e sul parametro, vedere Installa-modulo .

Aggiornare il modulo Exchange Online PowerShell

Se il modulo è già installato nel computer, è possibile usare le procedure descritte in questa sezione per aggiornare il modulo.

  1. Per visualizzare la versione del modulo attualmente installata e in cui è installata, eseguire il comando seguente:

    Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
    

    Se il modulo è installato in C:\Programmi\WindowsPowerShell\Modules, viene installato per tutti gli utenti. Se il modulo è installato nella cartella Documenti, viene installato solo per l'account utente corrente.

  2. È possibile usare il cmdlet Update-Module per aggiornare il modulo dal PowerShell Gallery. In genere, si vuole la versione pubblica più recente del modulo, ma è anche possibile eseguire l'aggiornamento a una versione di anteprima, se disponibile.

    • Per eseguire l'aggiornamento alla versione pubblica più recente del modulo, eseguire uno dei comandi seguenti in base alla modalità di installazione originale del modulo (tutti gli utenti e solo per l'account utente corrente):

      • In una finestra di PowerShell con privilegi elevati (tutti gli utenti):

        Update-Module -Name ExchangeOnlineManagement
        
      • Solo per l'account utente corrente:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Per eseguire l'aggiornamento a una versione di anteprima del modulo, è possibile eseguire l'aggiornamento alla versione di anteprima più recente disponibile oppure usare il parametro RequiredVersion per eseguire l'aggiornamento a una versione di anteprima specifica.

      • Per visualizzare le versioni di anteprima disponibili del modulo, eseguire il comando seguente:

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • Per eseguire l'aggiornamento alla versione di anteprima più recente disponibile del modulo, eseguire uno dei comandi seguenti:

        • In una finestra di PowerShell con privilegi elevati (tutti gli utenti):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • Solo per l'account utente corrente:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • Per eseguire l'aggiornamento a una versione di anteprima specifica del modulo, sostituire <PreviewVersion> con il valore necessario ed eseguire uno dei comandi seguenti:

        • In una finestra di PowerShell con privilegi elevati (tutti gli utenti):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • Solo per l'account utente corrente:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
          

    Al termine, immettere Y per accettare il contratto di licenza.

  3. Per verificare l'esito dell'aggiornamento, eseguire i comandi seguenti per verificare le informazioni sulla versione del modulo installato:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

Per informazioni dettagliate sulla sintassi e sul parametro, vedere Aggiorna-modulo .

Risolvere i problemi relativi all'installazione del modulo Exchange Online PowerShell

  • Viene visualizzato uno dei seguenti errori:

    Il modulo specificato 'ExchangeOnlineManagement' con PowerShellGetFormatVersion '<version>' non è supportato dalla versione corrente di PowerShellGet. Recuperare l'ultima versione del modulo PowerShellGet per installare questo modulo 'ExchangeOnlineManagement'.

    AVVISO: impossibile scaricare dall'URI 'https://go.microsoft.com/fwlink/?LinkID=627338& da clcid=0x409' a ''.

    AVVISO: non è possibile scaricare l'elenco dei provider disponibili. Controllare la connessione Internet.

    Aggiornare l'installazione del modulo PowerShellGet alla versione più recente, come descritto in Installazione di PowerShellGet. Assicurarsi di chiudere e riaprire la finestra di PowerShell prima di provare ad aggiornare nuovamente il modulo ExchangeOnlineManagement.

  • Viene visualizzato il seguente errore:

    Non è stata trovata alcuna corrispondenza per i criteri di ricerca e il nome del modulo specificati 'ExchangeOnlineManagement'. Provare a eseguire Get-PSRepository per visualizzare tutti i repository di moduli registrati disponibili.

    Il repository predefinito per i moduli di PowerShell non è impostato su PSGallery. Per correggere l'errore, eseguire il comando seguente:

    Register-PSRepository -Default
    
  • A partire da aprile 2020, la raccolta PowerShell supporta solo le connessioni con TLS 1.2 o versione successiva. Per altre informazioni, vedere PowerShell Gallery, supporto TLS.

    Per controllare le impostazioni correnti in Microsoft .NET Framework, eseguire il comando seguente in Windows PowerShell:

    [Net.ServicePointManager]::SecurityProtocol
    

    Come descritto nell'articolo del supporto TLS della PowerShell gallery, per cambiare temporaneamente il protocollo di sicurezza TLS 1.2 per installare i moduli PowerShellGet o ExchangeOnlineManagement, eseguire il comando seguente in Windows PowerShell prima di installare il modulo:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    

    Per abilitare permanentemente la crittografia avanzata in Microsoft .NET Framework versione 4.x o successiva, eseguire uno dei comandi seguenti in base all'architettura di Windows:

    • x64:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      
    • x86:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      

    Per altre informazioni, vedereSchUseStrongCrypto.

Disinstallare il modulo Exchange Online PowerShell

Per visualizzare la versione del modulo attualmente installata e in cui è installata, eseguire il comando seguente:

Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation

Se il modulo è installato in C:\Programmi\WindowsPowerShell\Modules, è stato installato per tutti gli utenti. Se il modulo è installato nella cartella Documenti, è stato installato solo per l'account utente corrente.

Per disinstallare il modulo, eseguire il comando seguente in uno degli ambienti seguenti in base alla modalità di installazione originale del modulo (tutti gli utenti e solo per l'account utente corrente):

  • In una finestra di PowerShell con privilegi elevati (tutti gli utenti).

  • In una normale finestra di PowerShell (solo per l'account utente corrente).

    Uninstall-Module -Name ExchangeOnlineManagement
    

Per informazioni dettagliate sulla sintassi e sul parametro, vedere Disinstalla-modulo .

Proprietà e set di proprietà nel modulo powershell Exchange Online

I cmdlet Exchange Online tradizionali restituiscono tutte le proprietà dell'oggetto possibili, incluse molte proprietà vuote o non interessanti. Questo comportamento causa prestazioni degradate (ulteriore calcolo del server e carico di rete aggiunto). La restituzione di tutte le proprietà nell'output dei cmdlet è raramente necessaria.

I cmdlet Get-EXO* nel modulo hanno proprietà di output categorizzate. Invece di assegnare a tutte le proprietà la stessa importanza e restituirle in tutti gli scenari, sono stati categorizzati proprietà correlate specifiche in set di proprietà. Questi set di proprietà sono bucket di due o più proprietà correlate nel cmdlet.

I cmdlet Get-EXO* più grandi e usati usano set di proprietà:

In questi cmdlet, i set di proprietà sono controllati dai parametri seguenti:

È possibile usare i parametriPropertySet e Properties nello stesso comando.

È stato incluso anche un set di proprietà Minimum che include un set minimo di proprietà obbligatorie per l'output del cmdlet, ad esempio le proprietà identity. Le proprietà nei set di proprietà Minimum sono descritte anche in Set di proprietà in Exchange Online cmdlet del modulo PowerShell.

  • Se non si usano i parametri PropertySets o Properties, si ottengono automaticamente le proprietà nel set di proprietà Minimum.
  • Se si usano i parametri PropertySets o Properties, si ottengono le proprietà specificate e le proprietà nel set Minimum.

In entrambi i casi, l'output del cmdlet contiene molte meno proprietà e i risultati vengono restituiti molto più velocemente.

Ad esempio, dopo la connessione a Exchange Online PowerShell, nell'esempio seguente vengono restituite solo le proprietà nella proprietà Minimum impostata per le prime 10 cassette postali.

Get-EXOMailbox -ResultSize 10

Al contrario, l'output dello stesso comando Get-Mailbox restituirà almeno 230 proprietà per ognuna delle prime 10 cassette postali.

Nota

Anche se il parametro PropertySets accetta il valore All, è sconsigliabile l’utilizzo di questo valore per recuperare tutte le proprietà perché rallenta il comando e riduce l'affidabilità. Usare sempre i parametri PropertySets e Properties per recuperare il numero minimo di proprietà richiesti per lo scenario specifico..

Per altre informazioni sui filtri nel modulo, vedere Filtri nel modulo Exchange Online PowerShell.

Note sulla versione

Se non diversamente specificato, la versione corrente del modulo Exchange Online PowerShell contiene tutte le funzionalità delle versioni precedenti.

Versione corrente

Versione 3.6.0

  • Get-VivaModuleFeature ora restituisce informazioni sui tipi di identità per cui la funzionalità supporta la creazione di criteri, ad esempio utenti, gruppi o l'intero tenant.
  • I cmdlet per Viva gestione degli accessi alle funzionalità ora gestiscono i problemi relativi alle attestazioni di valutazione dell'accesso continuo.
  • Aggiunta della correzione per il problema di compatibilità con il modulo Microsoft.Graph.

Versioni precedenti

Versione 3.5.1

  • Correzioni di bug in Get-EXOMailboxPermission e Get-EXOMailbox.
  • Il modulo è stato aggiornato per l'esecuzione in .NET 8, sostituendo la versione precedente basata su .NET 6.
  • Miglioramenti in Add-VivaModuleFeaturePolicy.

Versione 3.5.0

  • Nuovo cmdlet Get-VivaFeatureCategory .
  • Aggiunta del supporto per le operazioni dei criteri a livello di categoria in Viva Feature Access Management (VFAM).
  • Nuova proprietà IsFeatureEnabledByDefault nell'output di Get-VivaModuleFeaturePolicy. Il valore di questa proprietà mostra lo stato di abilitazione predefinito per gli utenti nel tenant quando non sono stati creati criteri tenant o utente/gruppo.

Versione 3.4.0

  • Correzioni di bug in Connect-ExchangeOnline, Get-EXORecipientPermission e Get-EXOMailboxFolderPermission.
  • Il parametro SigningCertificate in Connect-ExchangeOnline supporta ora la modalità CLM (Constrained Language Mode).

Versione 3.3.0

  • Parametro SkipLoadingCmdletHelp in Connect-ExchangeOnline per supportare il caricamento dei file della Guida dei cmdlet.
  • La variabile EXO_LastExecutionStatus globale è disponibile per controllare lo stato dell'ultimo cmdlet eseguito.
  • Correzioni di bug in Connect-ExchangeOnline e Connect-IPPSSession.
  • Parametro IsUserControlEnabled in Add-VivaModuleFeaturePolicy e Update-VivaModuleFeaturePolicy per supportare l'abilitazione dei controlli utente in base ai criteri per le funzionalità di cui viene eseguito l'onboarding in Viva gestione degli accessi alle funzionalità.

Versione 3.2.0

  • Nuovi cmdlet:
    • Get-DefaultTenantBriefingConfig e Set-DefaultTenantBriefingConfig.
    • Get-DefaultTenantMyAnalyticsFeatureConfig e Set-DefaultTenantMyAnalyticsFeatureConfig.
    • Get-VivaModuleFeature, Get-VivaModuleFeatureEnablement, Add-VivaModuleFeaturePolicy, Get-VivaModuleFeaturePolicy, Remove-VivaModuleFeaturePolicy e Update-VivaModuleFeaturePolicy.
  • Supporto della connessione API REST per PowerShell sicurezza & conformità.
  • Parametro ConnectionId in Get-ConnectionInformation e Disconnect-ExchangeOnline:
    • Ottenere informazioni di connessione per connessioni API REST specifiche.
    • Disconnessione selettiva per le connessioni API REST.
  • Il parametro SigningCertificate in Connect-ExchangeOnline consente di firmare i file di formato (*. Format.ps1xml) o file di modulo script (con estensione psm1) nel modulo temporaneo creato da Connect-ExchangeOnline con un certificato client da usare in tutti i criteri di esecuzione di PowerShell.
  • Correzioni di bug in Connect-ExchangeOnline.

Versione 3.1.0

  • Parametro AccessToken disponibile in Connect-ExchangeOnline.
  • Correzioni di bug in Connect-ExchangeOnline e Get-ConnectionInformation.
  • Correzione di bug in Connect-IPPSSession per la connessione a Security & Compliance PowerShell tramite CertificateThumbprint.

Versione 3.0.0 (versioni di anteprima note come v2.0.6-PreviewX)

  • Funzionalità già descritte nelle connessioni API REST nella sezione del modulo EXO V3 :
    • Autenticazione basata su certificati per Security & Compliance PowerShell (versione 2.0.6-Preview5 o successiva).
    • Cmdlet Get-ConnectionInformation per le connessioni basate su REST (versione 2.0.6-Preview7 o successiva).
    • L'opzione SkipLoadingFormatData nel cmdlet Connect-ExchangeOnline per le connessioni basate su REST (versione 2.0.6-Preview8 o successiva).
  • Il parametro DelegatedOrganization funziona nel cmdlet Connect-IPPSSession purché si usi anche il parametro AzureADAuthorizationEndpointUri nel comando.
  • Alcuni cmdlet usati per richiedere la conferma in scenari specifici non lo fanno più. Per impostazione predefinita, il cmdlet viene eseguito fino al completamento.
  • Il formato dell'errore restituito dall'esecuzione del cmdlet non riuscito viene leggermente modificato. L'eccezione contiene ora più dati ( ad esempio, il tipo di eccezione) e FullyQualifiedErrorId non contiene .FailureCategory Il formato dell'errore è soggetto a ulteriori modifiche.

Versione 2.0.5

  • Nuovi cmdlet Get-OwnerlessGroupPolicy e Set-OwnerlessGroupPolicy per gestire gruppi di Microsoft 365 senza proprietario.

    Nota

    Anche se i cmdlet sono disponibili nel modulo, la funzionalità è disponibile solo per i membri di un'anteprima privata.

  • Nuovi cmdlet Get-VivaInsightsSettings e Set-VivaInsightsSettings per controllare l'accesso degli utenti alle funzionalità headspace in Viva Insights.

Versione 2.0.4

  • PowerShell 7 è ufficialmente supportato in Windows, Linux e Apple macOS, come descritto nella sezione Prerequisiti per il modulo Exchange Online PowerShell in questo articolo.

  • Il modulo in PowerShell 7 supporta l'accesso Single Sign-On (SSO) basato su browser e altri metodi di accesso. Per altre informazioni, vedere Metodi di connessione esclusiva di PowerShell 7.

  • I cmdlet Get-UserAnalyticsConfig e Set-UserAnalyticsConfig sono stati sostituiti dai cmdlet Get-MyAnalyticsConfig e Set-MyAnalyticsConfig. Inoltre, è possibile configurare l'accesso a livello di funzionalità. Per altre informazioni, vedere Configurare MyAnalytics.

  • Criteri in tempo reale e applicazione della sicurezza in tutte le autenticazioni basate sugli utenti. La valutazione dell'accesso continuo (CAE) è abilitata nel modulo. Leggere altre informazioni sulla Valutazione continua dell’accesso (CAE) qui.

  • Le proprietà LastUserActionTime e LastInteractionTime sono ora disponibili nell'output del cmdlet Get-EXOMailboxStatistics.

  • Il processo di accesso interattivo ora si avvale di un metodo più sicuro per recuperare i token di accesso attraverso URL di risposta sicura.

Versione 2.0.3

  • Disponibilità generale dell'autenticazione basata su certificato (CBA), che consente l'uso dell'autenticazione moderna per gli script eseguiti automaticamente o gli scenari di automazione in background. Le posizioni di archiviazione dei ceritificati disponibili sono:
  • Connettersi a PowerShell per Exchange Online e PowerShell per Sicurezza e conformità simultaneamente in una sola finestra di PowerShell.
  • Il nuovo parametro CommandName consente di specificare e limitare i cmdlet di PowerShell in Exchange Online che sono importati in una sessione. Questa opzione riduce il carico di memoria per le applicazioni di PowerShell ad alto utilizzo.
  • Get-EXOMailboxFolderPermission ora supporta ExternalDirectoryObjectID nel parametro Identity.
  • La latenza dell'invocazione del cmdlet V2 è stata ottimizzata. I risultati di laboratorio mostrano che la latenza della prima invocazione è stata ridotta da 8 secondi a circa 1 secondo. I risultati effettivi dipendono dalle dimensioni dei risultati del cmdlet e dall'ambiente tenant.

Versione 1.0.1

  • Versione di disponibilità generale del modulo EXO V2. È stabile e pronto per l'uso negli ambienti di produzione.
  • Il cmdlet Get-EXOMobileDeviceStatistics ora supporta il parametro Identity.
  • È stata migliorata l'affidabilità della riconnessione automatica della sessione: in alcuni casi in cui uno script restava in esecuzione per circa 50 minuti e poi generava l'errore "Cmdlet non trovato" a causa di un bug nella logica di riconnessione automatica.
  • Sono stati risolti i problemi relativi al tipo di dati per due attributi "User" e "MailboxFolderUser" usati di frequente, per una migrazione più semplice degli script.
  • È stato migliorato il supporto per i filtri, che ora supporta altri quattro operatori: EndsWith, Contains, Not e NotLike. Selezionare Filtri nel modulo Exchange Online PowerShell per gli attributi non supportati nei filtri.

Versione 0.4578.0

  • È stato aggiunto il supporto per configurare un messaggio di briefing a livello di utente per l'organizzazione con i cmdlet Set-UserBriefingConfig e Get-UserBriefingConfig.
  • È stato aggiunto il supporto della pulizia della sessione con il cmdlet Disconnect-ExchangeOnline. Questo cmdlet è l'equivalente in V2 di Get-PSSession | Remove-PSSession. Oltre a ripulire l'oggetto sessione e i file locali, rimuove il token di accesso dalla cache, che viene usato per l'autenticazione nei cmdlet V2.
  • Ora è possibile usare FolderId come parametro di identità in Get-EXOMailboxFolderPermission. Il valore FolderId si può ottenere usando Get-MailboxFolder. Per esempio: Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>
  • Maggiore affidabilità di Get-EXOMailboxStatistics poiché determinati errori di routing delle richieste che hanno causato errori sono stati risolti.
  • Utilizzo ottimizzato della memoria quando viene creata una sessione riutiliando qualsiasi modulo esistente con una nuova sessione anziché crearne uno nuovo ogni volta che viene importata una sessione.

Versione 0.4368.1

  • È stato aggiunto il supporto per i cmdlet di PowerShell per Sicurezza e conformità con il cmdlet Connect-IPPSSession.
  • La possibilità di nascondere il banner degli annunci è disponibile usando il parametro ShowBanner (-ShowBanner:$false).
  • Capacità di terminare l'esecuzione del cmdlet in caso di eccezione del client.
  • PowerShell remoto conteneva vari tipi di dati complessi che non erano intenzionalmente supportati nei cmdlet EXO per migliorare le prestazioni. Le differenze relative ai tipi di dati non complessi tra i cmdlet di Remote PowerShell e i cmdlet V2 sono state risolte, in modo da consentire una migrazione semplice degli script di gestione.

Versione 0.3582.0

  • Supporto per il prefisso durante la creazione della sessione:
    • È possibile creare una sola sessione alla volta che contiene cmdlet con prefisso.
    • I cmdlet EXO V2 non hanno prefisso perché hanno già il prefisso EXO, quindi non usare EXO come prefisso.
  • Usare i cmdlet di EXO V2 anche se l'autenticazione di base di WinRM è disabilitata nel computer client. Le connessioni Remote PowerShell richiedono l'autenticazione di base di WinRM e i cmdlet di PowerShell remoti non sono disponibili se l'autenticazione di base è disabilitata in WinRM.
  • Il parametro Identity per i cmdlet V2 supporta ora Name e Alias. L'uso di Alias o Name rallenta le prestazioni dei cmdlet V2, quindi non è consigliabile usarli.
  • È stato risolto il problema per cui il tipo di dati degli attributi restituiti dai cmdlet V2 era diverso rispetto ai cmdlet di Remote PowerShell. Sono ancora disponibili pochi attributi con tipi di dati diversi e si prevede di gestirli nei prossimi mesi.
  • Correzione del bug: problema di riconnessione frequente delle sessioni quando Connect-ExchangeOnline è stato richiamato con Credentials o UserPrincipalName

Versione 0.3555.1

  • È stato corretto un bug per cui i cmdlet inviati tramite pipe non riuscivano con l'errore seguente a causa di un problema di autenticazione:

    Impossibile richiamare la pipeline perché lo spazio di esecuzione non è nello stato Aperto. Lo stato corrente dello spazio di esecuzione è 'Closed'.

Versione 0.3527.4

  • Contenuto di Get-Help aggiornato.
  • È stato risolto un problema in Get-Help in cui il parametro Online veniva reindirizzato a una pagina inesistente con codice di errore 400.

Versione 0.3527.3

  • È stato aggiunto il supporto per gestire Exchange per un tenant diverso usando il flusso di delega.
  • Funziona in combinazione con altri moduli di PowerShell in una singola finestra di PowerShell.
  • È stato aggiunto il supporto per i parametri posizionali.
  • Il campo di data e ora supporta le impostazioni locali del client.
  • Correzione di bug: PSCredential vuoto se passato durante Connect-ExchangeOnline.
  • Correzione di bug: errore del modulo client quando il filtro conteneva $null.
  • Le sessioni create internamente al modulo EXO V2 hanno ora nomi (modello di denominazione: ExchangeOnlineInternalSession_% numero%).
  • Correzione di bug: i cmdlet di PowerShell remoti non riescono in modo intermittente a causa del tempo in cui la differenza tra la scadenza del token e la sessione diventa inattiva.
  • Aggiornamento principale della sicurezza.
  • Correzioni di bug e miglioramenti.