Abilitare o disabilitare l'accesso a PowerShell per Exchange Online
PowerShell di Exchange Online è l'interfaccia amministrativa che consente agli amministratori di gestire la parte di 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 PowerShell di Exchange Online. 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, ma non molto altro).
Gli amministratori possono usare le procedure descritte in questo articolo per disabilitare o abilitare la possibilità di connettersi a PowerShell di Exchange Online.
Che cosa è necessario sapere prima di iniziare?
Tempo stimato per il completamento di ciascuna procedura: meno di 5 minuti
Le procedure descritte in questo articolo sono disponibili solo in PowerShell di Exchange Online. 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:
- Controllo degli accessi in base al ruolo di Exchange Online: appartenenza ai gruppi di ruoli Gestione organizzazione o Gestione destinatari.
- Controllo degli accessi in base al ruolo di Microsoft Entra: 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 nell'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 PowerShell di Exchange Online per l'utente david@contoso.onmicrosoft.com
.
Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false
In questo esempio viene abilitato l'accesso a PowerShell di Exchange Online 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 PowerShell di Exchange Online.
Filtrare gli utenti in base a un attributo esistente
Per disabilitare l'accesso a PowerShell di Exchange Online 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 di PowerShell di Exchange Online 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 EXOModuleEnabled
Per visualizzare lo stato di accesso di PowerShell di Exchange Online 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 PowerShell di Exchange Online, eseguire il comando seguente:
Get-User -ResultSize unlimited -Filter 'EXOModuleEnabled -eq $false'
Per visualizzare tutti gli utenti che hanno accesso a PowerShell di Exchange Online, eseguire il comando seguente:
Get-User -ResultSize unlimited -Filter 'EXOModuleEnabled -eq $true'