OF365 – Automatización de tareas y demás…
En determinadas ocasiones puede surgir la necesidad de ejecutar tareas de forma periódica en nuestro tenant de Office 365, tales como la asignación de licencias, operaciones sobre buzones/usuarios, etc…
El principal inconveniente que nos podemos encontrar, es poder tener la capacidad de autenticarnos de forma segura en Office 365. Si os habéis encontrado en esta tesitura, espero que esta entrada os ayude en algo 😉
La idea es crear un fichero (cifrado) con el password del usuario que utilizaremos para validarnos, y posteriormente utilizarlo en un script para conectarnos sin necesidad de introducir ninguna validación.
Para crear este fichero, utilizaremos el siguiente comando.
read-host -assecurestring | convertfrom-securestring | out-file C:\securestring.txt
Al ejecutarlo, se deberá introducir el password del usuario.
-convert-securestring: convierte un SecureString (System.Security.SecureString) en un EncryptedStandardString (System.String) y nos permite almacenarlo en un fichero para su posterior uso.
Si accedemos al contenido del fichero…
Posteriormente utilizaremos este fichero para validarnos en Office 365.
A continuación, creamos un script en PowerShell con el siguiente contenido (p.e o365.ps1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$user= "tasks@tokiota.com" Import-Module MSOnline $pass = cat C:\securestring_tokiota.txt | convertto-securestring $mycreds = new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$pass Connect-MsolService -Credential $mycreds $msoExchangeURL = “https://ps.outlook.com/powershell/” $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $msoExchangeURL -Credential $mycreds -Authentication Basic -AllowRedirection Import-PSSession $session <strong><em> # En este punto ejecutamo el/los scripts que queramos</em></strong> .\GetMsolUserReport.ps1 -OutputFile UsersReport.csv Remove-PsSession $session |
Este script esta disponible en el siguiente repositorio de GitHub (aún me estoy familiarizando con esto del blog y no he conseguido pegarlo como tal… 🙁 )
(https://github.com/Tokiota/AutologonO365/blob/master/o365.ps1)
Finalmente, creamos un acceso directo con la siguiente ruta, o programamos una Schedule Task
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command «. ‘o365.ps1′»
El script que se ejecuta (GetMsolUserReport.ps1) forma parte de un repositorio de scripts facilitados por Microsoft para la ayuda en la gestión de Office 365. (Office 365 Helper Scripts – http://www.microsoft.com/en-us/download/confirmation.aspx?id=29568 ).
Existen algunos interesantes:
– GetMsolUserReport: se obtiene información tanto a nivel de usuario, como de buzón (licencia, tamaño del buzón…)
– AssignLicenseByDG: utilizado para asignar licencias. Útil cuando se migran buzones desde Exchange OnPremise, ya que al buzón no se le asigna ninguna licencia de forma automática en Office 365 🙁
Por último, comentar que de momento no se permite la gestión de Sharepoint Online/Lync Online a través de PowerShell. Sí que existe «Sharepoint Online Management Shell» pero solo soportado para Office 365 Preview (espero poder dedicarle una entrada un día de estos)
http://www.microsoft.com/en-us/download/details.aspx?id=30359
Saludetes!! 😀
Comentarios recientes