Continuo con píldoras de Powershell y nube, como Office 365 y Azure. Hoy algo habitual, nos conectaremos a Office 365 y Azure a través de Powershell y realizaremos alguna que otra consulta util 😉
Hablamos tanto de Powershell que tendríamos ya que considerarla una herramienta del dia a dia. Releyendo posts se comenta que casi un 40% de las funcionalidades de Office 365 no están visibles en el panel de administración, solo pudiendo ejecutarlas a traves de scripts. ¿ventajas e inconvenientes del uso de Powershell? Creo que ya poco nos queda comentar, inconvenientes, que hay que estudiarlo y hacerle uno mas de la familia repitiendo, repitiendo y repitiendo. ¿ventajas? ejecutar tareas no visibles en las consolas de gestión, poder scriptar acciones y hacerlas repetitivas?, etc., etc.
Un detalle importante a tener en cuenta es que cada servicio de Office 365 tiene su «Endpoint» de conexión
Sistemas operativos Soportados
- Windows 10
- Windows 8.1 o Windows 8
- Windows Server 2016
- Windows Server 2012 R2 o Windows Server 2012
- Windows 7 Service Pack 1 (SP1)*
- Windows Server 2008 R2 SP1*
* Hay que instalar los prerrequisitos ya que no vienen por defecto.
Prerrequisitos
- Microsoft .Net Framework 4.5
- Windows Management Framework 3.0 , Management Framework 4.0 o superior.
Instalación
Para empezar tenemos instalar el módulo que contiene las herramientas de conexión y administración generales para Office 365.
Instalar Microsoft Online Services Sign-in assistant.
https://www.microsoft.com/en-us/download/details.aspx?id=41950
Para luego, descargarnos e instalar los módulos de administración de Microsoft Office 365 para Powershell, algo que suponiais, que como hemos visto:,
Aunque ya lo hemos visto en posts anteriores, os dejo también el de Azure ;.)
- Instalar módulo powershell para Windows Azure:
http://go.microsoft.com/fwlink/p/?linkid=236297 (x64)
http://go.microsoft.com/fwlink/p/?linkid=236298 (x32)
Una vez descargado e instalados los módules que hayamos considerado necesarios procedemos a ir ejecutando cmdlet por cmdlet o en scritp, a gusto del consumidor:
- Ejecutar windows azure PS como administrador e introducir:
Set-ExecutionPolicy RemoteSigned (escribir S y aceptar) - Introducimos las credenciales $Credentials = Get-Credential
- Creamos una variable de sesión donde configuramos la conexión a Exchange Online con las credenciales anteriores:
- $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Credentials -Authentication Basic –AllowRedirection
- Inicializamos la sesión:
Import-PSSession $Session - Abrimos la conexión con Microsoft Online:
connect-msolservice -credentials $Credentials
Y ya esta, a funcionar - Cerrar sesión PS: (MUY IMPORTANTE, EXISTEN SESIONES LIMITADAS)
Remove-PSSession $Session
Si no cerramos la sesión y hemos ocupado todas las disponibles nos tocará esperar a que alguna expire para volver a acceder.
Otro detalle a tener en cuenta es que para Office 365 operado por 21Vianet, use el valor ConnectionUri: https://partner.outlook.cn/PowerShell y para Office 365 Germany, use el valor ConnectionUri: https://outlook.office.de/powershell-liveid/
Llegados a este punto, vamos a ejecutar varios cmdlets que nos pueden ser útiles:
Para ver los dominios dados de alta en nuestra suscripción de Microsoft Office365:
1 |
Get-Msoldomain |
Para ver los usuarios activos, por ejemplo, de Microsoft Office365:
1 |
Get-Msoluser |
Para ver los números de referncia de las licencias que tenemos consumidas y asignadas de Microsoft Office365:
1 |
Get-MsolAccountSku |
etc, etc, etc.,……. hay una infinidad de opciones sobre cada cmdlet, asi que tendremos que buscar en Internet aquello que se adapte a nuestras necesidades, como por ejemplo:
- Para ver las suscripciones y su estatus asi como las licencias:
1 |
Get-Msolsubscription | select OCPSubscriptionId, SkuPartNumber, TotalLicenses | export-csv c:\tmp\exportdemo.csv -Append |
Pues aqui tenemos nuestro Excell para el informe del jefe superchulo 😉
- Ver la lista de buzones con el último inicio de sesión y días de inactividad en Microsoft Exchange Online:
1 |
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:
1 |
Get-Mailbox | get-mailboxstatistics | select-object DisplayName,TotalItemSize,LastLogonTime |
- Para ver los sitios de Microsoft SharePoint Online:
1 |
Get-SPOSite |
- Ver las políticas de cliente de Microsoft Skype for Business Online:
1 |
Get-CsClientPolicy |
- Para ver los usuarios que se han borrado de Microsoft Office 365:
1 |
Get-Msoluser -ReturnDeletedUsers |
Y muchos, muchos mas. ………..
Para finalizar dos apuntes:
Primero, una vez abierta la sesión con O365, conviene cerrarla cuando hayamos terminado ya que tenemos un número limitado, como ya hemos comentado:
Como se puede ver, consultamos cuantas sesiones tenemos y cerramos las que nos interesen, en este caso solo tenemos una.
Segundo, si vamos a trabajar diariamente con O365 y Powershell, mi recomendación es tener un acceso directo en nuestro directorio que ejecute el script de conexión, algo asi como:
1 |
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -NoLogo -WindowStyle Maximized -File "Z:\scripts\O365\ConexionO365.ps1 |
Yo por mi parte voy a probar otros scripts muy chulos a los que buena gente pone a nuestra dispoción como por ejemplo este de Ryan Mangan que ademas de hacer todo el proceso de login trabaja con Alias y vamos, mas currado que el mio algo esta ;-), Self-Service:
Podeis verlo todo esto y mucho mas en otros links, con otras palabras. Gracias a todos:
- Blog de Plain Concepts (Gracias Alberto).
- Blog de Juanjo Diaz Antuña (un abrazo Juanjo).
- El Taller de SharePoint.
- Blog de Josep Ma Solans.
Que tengais buen fin de semana
Roberto