Share via


Controllare l'accesso tramite PowerShell remoto ai server Exchange

PowerShell remoto in Microsoft Exchange consente di gestire l'organizzazione di Exchange da un computer remoto nella rete interna o da Internet. È possibile disabilitare o abilitare la capacità di un utente di connettersi a un server Exchange usando PowerShell remoto e Exchange Management Shell. Per altre informazioni su PowerShell remoto, vedere Exchange Server PowerShell (Exchange Management Shell).

Per altre attività di gestione relative a Remote PowerShell, vedere Connessione ai server di Exchange tramite Remote PowerShell.

Che cosa è necessario sapere prima di iniziare?

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

  • Per impostazione predefinita, tutti gli account utente hanno accesso a Remote PowerShell. Tuttavia, per utilizzare effettivamente PowerShell per connettersi a un server Exchange, gli utenti devono essere membri di un gruppo di ruoli di gestione oppure essere assegnati direttamente a un ruolo di gestione che consenta all'utente di eseguire i cmdlet Exchange. Per altre informazioni sui gruppi di ruoli e sui ruoli di gestione, vedere autorizzazioni Exchange Server.

    Importante

    In fretta per disabilitare rapidamente e a livello globale l'accesso remoto di PowerShell nell'organizzazione, prestare attenzione ai comandi, ad esempio Get-User | Set-User -RemotePowerShellEnabled $false senza considerare account amministratore, account del servizio o cassette postali di monitoraggio dell'integrità che richiedono l'accesso remoto a PowerShell. 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.com' -and $_.UserPrincipalName -ne 'admin2@contoso.com'...} | Set-User -RemotePowerShellEnabled $false.

    Se si blocca accidentalmente l'accesso remoto di PowerShell, è necessario usare il metodo altrimenti altamente sconsigliato di caricare direttamente lo snap-in di Exchange Management Shell (Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn) per concedere l'accesso. Ridurre al minimo il tempo e le modifiche in uso con questo metodo. Correggere un account e aprire Exchange Management Shell per apportare eventuali modifiche aggiuntive.

  • È possibile usare PowerShell solo per eseguire queste procedure. Per sapere come aprire Exchange Management Shell nell'organizzazione di Exchange locale, vedere Open the Exchange Management Shell.

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

  • Devi disporre delle autorizzazioni per poter eseguire queste procedure. Per visualizzare le autorizzazioni necessarie, vedere la voce "Remote PowerShell" nell'articolo sulle autorizzazioni di PowerShell e dell'infrastruttura di Exchange .

  • Se si usano strumenti di terze parti per personalizzare gli indirizzi di posta elettronica degli utenti, è necessario disabilitare i criteri degli indirizzi di posta elettronica sugli utenti interessati prima di eseguire le procedure descritte in questo articolo. In caso contrario, i comandi Set-User modificano gli indirizzi di posta elettronica degli utenti in modo che corrispondano ai criteri degli indirizzi di posta elettronica applicabili. Per disabilitare i criteri degli indirizzi di posta elettronica per gli utenti, impostare il valore del parametro EmailAddressPolicyEnabled su $false nel cmdlet Set-Mailbox .

Consiglio

Problemi? Chiedi aiuto nei forum di Exchange Server.

Visualizzare l'accesso remoto di PowerShell per gli utenti

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

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

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

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

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

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

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

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

Utilizzare Exchange Management Shell per abilitare o disabilitare l'accesso remoto PowerShell per un utente

In questo esempio viene disabilitato l'accesso remoto di PowerShell per l'utente denominato Therese Lindqvist.

Set-User "Therese Lindqvist" -RemotePowerShellEnabled $false

In questo esempio viene abilitato l'accesso remoto PowerShell per l'utente denominato Sirirat Kitjakarn.

Set-User "Sirirat Kitjakarn" -RemotePowerShellEnabled $true

Usare Exchange Management Shell per disabilitare l'accesso remoto di PowerShell per molti 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 PowerShell remoto.

Filtrare gli utenti in base a un attributo esistente

Per disabilitare l'accesso a PowerShell remoto 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 $_ -RemotePowerShellEnabled $false}

In questo esempio viene rimosso l'accesso a PowerShell remoto per 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 a PowerShell remoto per un elenco di utenti specifici, usare la sintassi seguente:

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

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

In questo esempio viene usato il file di testo C:\My Documents\NoPowerShell.txt per identificare gli utenti in base al nome dell'entità utente (UPN). Il file di testo deve contenere un UPN per 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 da aggiornare, eseguire i comandi seguenti:

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

$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}