Habilitar o deshabilitar el acceso al PowerShell de Exchange Online

Exchange Online PowerShell es la interfaz administrativa que permite a los administradores administrar la parte Exchange Online de una organización de Microsoft 365 desde la línea de comandos (incluidas muchas características de seguridad en Exchange Online Protection y Microsoft Defender para Office 365).

De forma predeterminada, todas las cuentas de Microsoft 365 pueden usar Exchange Online PowerShell. Este acceso no ofrece a los usuarios funcionalidades administrativas en una organización. Siguen estando limitados por el control de acceso basado en roles (RBAC) (por ejemplo, pueden configurar opciones en su propio buzón de correo o administrar los grupos de distribución que poseen).

Los administradores pueden usar los procedimientos de este artículo para deshabilitar o habilitar la capacidad de un usuario de conectarse a Exchange Online PowerShell.

¿Qué necesita saber antes de empezar?

  • Tiempo estimado para completar cada procedimiento: menos de 5 minutos

  • Los procedimientos de este artículo solo están disponibles en Exchange Online PowerShell. Para conectarse al PowerShell de Exchange Online, consulte Conexión a Exchange Online PowerShell.

  • Debe tener asignados permisos para poder realizar los procedimientos de este artículo. Tiene las siguientes opciones:

    Importante

    En su prisa por deshabilitar el acceso de PowerShell de forma rápida y global en su organización, tenga cuidado con comandos como Get-User | Set-User -RemotePowerShellEnabled $false sin tener en cuenta las cuentas de administrador. Use los procedimientos de este artículo para quitar selectivamente el acceso remoto a PowerShell o conservar 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.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -RemotePowerShellEnabled $false.

    Si accidentalmente se bloquea el acceso a PowerShell, cree una nueva cuenta de administrador en el Centro de administración de Microsoft 365 y, a continuación, use esa cuenta para concederse acceso a PowerShell mediante los procedimientos descritos en este artículo.

  • Para obtener información detallada sobre la sintaxis de filtro de OPATH en Exchange Online, consulte Información adicional sobre la sintaxis de OPATH.

Sugerencia

¿Problemas? Solicite ayuda en los foros de Exchange. Visite los foros en Exchange Online o Exchange Online Protection.

Habilitar o deshabilitar el acceso remoto de PowerShell para un usuario

En este ejemplo se deshabilita el acceso a Exchange Online PowerShell para el usuario david@contoso.onmicrosoft.com.

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

En este ejemplo se permite el acceso a Exchange Online PowerShell para el usuario chris@contoso.onmicrosoft.com.

Set-User -Identity chris@contoso.onmicrosoft.com -RemotePowerShellEnabled $true

Deshabilitar el acceso remoto de 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 supone que 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 usar esa lista para deshabilitar su acceso a Exchange Online PowerShell.

Filtrar usuarios en función de un atributo existente

Para deshabilitar el acceso a Exchange Online PowerShell 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 $_.WindowsEmailAddress -RemotePowerShellEnabled $false}

En este ejemplo se elimina el acceso remoto de PowerShell de todos los usuarios cuyo atributo Title contiene el valor "Sales Associate".

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"

$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -RemotePowerShellEnabled $false}

Utilizar una lista de usuarios específicos

Para deshabilitar el acceso remoto de PowerShell de una lista de usuarios concretos, use la siguiente sintaxis.

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

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

En el ejemplo siguiente se usa el archivo de texto C:\My Documents\NoPowerShell.txt para identificar a los usuarios por sus cuentas. El archivo de texto debe contener una cuenta en cada línea de la siguiente manera:

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

Después de rellenar el archivo de texto con las cuentas de usuario que desea actualizar, ejecute los siguientes comandos:

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

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

Visualización del estado de acceso de PowerShell Exchange Online para los usuarios

Para ver el estado de acceso de PowerShell para un usuario específico, reemplace <UserIdentity> por el nombre o el nombre principal de usuario (UPN) del usuario y ejecute el siguiente comando:

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

Para mostrar el Exchange Online estado de acceso de PowerShell para todos los usuarios, ejecute el siguiente comando:

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

Para mostrar todos los usuarios que no tienen acceso a Exchange Online PowerShell, ejecute el siguiente comando:

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

Para mostrar todos los usuarios que tienen acceso a Exchange Online PowerShell, ejecute el siguiente comando:

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