Gestione dell'accesso a Remote PowerShell in Exchange Online

PowerShell remoto consente di gestire l'organizzazione Exchange Online dalla riga di comando. Per impostazione predefinita, tutti gli account creati in Microsoft 365 sono autorizzati a utilizzare PowerShell di Exchange Online. Con PowerShell remoto è possibile abilitare o disabilitare la possibilità di un utente di connettersi all'organizzazione Exchange Online tramite PowerShell remoto. Tenere presente che l'accesso all'organizzazione Exchange Online mediante PowerShell remoto non concede agli utenti diritti di gestione aggiuntivi. Le attività eseguibili da un utente restano definite dal controllo di accesso basato sul ruolo e dai ruoli assegnati.

Che cosa è necessario sapere prima di iniziare

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

  • Gli amministratori globali di Microsoft 365 dispongono dell'accesso a PowerShell di Exchange Online ed è possibile utilizzare le procedure descritte in questo argomento per configurare l'accesso di PowerShell di Exchange Online ad altri utenti. Per ulteriori informazioni sulle autorizzazioni in Exchange Online, vedere Feature Permissions in Exchange Online.

  • Per eseguire questa procedura, è possibile utilizzare solo Exchange Online PowerShell. Per informazioni su come connettersi a PowerShell per Exchange Online, vedere Connettersi a PowerShell per Exchange Online.

  • Per informazioni dettagliate sulla sintassi del filtro di OPath in Exchange Online, vedere ulteriori informazioni sulla sintassi di OPATH.

  • È inoltre possibile utilizzare le regole di accesso client per bloccare l'accesso di PowerShell a Exchange Online. Per informazioni dettagliate, vedere regole di accesso client in Exchange Online.

Tip

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 si abilita PowerShell remoto per l'utente david@contoso.com.

Set-User -Identity david@contoso.com -RemotePowerShellEnabled $false

In questo esempio si disabilita PowerShell remoto per l'utente david@contoso.com.

Set-User -Identity david@contoso.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.

  • Utilizzare un elenco di utenti specifici: dopo avere generato l'elenco di utenti specifici, è possibile utilizzare tale elenco 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 qualsiasi numero di utenti in base a un attributo esistente, utilizzare la sintassi seguente:

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-User -Identity $_ -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 $_ -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}

In questo esempio viene utilizzato 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 su ogni riga come indicato di seguito:

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

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

$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NPS | foreach {Set-User -Identity $_.MicrosoftOnlineServicesID -RemotePowerShellEnabled $false}

Visualizzare lo stato di accesso tramite PowerShell remoto per gli utenti

Per visualizzare lo stato di accesso tramite PowerShell remoto per uno specifico utente, utilizzare la seguente sintassi.

Get-User -Identity <UserIdentity> | Format-List RemotePowerShellEnabled

In questo esempio viene visualizzato lo stato di accesso tramite PowerShell remoto dell'utente Sarah Jones.

Get-User -Identity "Sarah Jones" | Format-List RemotePowerShellEnabled

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

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

Per visualizzare solo gli utenti che non dispongono dell'accesso a PowerShell remoto, eseguire il comando seguente:

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

Per visualizzare solo gli utenti che dispongono dell'accesso a PowerShell remoto, eseguire il comando seguente:

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