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

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

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
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
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

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





