Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
PowerShell remoto en Microsoft Exchange le permite administrar su organización de Exchange desde un equipo remoto que se encuentre en su red interna o desde Internet. Puede deshabilitar o habilitar la capacidad de un usuario para conectarse a un servidor de Exchange mediante PowerShell remoto y el Shell de administración de Exchange. Para obtener más información sobre PowerShell remoto, consulte PowerShell de Exchange Server (Exchange Management Shell).
Para ver otras tareas de administración relacionadas con PowerShell remoto, vea Conectarse a servidores Exchange mediante PowerShell remoto.
¿Qué necesita saber antes de empezar?
Tiempo estimado para completar cada procedimiento: menos de 5 minutos
De forma predeterminada, todas las cuentas de usuario tienen acceso a PowerShell remoto. Sin embargo, para conectarse realmente a un servidor Exchange mediante PowerShell remoto, el usuario tiene que ser miembro de un grupo de roles de administración o que se le asigne directamente un rol de administración que le permita ejecutar cmdlets de Exchange. Para obtener más información acerca de los grupos de roles y los roles de administración, consulte Permisos de Exchange Server.
Importante
En su prisa por deshabilitar rápida y globalmente el acceso remoto a PowerShell en su organización, tenga cuidado con comandos como
Get-User | Set-User -RemotePowerShellEnabled $falsesin tener en cuenta las cuentas de administrador, las cuentas de servicio o los buzones de supervisión de estado que necesitan acceso remoto a PowerShell. Use los procedimientos descritos en este artículo para quitar selectivamente el acceso remoto a PowerShell o conserve el acceso para aquellos que lo necesiten mediante la siguiente sintaxis en el comando de eliminación global:Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.com' -and $_.UserPrincipalName -ne 'admin2@contoso.com'...} | Set-User -RemotePowerShellEnabled $false.Si accidentalmente se bloquea el acceso remoto a PowerShell, tendrá que usar el método altamente desaconsejable de cargar directamente el complemento Exchange Management Shell (
Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn) para obtener acceso. Minimice el tiempo y los cambios que usa con este método. Corrija una cuenta y abra el Shell de administración de Exchange para realizar cualquier cambio adicional.Solo puede usar PowerShell para realizar estos procedimientos. Para obtener información sobre cómo abrir el Shell de administración de Exchange en su organización de Exchange local, consulte Open the Exchange Management Shell.
Para obtener información detallada sobre la sintaxis del filtro OPATH en Exchange, consulte Información adicional de sintaxis de OPATH.
Deberá tener permisos asignados para poder llevar a cabo estos procedimientos. Para ver qué permisos necesita, consulte la entrada "PowerShell remoto" en el artículo Infraestructura de Exchange y permisos de PowerShell .
Si usa herramientas ajenas a Microsoft para personalizar las direcciones de correo electrónico de los usuarios, debe deshabilitar las directivas de direcciones de correo electrónico de los usuarios afectados antes de llevar a cabo los procedimientos descritos en este artículo. Si no lo hace, los comandos Set-User cambian las direcciones de correo electrónico de los usuarios para que coincidan con la directiva de direcciones de correo electrónico aplicable. Para deshabilitar las directivas de direcciones de correo electrónico en los usuarios, establezca el valor del parámetro EmailAddressPolicyEnabled en $false en el cmdlet Set-Mailbox .
Sugerencia
¿Problemas? Solicite ayuda en los foros de Exchange Server.
Ver el acceso remoto a PowerShell para los usuarios
Para ver el estado de acceso remoto a PowerShell de un usuario específico, reemplace <UserIdentity> por el nombre o el nombre principal de usuario (UPN) del usuario y, a continuación, ejecute el siguiente comando:
Get-User -Identity "<UserIdentity>" | Format-List RemotePowerShellEnabled
Para mostrar el estado de acceso a PowerShell remoto para todos los usuarios, ejecute el siguiente comando:
Get-User -ResultSize unlimited | Format-Table Name,DisplayName,RemotePowerShellEnabled -AutoSize
Para mostrar todos los usuarios que no tienen acceso a PowerShell remoto, ejecute el siguiente comando:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'
Para mostrar todos los usuarios que tienen acceso a PowerShell remoto, ejecute el siguiente comando:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'
Usar Shell de administración de Exchange para habilitar o deshabilitar el acceso a PowerShell remoto para un usuario
En este ejemplo se deshabilita el acceso remoto a PowerShell para la usuario llamada Therese Lindqvist.
Set-User "Therese Lindqvist" -RemotePowerShellEnabled $false
En este ejemplo se habilita el acceso remoto a PowerShell para el usuario cuyo nombre es Sirirat Kitjakarn.
Set-User "Sirirat Kitjakarn" -RemotePowerShellEnabled $true
Use el Shell de administración de Exchange para deshabilitar el acceso remoto a PowerShell para muchos usuarios
Para evitar el acceso remoto de PowerShell de un grupo concreto de usuarios existentes, tiene las siguientes opciones:
Filtrar usuarios en función de un atributo existente: este método asume que todas las cuentas de usuario de destino comparten un atributo filtrable único. Tenga en cuenta que algunos atributos, como cargo, departamento, dirección y número de teléfono, se muestran solo cuando se utiliza el cmdlet Get-User. Otros atributos, como CustomAttribute1-15, son visibles solamente cuando usa el cmdlet Get-Mailbox.
Use una lista de usuarios específicos: después de generar la lista de usuarios específicos, puede usarla para deshabilitar su acceso a PowerShell remoto.
Filtrar usuarios en función de un atributo existente
Para deshabilitar el acceso a PowerShell remoto para cualquier número de usuarios en función de un atributo existente, use la sintaxis siguiente:
$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}
En este ejemplo se quita el acceso a PowerShell remoto a todos los usuarios cuyo atributo Title contenga el valor "Sales Associate".
$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like '*Sales Associate*')"
$DSA | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}
Utilizar una lista de usuarios específicos
Para deshabilitar el acceso a PowerShell remoto para una lista de usuarios específicos, use la sintaxis siguiente:
$<VariableName> = Get-Content <text file>
$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}
En este ejemplo se usa el archivo de texto C:\Mis Documents\NoPowerShell.txt para identificar a los usuarios por su nombre principal de usuario (UPN). El archivo de texto debe contener un UPN en cada línea, como este:
akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com
Después de rellenar el archivo de texto con las cuentas de usuario que desea actualizar, ejecute los siguientes comandos:
$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}