Conéctese a servidores Exchange y Microsoft 365 con Remote PowerShell

En este artículo, mostraremos cómo conectarse de forma remota a un servidor Exchange local o Microsoft 365 (Exchange Online) desde la consola de PowerShell.

Contenido:

  • ¿Cómo conectarse a servidores Exchange a través de PowerShell remoto (sin EMS)?
  • Conectarse a Exchange Online (Microsoft 365) mediante Remote PowerShell

¿Cómo conectarse a servidores Exchange a través de PowerShell remoto (sin EMS)?

Puede usar los cmdlets del Shell de administración de Exchange (EMS) para administrar su organización de Exchange local (Exchange Server 2010, 2013, 2016 o 2019). EMS se instala como parte de las herramientas de administración de Exchange. Si el Shell de administración de Exchange no está instalado en su computadora, puede conectarse a su servidor de Exchange de forma remota e importar los cmdlets desde el host de Exchange a su sesión local de PowerShell.

Las conexiones remotas en Exchange Server se establecen a través de un virtual IIS (Internet Information Services) directorio llamado Potencia Shell. De forma predeterminada, se usa la autenticación Kerberos y se usa WinRM para la comunicación.

Consejo. Tenga en cuenta que algunos cmdlets de EMS no son totalmente compatibles en una sesión remota de PowerShell. Por ejemplo, Get-ExchangeCertificate. Para usarlo, deberá instalar Exchange Management Shell en su computadora.

Antes de comenzar, asegúrese de que su política de ejecución de PowerShell local le permita ejecutar scripts PS locales. El siguiente comando permite ejecutar scripts locales para el usuario actual.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Abra la consola de PowerShell en su computadora y ejecute el siguiente comando:

$UserCredential = Get-Credential

Ingrese el nombre de usuario y la contraseña de la cuenta que utilizará para conectarse a Exchange.

Cree una sesión remota de PowerShell con su servidor Exchange:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mbex1.woshub.com/PowerShell/ -Authentication Kerberos -Credential $UserCredential

Tenga en cuenta que http en vez de https se utiliza para acceder a Web PowerShell.

Asegúrese de que la sesión se haya creado y ahora esté en un Abrió Expresar:

Get-PSSession

Importe la sesión remota de PowerShell a su local:

Import-PSSession $Session

Importar-PSSession desde el servidor de intercambio remoto a través de powershell

Luego, puede usar todos los cmdlets de administración de Exchange en su sesión local de PowerShell.

Recuerde finalizar correctamente las sesiones remotas de PowerShell. Si simplemente cierra la consola de Windows PowerShell sin desconectar su sesión, puede exceder el límite de sesiones remotas de PowerShell.

Para finalizar su sesión, ejecute el siguiente comando:

Remove-PSSession $Session

Asegúrese de que no queden sesiones de PowerShell remotas en ejecución:

Get-PSSession

Puede usar un perfil de PowerShell para importar automáticamente cmdlets de PowerShell desde Exchange remoto a su sesión.

Crea un archivo de perfil:

New-Item -Path $profile -ItemType file -force

Abra Microsoft.PowerShell_Profile.ps1 con el Bloc de notas:

notepad $profile

Agregue comandos al archivo para conectarse a Exchange e importar cmdlets desde una sesión remota a una sesión local de PowerShell:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mbex1.woshub.com/PowerShell/ -Authentication Kerberos -Credential (Get-Credential)
Import-PSSession $Session

usando el perfil de PowerShell para conectarse a la sesión de intercambio remoto

Conectarse a Exchange Online (Microsoft 365) mediante Remote PowerShell

De la misma manera, puede conectarse a su inquilino de Exchange Online (Microsoft 365) para administrar buzones de correo, salas de conferencias, listas de distribución y otras configuraciones de Microsoft 365.

Aprendamos a conectarnos a Exchange Online de forma remota desde la consola de PowerShell utilizando la autenticación básica sin instalar el módulo de Microsoft Exchange Online PowerShell (EXO / EXOv2).

Permita que se ejecuten los scripts de PS locales:
Set-ExecutionPolicy RemoteSigned

Obtenga sus credenciales de administrador de Exchange Online:

$UserCredential = Get-Credential

Este usuario de Azure primero debe poder conectarse de forma remota a través de PowerShell:

Set-User -Identity maxbak@woshub.com -RemotePowerShellEnabled $true

Luego, puede establecer una sesión remota de PowerShell con Microsoft 365:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic –AllowRedirection

Si la autenticación multifactor está habilitada para su cuenta (Microsoft recomienda usar MFA para todas las cuentas de administrador), aparece el siguiente error al intentar conectarse usando New-PSSession:

New-PSSession : [outlook.office365.com] Connecting to remote server outlook.office365.com failed with the following error message : Access is denied.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Luego, deberá instalar el módulo Exchange Online PowerShell V2 (EXO V2):

Install-Module ExchangeOnlineManagement

En este caso, se usa el siguiente cmdlet para conectarse a Exchange Online:

Connect-ExchangeOnline -UserPrincipalName maxbak@woshub.com -ShowProgress $true

O puede deshabilitar MFA para la cuenta:

Set-MsolUser -UserPrincipalName maxbak@woshub.com -StrongAuthenticationRequirements @()

Luego importe la sesión remota a su consola:

Import-PSSession $Session

Conexión a Microsoft 365 con PowerShell remoto

El número máximo de conexiones remotas de PowerShell a Exchange Online está limitado a tres sesiones. Si excede el límite, aparece el siguiente error:

Fail to create a runspace because you have exceeded the maximum number of connections allowed.

Ahora puede administrar sus buzones de correo de Microsoft 365.

Para finalizar todas las sesiones remotas de PowerShell, ejecute este comando:

Get-PSSession | Remove-PSSession

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *