Conexión a Office365 por PowerShell
Esta entrada trata de como conectar por PowerShell al entorno Microsoft Office365 para su administración avanzada. Ya sabéis que no todo se puede hacer por el entorno gráfico, sino que tenemos el gran potencial en la propia PowerShell. De la misma manera como lo hacemos con Microsoft Azure, que se habla en esta entrada, también lo tenemos con Office 365. Aparte de administrar las cuentas de usuario y la suscripción de Office 365, se accede a la administración del entorno de Microsoft Exchange Online, Microsoft SharePoint Online y Microsoft Skype for Business Online.
Preparando el equipo para conectar por PowerShell a Office365
Para empezar a administrar Office365 por la PowerShell hay que descargar y instalar los módulos de administración de Microsoft Office 365 para PowerShell, en concreto son cuatro módulos: Microsoft Online Services Sign-In, Microsoft Azure Active Directory, Microsoft SharePoint Online y Microsoft Skype for Business Online..
Microsoft Online Services Sign-In
Es el módulo que contiene las herramientas de conexión y administración generales del entorno Microsoft Office 365, por lo tanto, es lo primero que se debe instalar. Enlace de descarga del módulo Microsoft Online Services Sign-In.
Del enlace en la web, indicar el idioma que queráis y descargar el archivo msoidcli_32.msi para sistemas operativos de 32 bits, o bien msoidcli_64.msi para los de 64 bits.
La instalación de la aplicación es muy simple, aceptar las condiciones de uso y hacer clic en el botón Instalar. Pide permiso para hacer la instalación como administrador, hacer clic en el botón Si.
Una vez acaba de copiar los archivos binarios, ya se puede cerrar el instalador haciendo clic en el botón Finalizar.
Módulo Microsoft Azure Active Directory (AD)
Como su nombre indica, permite gestionar el Azure Active Directory de lo que se sustenta Microsoft Office 365 y Microsoft Azure para gestionar las cuentas de usuario. Enlace de descarga del módulo Microsoft Azure Active Directory.
En el caso de iniciar la aplicación directamente desde el navegador y/o tengáis habilitado el SmartScreen, es posible que os pida la autorización, hacer clic en el botón Ejecutar.
Se inicia el instalador, hacer clic en el botón Continuar.
Aceptar los términos de la licencia y hacer clic en el botón Continuar.
Especificar la ubicación donde se instala la aplicación y si se quiere dejar un acceso directo al escritorio. Se puede dejar por defecto, hacer clic en el botón Continuar.
Proceder con la instalación, hacer clic en el botón Instalar. Lo más seguro es que también se pida permiso para hacer la instalación como administrador, hacer clic en el botón Si.
Acaba la instalación de los binarios, hacer clic en el botón Finalizar.
Módulo Microsoft SharePoint Online (SPO)
Para la administración de SharePoint Online (SPO). Enlace de descarga del módulo de SharePoint Online (SPO).
Descargar según la versión que toque, 32 bits: sharepointonlinemanagementshell_4613-1211_x86_en-us.msi; o de 64 bits: sharepointonlinemanagementshell_4613-1211_x64_en-us.msi. Una vez descargado, se ejecuta para hacer la instalación. Sólo arrancar, hacer clic en el checkbox de aceptación de los términos de la licencia y hacer clic en el botón Continuar. Es probable que pida autorización como administrador para hacer la instalación de la aplicación. Hacer clic en el botón Si.
Una vez ha acabado de hacer la instalación, esta es bastante rápida, hacer clic en el botón Finalizar.
Módulo Microsoft Skype for Business Online (SBO)
Para la administración de Microsoft Skype for Business Online (SBO). Enlace de descarga del módulo de Skype for Business Online (SBO).
Descargar de la web y ejecutar. En la primera pantalla, marcar el checkbox de aceptación de los términos de la licencia y hacer clic en el botón Instalar. Es probable que pida autorización como administrador para hacer la instalación de la aplicación. Hacer clic en el botón Si.
Una vez ha acabado de hacer la instalación, esta también es bastante rápida, hacer clic en el botón Cerrar.
Con todos los módulos instalados en el equipo y aparentemente no pasa nada, ya se pueden empezar a utilizar dentro de la PowerShell de Windows.
Conexión a Microsoft Office365 por PowerShell
Abrir una consola de Windows PowerShell. Botón Inicio, en el cuadro de texto de Cortana, en Microsoft Windows 10, o de búsqueda en versiones Microsoft Windows 8, escribir PowerShell.
En la lista de resultados, localizar la aplicación Windows PowerShell, botón derecho del ratón sobre ella y hacer clic en Ejecutar como Administrador. Pedirá confirmación para ejecutarse con privilegios de administrador, hacer clic en el botón Si.
Después de instalar los módulos es conveniente asegurar que se han instalado correctamente y están disponibles en la PowerShell con el comando:
get-module -ListAvailable
Del listado, localizar los módulos SharePoint Online, SkypeOnlineConnector y LyncOnlineConnector. En caso que no aparezcan, mejor reiniciar el equipo.
Algunos de los módulos contienen scripts, por lo tanto, se tiene que tener en cuenta en que estado se encuentra la política de ejecución de scripts de la PowerShell:
get-executionpolicy
Por seguridad, se puede dejar en AllSigned; recordar que el cambio se tiene que hacer con la consola de PowerShell ejecutándose con privilegios de administrador.
set-executionpolicy AllSigned
En caso de tener que utilizar la PowerShell de Skype for Business, como que carga scripts remotos, pasar la política a RemoteSigned o bien Unrestricted.
set-executionpolicy RemoteSigned
Teniendo el entorno de PowerShell preparado ya se puede hacer la conexión. Establecer las credenciales que se utilizarán para conectar al portal de Microsoft Office365 a una variable:
$credencials_office365=get-credential
Automáticamente aparece un cuadro de diálogo pidiendo el nombre del usuario y la contraseña de un usuario de Microsoft Office365, introducirlos según corresponda. No hace falta decirlo, pero si se quieren hacer tareas administrativas, este usuario tiene que ser administrador del entorno.
Cargar el módulo de administración de Microsoft Office 365 en la PowerShell:
Import-module MSOnline
Para SharePoint Online:
Import-module Microsoft.Online.Sharepoint.PowerShell
Para Skype for Business Online, este pide que el servicio de ejecución remota WinRM esté funcionando, confirmar su carga (Yes):
Import-module LyncOnlineConnector
Con los módulos cargados, establecer la conexión a Microsoft Office365 con el usuario y contraseña que se han asignado a la variable de credenciales.
Connect-MsolService -Credential $credencials_office365
Con la conexión a Microsoft Office365 realizada, se puede conectar a otros servicios como Microsoft Exchange Online, asignando a una variable la sesión pasándole las credenciales de Microsoft Office365:
$sessioExchange = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credencials_office365 -Authentication "Basic" -AllowRedirection
Y importante la sesión de Microsoft Exchange Online en la sesión de PowerShell:
Import-PSSession $sessioExchange
Para conectar a Microsoft SharePoint Online, se tiene que saber la ruta de administración del sitio, que varia en cada caso. Se puede conseguir desde el panel de administración de Microsoft Office365 haciendo clic en el apartado SharePoint. Tomar nota de la URL que se inicia. Suele constar del nombre principal del dominio de Microsoft Office365 seguido de -admin.sharepoint.com.
Con la URL de administración se puede realizar la conexión a Microsoft SharePoint Online, en el siguiente comando se utiliza una url de ejemplo:
Connect-SPOService -url https://exemple-admin.sharepoint.com -Credential $credencials_office365
Para conectar a Microsoft Skype for Business, se establece una sesión inicial y se importa a la consola de PowerShell:
$sessioSBO = New-CsOnlineSession -Credential $credencials_office365 Import-PSSession $sessioSBO
Tenemos conectados todos los servicios principales de Microsoft Office365 a la PowerShell, ahora es cuestión de pasar los comandos que necesitamos para la administración.
A continuación hay el listado con las instrucciones utilizadas preparadas para hacer un copiar y pegar y cambiar la url de SharePoint con vuestro acceso:
$credencials_office365=get-credential $urlsharepointonline=https://exemple-admin.sharepoint.com Import-module MSOnline Import-module Microsoft.Online.Sharepoint.PowerShell Import-module LyncOnlineConnector Connect-MsolService -Credential $credencials_office365 $sessioExchange = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credencials_office365 -Authentication "Basic" -AllowRedirection Import-PSSession $sessioExchange Connect-SPOService -url $urlsharepointonline -Credential $credencials_office365 $sessioSBO = New-CsOnlineSession -Credential $credencials_office365 Import-PSSession $sessioSBO
Llegados a este punto ya se pueden utilizar los comandos del entorno. Aquí dejo unos ejemplos.
- Para ver los dominios dados de alta en la suscripción de Microsoft Office365:
-
Get-Msoldomain
- Para ver los usuarios activos de Microsoft Office365:
-
Get-Msoluser
- Para ver los usuarios que se han borrado de Microsoft Office 365:
Get-Msoluser -ReturnDeletedUsers
- Ver la lista de buzones con el último inicio de sesión y días de inactividad en Microsoft Exchange Online, ¿os suena el comando? Sí, es la misma que para Microsoft Exchange 2010, 2013, 2016:
-
Get-StaleMailboxDetailReport | Sort username -Unique | SELECT TenantName, UserName, WindowsLiveID, LastLogin, DaysInactive
- Cuánto ocupa cada buzón de usuario, con la fecha del último inicio de sesión:
Get-Mailbox | get-mailboxstatistics | select-object DisplayName,TotalItemSize,LastLogonTime
- Para ver los sitios de Microsoft SharePoint Online:
-
Get-SPOSite
- Ver las políticas de cliente de Microsoft Skype for Business Online:
Get-CsClientPolicy
- etc… Imaginación al poder!
Se pueden encontrar más ejemplos d’scripts en la dirección web de la PowerShell de Office365: http://powershell.office.com/script-samples/
¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!
Similar Posts by The Author:
- Microsoft SQL Server con SMB3
- Microsoft SQL Server amb SMB3
- Containers en Linux
- Containers amb Linux
- Migrar el servidor de archivos a Windows Server 2019
- Migrar el servidor de fitxers a Windows Server 2019
- Puerta enlace a Azure en el Windows Admin Center
- Porta enllaç a Azure en el Windows Admin Center
- Hola mundo! WordPress 5 y Gutenberg
- Hola món! WordPress 5 i Gutenberg
Josep Ma Solanes, muy buen aporte, consulta que pasa cuando tenes una cuenta de usuario de multifactor?
Podrías por favor biendrame ayuda en este caso, como conectarse a través del powershell
Muchas gracias
Me podrías indicar para poder utilizar powershell a través de multifactor.
o puede ser esto que indico a continuación.
Actualización de la Azure Active Directory PowerShell Módulo para permitir AMF
De acuerdo con Soporte de MS [1] no se puede utilizar una cuenta con la AM para conectarse a través de PowerShell AAD. Este es un problema, porque la mayoría de las actividades realizadas con PS requieren derechos de administrador, y queremos que las cuentas de administrador para tener AMF.
Hice algo de investigación y creo que esta limitación proviene del hecho de que el módulo de AAD PowerShell sigue utilizando los servicios en línea de Microsoft Asistente de inicio de sesión [2] para la autenticación.
Parece que la EM es la actualización de las aplicaciones de Office para usar ADAL en lugar de la sesión de MSOL Asistente para «permitir nuevos flujos de autenticación, incluyendo soporte para la autenticación de factores múltiples (MFA).» [3]
Propongo hacer la misma actualización al módulo PS AAD.
[1] http://community.office365.com/en-us/f/148/t/222763.aspx
[2] http://go.microsoft.com/fwlink/?LinkID=286152
[3] http://blogs.office.com/2014/11/12/office-2013-updated-authentication-enabling-multi-factor-authentication-saml-identity-providers
Me acabas de pillar. Ahora mismo no sé darte una contestación válida, no obstante lo buscaré y preguntaré. Sí sé que hay entornos en que puedes generar una contraseña a nivel de aplicación y no de usuario. Si estaria bien para la automatización de tareas pero, como bien dices, no para el trabajo diario de un administrador.
Me lo guardo para publicar un artículo al respecto. Muchas gracias y saludos.