Condividi tramite


Abilitare o disabilitare l'accesso a PowerShell per Exchange Online

Exchange Online PowerShell è l'interfaccia amministrativa che consente agli amministratori di gestire la parte Exchange Online di un'organizzazione di Microsoft 365 dalla riga di comando (incluse molte funzionalità di sicurezza in Exchange Online Protection e Microsoft Defender per Office 365).

Per impostazione predefinita, tutti gli account in Microsoft 365 possono usare Exchange Online PowerShell. Questo accesso non offre agli utenti funzionalità amministrative. Sono ancora limitati dal controllo degli accessi in base al ruolo. Ad esempio, possono configurare alcune impostazioni nella propria cassetta postale e gestire i gruppi di distribuzione di cui sono proprietari, ma non molto altro.

Gli amministratori possono usare le procedure descritte in questo articolo per disabilitare o abilitare la possibilità di connettersi a Exchange Online PowerShell.

Che cosa è necessario sapere prima di iniziare?

  • Tempo stimato per il completamento di ciascuna procedura: meno di 5 minuti

  • Le procedure in questo articolo sono disponibili solo in Exchange Online PowerShell. Per informazioni su come connettersi a PowerShell per Exchange Online, vedere Connettersi a PowerShell per Exchange Online.

  • Prima di poter eseguire le procedure descritte in questo articolo, è necessario disporre delle autorizzazioni necessarie. Sono disponibili le opzioni seguenti:

    • Exchange Online controllo degli accessi in base al ruolo: appartenenza ai gruppi di ruoli Gestione organizzazione o Gestione destinatari.
    • Microsoft Entra controllo degli accessi in base al ruolo: l'appartenenza ai ruoli Amministratore di Exchange o Amministratore* globale offre agli utenti le autorizzazioni e le autorizzazioni necessarie per altre funzionalità in Microsoft 365.

    Importante

    In fretta e in fretta per disabilitare in modo rapido e globale l'accesso a PowerShell nell'organizzazione basata sul cloud, prestare attenzione ai comandi, ad esempio Get-User | Set-User -EXOModuleEnabled $false senza considerare gli account di amministratore. Usare le procedure descritte in questo articolo per rimuovere in modo selettivo l'accesso a PowerShell o mantenere l'accesso per coloro che ne hanno bisogno usando la sintassi seguente nel comando di rimozione globale: Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false.

    Se si blocca accidentalmente l'accesso a PowerShell, creare un nuovo account amministratore nel interfaccia di amministrazione di Microsoft 365 e quindi usare tale account per concedere a se stessi l'accesso a PowerShell usando le procedure descritte in questo articolo.

    * Microsoft consiglia di usare i ruoli con il minor numero di autorizzazioni. L'uso di account con autorizzazioni inferiori consente di migliorare la sicurezza per l'organizzazione. Amministratore globale è un ruolo con privilegi elevati che deve essere limitato agli scenari di emergenza quando non è possibile usare un ruolo esistente.

  • Per informazioni dettagliate sulla sintassi del filtro OPATH in Exchange Online, vedere Informazioni aggiuntive sulla sintassi OPATH.

Consiglio

Problemi? È possibile richiedere supporto nei forum di Exchange. I forum sono disponibili in Exchange Online e Exchange Online Protection.

Abilitare o disabilitare l'accesso remoto PowerShell per un utente

In questo esempio viene disabilitato l'accesso a Exchange Online PowerShell per l'utente david@contoso.onmicrosoft.com.

Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false

In questo esempio viene abilitato l'accesso a Exchange Online PowerShell per l'utente chris@contoso.onmicrosoft.com.

Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $true

Disabilitare l'accesso tramite PowerShell remoto per più utenti

Per impedire l'accesso tramite PowerShell remoto a uno specifico gruppo di utenti esistenti sono disponibili diverse opzioni:

  • Filtrare gli utenti in base a un attributo esistente: questo metodo presuppone che gli account utente di destinazione condividano tutti un attributo filtrabile univoco. Alcuni attributi, ad esempio Titolo, Reparto, informazioni sull'indirizzo e numero di telefono, sono disponibili solo dal cmdlet Get-User . Altri attributi , ad esempio CustomAttribute1 e CustomAttribute15, sono disponibili solo dal cmdlet Get-Mailbox .
  • Usare un elenco di utenti specifici: dopo aver generato l'elenco di utenti specifici, è possibile usarlo per disabilitare l'accesso a Exchange Online PowerShell.

Filtrare gli utenti in base a un attributo esistente

Per disabilitare l'accesso a Exchange Online PowerShell per un numero qualsiasi di utenti in base a un attributo esistente, usare la sintassi seguente:

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>

$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

In questo esempio, viene impedito l'accesso tramite PowerShell remoto a tutti gli utenti il cui attributo Title contiene il valore "Sales Associate".

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"

$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

Utilizzare un elenco di utenti specifici

Per disabilitare l'accesso tramite PowerShell remoto per un elenco di utenti specifici, utilizzare la seguente sintassi.

$<VariableName> = Get-Content <text file>

$<VariableName> | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

Nell'esempio seguente viene usato il file di testo C:\My Documents\NoPowerShell.txt per identificare gli utenti in base ai propri account. Il file di testo deve contenere un account in ogni riga come indicato di seguito:

akol@contoso.onmicrosoft.com
tjohnston@contoso.onmicrosoft.com
kakers@contoso.onmicrosoft.com

Dopo aver popolato il file di testo con gli account utente da aggiornare, eseguire i comandi seguenti:

$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"

$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

Visualizzare lo stato di accesso Exchange Online PowerShell per gli utenti

Consiglio

La proprietà più recente EXOModuleEnabled non è disponibile per l'uso con il parametro Filter nel cmdlet Get-User , ma i valori della EXOModuleEnabled proprietà e della proprietà precedente RemotePowerShellEnabled sono sempre gli stessi, quindi usare la RemotePowerShellEnabled proprietà con il parametro Filter nel cmdlet Get-User .

Per visualizzare lo stato di accesso di PowerShell per un utente specifico, sostituire <UserIdentity> con il nome o il nome dell'entità utente (UPN) dell'utente ed eseguire il comando seguente:

Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled

Per visualizzare lo stato di accesso Exchange Online PowerShell per tutti gli utenti, eseguire il comando seguente:

Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled

Per visualizzare tutti gli utenti che non hanno accesso a Exchange Online PowerShell, eseguire il comando seguente:

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'

Per visualizzare tutti gli utenti che hanno accesso a Exchange Online PowerShell, eseguire il comando seguente:

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'