Administrar el acceso a PowerShell remoto en Exchange Online

PowerShell remoto le permite administrar su organización de Exchange Online desde la línea de comandos. De forma predeterminada, todas las cuentas que cree en Microsoft 365 pueden usar Exchange Online PowerShell. Puede habilitar o deshabilitar la capacidad de un usuario de conectarse a la organización de Exchange Online mediante PowerShell remoto con PowerShell remoto. Tenga en cuenta que el acceso remoto de PowerShell a la organización de Exchange Online no proporciona a los usuarios permisos administrativos adicionales. Las capacidades de un usuario se definen por el control de acceso basado en roles (RBAC) y los roles que tiene asignados.

¿Qué necesita saber antes de comenzar?

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

  • Microsoft 365 los administradores globales tienen acceso Exchange Online PowerShell y pueden usar los procedimientos de este artículo para configurar el acceso Exchange Online PowerShell para otros usuarios. Para más información sobre los permisos de Exchange Online, vea Feature Permissions in Exchange Online.

  • Solo puede usar powershell Exchange Online para realizar este procedimiento. Para conectarse al PowerShell de Exchange Online, consulte Conexión a Exchange Online PowerShell.

  • Para obtener información detallada acerca de la sintaxis de filtro de OPath Exchange Online, vea Additional OPATH syntax information.

  • También puede usar reglas de acceso de cliente para bloquear el acceso de PowerShell a Exchange Online. Para obtener más información, vea Client Access Rules en Exchange Online.

Sugerencia

¿Tiene problemas? Pida 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 habilita PowerShell remoto para el usuario david@contoso.com.

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

En este ejemplo se deshabilita PowerShell remoto para el usuario david@contoso.com.

Set-User -Identity david@contoso.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 todas las cuentas de usuario de destino comparten un atributo único que se puede filtrar. 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 Exchange Online PowerShell para cualquier número de usuarios basado en 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 los usuarios por sus cuentas. El archivo de texto debe contener una cuenta en cada línea de la siguiente manera:

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}

Ver el estado de acceso remoto de PowerShell de los usuarios

Para ver el estado de acceso remoto de PowerShell de un usuario concreto, use la siguiente sintaxis.

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

En este ejemplo se muestra el estado de acceso remoto de PowerShell de un usuario cuyo nombre es Sarah Jones.

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

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

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

Para mostrar solo los usuarios que no tienen acceso a PowerShell remoto, ejecute el siguiente comando:

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

Para mostrar solo los usuarios que tienen acceso a PowerShell remoto, ejecute el siguiente comando:

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