Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 utilizzando PowerShell remoto ed Exchange Management Shell. Per ulteriori informazioni su PowerShell remoto, vedere PowerShell di Exchange Server (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 ulteriori informazioni sui gruppi di ruoli e i ruoli di gestione, vedere Autorizzazioni di Exchange Server.
Importante
Quando si ha fretta di disabilitare rapidamente e globalmente l'accesso remoto a PowerShell nell'organizzazione, fare attenzione a comandi come
Get-User | Set-User -RemotePowerShellEnabled $falsesenza considerare gli account amministratore, gli account di servizio o le cassette postali di monitoraggio dell'integrità che richiedono l'accesso remoto a PowerShell. Usare le procedure di questo articolo per rimuovere in modo selettivo l'accesso remoto a PowerShell o per garantire l'accesso a chi ne ha 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 a PowerShell, sarà necessario utilizzare il metodo, altrimenti altamente sconsigliato, che consiste nel caricare direttamente lo snap-in Exchange Management Shell (
Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn) per ottenere l'accesso. Ridurre al minimo il tempo e le modifiche utilizzate con questo metodo. Correggere un account e aprire Exchange Management Shell per apportare eventuali ulteriori modifiche.È possibile usare solo PowerShell 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 Ulteriori informazioni sulla sintassi OPATH.
Devi disporre delle autorizzazioni per poter eseguire queste procedure. Per visualizzare le autorizzazioni necessarie, vedere la voce "PowerShell remoto" nell'articolo sulle autorizzazioni dell'infrastruttura di Exchange e PowerShell .
Se si usano strumenti non Microsoft per personalizzare gli indirizzi di posta elettronica degli utenti, è necessario disabilitare i criteri degli indirizzi di posta elettronica per gli utenti interessati prima di eseguire le procedure descritte in questo articolo. In caso contrario, i comandi Set-User modificano gli indirizzi e-mail degli utenti in modo che corrispondano al criterio dell'indirizzo e-mail applicabile. 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? Chiedere assistenza nei forum di Exchange Server.
Visualizzare l'accesso remoto a PowerShell per gli utenti
Per visualizzare lo stato di accesso remoto a PowerShell per un utente specifico, sostituire <UserIdentity> con il nome o il nome dell'entità utente (UPN) dell'utente e quindi eseguire il comando seguente:
Get-User -Identity "<UserIdentity>" | Format-List RemotePowerShellEnabled
Per visualizzare lo stato di accesso remoto a PowerShell per tutti gli utenti, usare 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, usare 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 a PowerShell per l'utente 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 a PowerShell per molti utenti
Per impedire l'accesso tramite PowerShell remoto a uno specifico gruppo di utenti esistenti sono disponibili diverse opzioni:
Filtra 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 disabilitarne 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 in ogni riga, ad esempio:
akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com
Dopo aver inserito nel file di testo gli account utente da aggiornare, eseguire i comandi seguenti:
$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}