Más a menudo que no, Microsoft Office 365 y todas las aplicaciones incluidas se gestionan a través de un navegador web en una interfaz de usuario gráfica. Básicamente, se utiliza el Centro de administración de Office 365 y las interfaces web del Centro de administración de Exchange. Sin embargo, es posible que necesite utilizar la interfaz de línea de comandos (CLI) para realizar acciones masivas que se apliquen a cientos de cuentas de usuario. Además, es posible que desee utilizar los cmdlets de Exchange Online, que no están disponibles en el Centro de administración.
Muchos administradores utilizan PowerShell (proporcionado por Microsoft) para gestionar Microsoft Exchange Server en la interfaz de línea de comandos. Sin embargo, estos comandos estándar para entornos de servidor Exchange locales no funcionan para Exchange Online que se ejecuta en la nube de Microsoft 365. Para utilizar PowerShell con Office 365, es necesario instalar módulos de PowerShell especiales para conectarse a Office 365. Lea este mensaje para conocer los diferentes métodos para conectarse a PowerShell de Exchange Online.
Requisitos
Hay algunos requisitos que deben cumplirse para conectarse a PowerShell de Exchange Online.
- Debe utilizar PowerShell en Windows 7 SP1 o versiones más nuevas de Windows de escritorio y versiones de servidor de Windows Server 2008 R2 SP1 o más nuevas. Tenga en cuenta que necesita instalar .NET Framework 4.5 o posterior, además de instalar una versión actualizada de Windows Management Framework 3.0, 4.0 o 5.1.
- Se requiere una conexión a Internet. El puerto TCP 80 debe estar abierto para conectarse desde su máquina local al host de destino.
- El acceso a PowerShell de Exchange Online debe estar habilitado para el usuario actual (por defecto, dicho acceso está habilitado para los administradores).
Puede habilitar manualmente el acceso para conectar a PowerShell de Exchange Online para el usuario específico con el comando:
Set-User -Identity [email protected] -RemotePowerShellEnabled $true
Principio de funcionamiento
Se puede conectar a PowerShell de Exchange Online, pero este proceso es más complicado que el uso de PowerShell para gestionar un servidor Exchange local. Sin embargo, se puede utilizar la consola integrada de PowerShell para gestionar infraestructuras en la nube remotas. En este caso, la consola se llama PowerShell remoto o Acceso remoto de PowerShell. El proceso de iniciar una sesión de PowerShell remoto para Office 365 y Exchange Online es ligeramente diferente. Debe descargar e instalar componentes especiales antes de poder abrir una sesión remota de Office 365. Afortunadamente, los cmdlets necesarios para iniciar un PowerShell remoto de Exchange Online se descargan automáticamente cuando se crea una sesión de PowerShell remoto. Se utilizan diferentes conjuntos de cmdlets de PowerShell para gestionar Microsoft Office 365 y Microsoft Exchange Online.
El principal motivo para conectar a Microsoft Exchange Online en PowerShell implica lo siguiente:
- Crear una sesión remota en PowerShell de Exchange Online abierta en su máquina local.
- Proporcionar configuraciones de conexión, pasar autenticación.
- Importar cmdlets de PowerShell que se necesitan para gestionar Exchange Online de forma remota.
En la entrada de blog de hoy, ejecutaremos cmdlets de PowerShell en Windows 10.
Configuración Manual
Vamos a revisar primero el método manual, para entender mejor el principio de configuración.
- Abra Windows PowerShell. Puede hacerlo con al menos dos métodos.
- Haga clic en Inicio, escriba cmd, haga clic derecho en el elemento Símbolo del sistema y seleccione Ejecutar como administrador en el menú contextual.
- Vaya a Inicio > Windows PowerShell. Haga clic derecho en Windows PowerShell y seleccione Ejecutar como administrador para asegurarse de que puede ejecutar comandos de PowerShell sin restricciones.
- Permita la ejecución de scripts (es mejor ejecutar este comando al principio de preparar PowerShell para administrar Exchange Online y Office 365), de lo contrario, obtendrá el error en el futuro al ejecutar el comando Import-PSSession:
Import-PSSession : No se pueden cargar archivos porque la ejecución de scripts está deshabilitada en este sistema. Proporcione un certificado válido con el que firmar los archivos.
- Para ejecutar scripts, la política de ejecución debe establecerse en RemoteSigned.
Set-ExecutionPolicy RemoteSigned
- Pulse Y para confirmar el cambio de política si se le solicita. También puede utilizar el comando Set-ExecutionPolicy Unrestricted para utilizar la política Unrestricted.
De forma predeterminada, el modo de la política de ejecución es Restricted.
- Ejecuta el comando en PowerShell para obtener credenciales e ingresar tu inicio de sesión/administrador y contraseña en la ventana emergente para acceder a Exchange Online. El usuario debe tener permisos administrativos globales en Office 365.
$Credential=Get-Credential
Las credenciales ingresadas se guardarán en la variable y se usarán en el siguiente comando como $Credential. - Debes crear una sesión remota de PowerShell con el cmdlet New-PSSession y ejecutar el siguiente comando:
$Sesión = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credencial -Autenticación Básica -AllowRedirection
Observa que en este comando se establece la URL de destino del servidor Exchange Online que se ejecuta en la nube y que debe aceptar la solicitud. Después de ejecutar el comando, los servidores en la nube de Microsoft Office 365 te proporcionarán acceso al servidor virtual de Exchange Online correspondiente a tu cuenta.
- Los cmdlets de PowerShell de Exchange Online deben importarse a la sesión actual con el comando:
Import-PSSession $Session
- Puedes ver la barra de progreso mientras recibes los comandos.
- Después de ejecutar con éxito el comando, verás el siguiente mensaje:
Nota: Si utilizas el MFA para tu cuenta, los cmdlets estándar explicados anteriormente no funcionarán. Si deseas conectarte a Exchange Online en PowerShell utilizando MFA, ejecuta el siguiente comando:
Connect-EXOPSSession -UserPrincipalName TU_UPN
Donde TU_UPN (nombre principal de usuario) es el nombre de la cuenta de Office 365 que estás utilizando. Es posible que necesites instalar el módulo de PowerShell remoto de Exchange Online de Microsoft. Ten en cuenta que al utilizar este módulo, la sesión termina después de una hora, lo cual puede ser inconveniente para ejecutar scripts largos. Considera el uso de direcciones IP de confianza (es decir, las direcciones IP de tu organización) para omitir MFA al conectar desde la red de tu empresa a Exchange Online PowerShell. MFA (Autenticación Multifactorial) es el método avanzado de autenticación que agrega una segunda capa de seguridad. Después de ingresar una contraseña, el código de confirmación se envía al teléfono celular del usuario y el usuario debe ingresar el código de confirmación para verificar la cuenta y obtener acceso a los servicios en la nube de Office 365.
- Una vez que te hayas conectado a Office 365 y Exchange Online, puedes administrar tu entorno en la nube de Office 365. Verifiquemos que nos hayamos conectado a Exchange Online correctamente y listemos los buzones de correo de los usuarios, por ejemplo.
Get-Mailbox
Puedes listar todos los cmdlets disponibles para Exchange Online PowerShell con el siguiente comando:
Get-Command -Module tmp*
Los nombres de los cmdlets de PowerShell de Exchange Online no se convierten.
- Al finalizar tu trabajo con Exchange 365, desconecta la sesión. Esta es la práctica recomendada.
Remove-PSSession $Session
Lamentablemente, no se muestran mensajes después de ejecutar este comando. Puedes verificar si la sesión está desconectada ejecutando el comando Get-MailBox. Si la sesión está desconectada, recibirás el error que explica que no puedes ejecutar cmdlets de Exchange Online después de desconectar.
¿Por qué deberías desconectar la sesión? Bueno, simplemente porque el número de sesiones activas concurrentes que se pueden abrir simultáneamente está limitado a tres. Si abres tres sesiones de Exchange Online PowerShell a la vez y no desconectas ninguna de ellas cuando no estás usando, tendrás que esperar a que una de estas sesiones expire antes de poder conectarte a Exchange Online PowerShell nuevamente desde una nueva consola de PowerShell.
Configuración Automatizada
Ahora que conoces el principio de cómo conectarte a Exchange Online PowerShell manualmente, puedes usar el método automatizado. La ventaja de este método es el menor número de comandos que debes ingresar.
- Descargar el script desde el sitio web de Microsoft. El nombre del archivo de script es ConnectExchangeOnlinePowerShell.ps1 en este caso.
- Ve al directorio donde se encuentra el script; en nuestro ejemplo, el script se guarda en C:\temp_win\.
- Antes de ejecutar el script, edita la directiva de ejecución del script (de manera similar a lo que se muestra en el primer método), de lo contrario obtendrás el error:
El archivo C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 no está firmado digitalmente. No puedes ejecutar este script en el sistema actual.
Puedes aplicar la directiva de ejecución Bypass para evitar este problema:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- Escribe Y para confirmar el cambio de la directiva de ejecución.
- Después de eso, puedes ejecutar el script. Si no usas MFA, ejecuta el script sin argumentos adicionales:
.\ConnectExchangeOnlinePowerShell.ps1
Si en tu entorno de Office 365 se utiliza MFA (Multi-Factor Authentication), prueba el comando:
.\ConnectExchangeOnlinePowerShell.ps1 -MFA
- Ahora que te has conectado con éxito a Exchange Online, puedes administrar las cuentas de usuario, sus buzones de correo, etc. Por ejemplo, puedes listar los buzones de correo de tus usuarios:
Get-Mailbox
Este script se puede utilizar para programar y automatizar tareas. Por ejemplo, puedes conectarte a Exchange Online sin ingresar credenciales en la ventana interactiva como se muestra arriba. Puedes ingresar tu nombre de usuario y contraseña en la línea de comandos como opciones de comando al ejecutar el script:./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@tu_domino.com -Password tu_contraseña
Ten en cuenta que ingresar contraseñas como texto plano en la línea de comandos puede no ser seguro.
- Cuando termines de trabajar con Exchange Online en PowerShell, no olvides cerrar la sesión:
./ConnectExchangeOnlinePowerShell.ps1 -Desconectar
Método Alternativo
Vamos a considerar un método más que se puede utilizar para conectarse a Exchange Online PowerShell. Este método puede considerarse como una modificación del primer método.
- Crea un nuevo perfil para PowerShell con la función:
New-item -type file -force $profile
- Edita el archivo de configuración del perfil en el editor de texto para agregar la función titulada Connect-EXOnline:
notepad $profile
- Agregue el siguiente contenido al archivo de configuración del perfil de PowerShell y cambie [email protected] por su nombre de cuenta, luego guarde el archivo de texto.
Función Conectar-EXOnline
{
$credenciales = Get-Credential -Credencial [email protected]
Escribir-Salida “Obteniendo los cmdlets de Exchange Online”
$Sesión = Nueva-PSSesión -UriConexión https://outlook.office365.com/powershell-liveid/ `
-NombreConfiguración Microsoft.Exchange -Credencial $credenciales `
-Autenticación Básica -PermitirRedirección
Importar-PSSesión $Sesión
} - Cierra la ventana de PowerShell actual y abre una nueva ventana de PowerShell como administrador. Ejecuta el comando para conectarte a Exchange Online PowerShell:
Connect-ExOnline
Ingresa tu contraseña en la ventana emergente. - Cuando hayas terminado de trabajar con Exchange Online PowerShell, finaliza la sesión con el siguiente comando:
Get-PSSession | Remove-PSSession
Conclusión
Exchange Online PowerShell es una buena alternativa a la interfaz web del Centro de administración de Exchange. Con PowerShell de Office 365 y Exchange Online PowerShell, puedes realizar operaciones masivas y acciones con múltiples objetos mediante un solo comando o script. La publicación de blog de hoy ha cubierto cómo conectarse a Exchange Online PowerShell mediante tres métodos, uno de los cuales es automatizado. El principio de funcionamiento de cada método es similar y consta de tres pasos principales: crear una sesión remota de PowerShell, autenticarse e importar cmdlets de Exchange Online PowerShell.
Una recomendación importante es que desconectes la sesión remota de PowerShell cuando termines de trabajar con Exchange Online PowerShell para evitar una situación en la que todas las sesiones estén ocupadas y no sea posible abrir una nueva sesión remota de Exchange Online PowerShell. Tener Exchange Server en la nube es una solución fiable, pero incluso en este caso, se recomienda que hagas una copia de seguridad de tu servidor Exchange para proteger tus datos contra eliminaciones accidentales y otros desastres.
Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/