Habilitar o deshabilitar el acceso al PowerShell de 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.
Nota:
También puede usar reglas de acceso de cliente para bloquear el acceso de PowerShell a Exchange Online. Para obtener más información, consulte Reglas de acceso de cliente en Exchange Online.
¿Qué necesita saber antes de empezar?
Tiempo estimado para completar cada procedimiento: menos de 5 minutos
Los administradores globales de Microsoft 365 tienen acceso a Exchange Online PowerShell y pueden usar los procedimientos de este artículo para configurar Exchange Online acceso de PowerShell para otros usuarios. Para más información sobre los permisos de Exchange Online, vea Feature Permissions in Exchange Online.
Importante
En su prisa por deshabilitar de forma rápida y global el acceso remoto de PowerShell 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 se bloquea accidentalmente el acceso remoto 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 remoto a PowerShell mediante los procedimientos de este artículo.
Solo puede usar Exchange Online PowerShell para realizar este procedimiento. Para conectarse al PowerShell de Exchange Online, consulte Conexión a Exchange Online PowerShell.
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:
$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 para 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 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'