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 in un'organizzazione. Sono ancora limitati dal controllo degli accessi in base al ruolo ( ad esempio, possono configurare le impostazioni nella propria cassetta postale o gestire i gruppi di distribuzione di cui sono proprietari).

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:

    Importante

    Nella fretta di disabilitare rapidamente e a livello globale l'accesso a PowerShell nell'organizzazione, prestare attenzione ai comandi, ad esempio Get-User | Set-User -RemotePowerShellEnabled $false senza considerare gli account amministratore. Usare le procedure descritte in questo articolo per rimuovere in modo selettivo l'accesso remoto di PowerShell o mantenere l'accesso per gli utenti 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 -RemotePowerShellEnabled $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.

  • 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 -RemotePowerShellEnabled $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 -RemotePowerShellEnabled $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 quelli relativi a qualifica, reparto, indirizzo e numero di telefono, sono visibili solo quando si utilizza il cmdlet Get-User. Altri attributi, ad esempio CustomAttribute1-15, sono visibili solo quando si utilizza il 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 -RemotePowerShellEnabled $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 -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $false}

Visualizzare lo stato di accesso Exchange Online PowerShell per gli utenti

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 RemotePowerShellEnabled

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

Get-User -ResultSize unlimited | Format-Table -Auto Name,DisplayName,RemotePowerShellEnabled

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'