¡Como realizar el borrado masivo de usuarios de Office 365 mediante PowerShell!
A raíz de una pregunta que me han hecho esta tarde sobre como borrar de forma masiva varios usuarios (incluyendo sus licencias), me he puesto a hacer pruebas y este es el resultado al que he llegado (hay más formas de llegar al mismo): borrar los usuarios a partir de sus cuentas de usuario almacenadas en un csv. El script que se muestra a continuación simplemente:
-
Realiza una conexión a Office 365 mediante get-credential y connect-msolservice (Nota: Para ejecutar comandos contra Windows Azure Active Directory os recomiendo la siguiente referencia: http://technet.microsoft.com/en-us/library/jj151815.aspx)
-
Con Import-CSV imputamos el archivo .csv que contiene los usuarios a borrar.
-
En un bucle, nos recorremos los datos con los usuarios a borrar y mediante Get-MSolUser y Remove-MsolUser eliminamos los usuarios y nos aseguramos que no se queden almacenados en la papelera de reciclaje.
1 |
1: #Hacemos un buen uso de PowerShell par ano penalizar el rendimiento |
1 |
2: $host.Runspace.ThreadOptions = "ReuseThread" |
1 |
3: |
1 |
4: #Conexión a Office 365 |
1 |
5: $msolcred = get-credential |
1 |
6: connect-msolservice -credential $msolcred |
1 |
7: |
1 |
8: #Función para la carga de datos |
1 |
9: function Remove-Office365Users |
1 |
10: { |
1 |
11: # Cogemos los datos del archivo CSV |
1 |
12: $bFileExists = (Test-Path $sInputFile -PathType Leaf) |
1 |
13: if ($bFileExists) { |
1 |
14: "Cargando $InvFile para Procesado..." |
1 |
15: $tblDatos = Import-CSV $sInputFile |
1 |
16: } else { |
1 |
17: Write-Host "¡No se encuentra el archivo $sInputFile. Parando la importación!" -foregroundcolor Red |
1 |
18: exit |
1 |
19: } |
1 |
20: |
1 |
21: # Carga de los datos en las listas auxiliares |
1 |
22: Write-Host "Borrando usuarios de Office 365 ..." -foregroundcolor Green |
1 |
23: foreach ($fila in $tblDatos) |
1 |
24: { |
1 |
25: "Borrando el usuario " + $fila.$sNombreColumna.ToString() |
1 |
26: Get-MsolUser -UserPrincipalName $fila.$sNombreColumna | Remove-MsolUser -Force -RemoveFromRecycleBin |
1 |
27: |
1 |
28: } |
1 |
29: |
1 |
30: Write-Host "-------------------------------------------------------" -foregroundcolor Blue |
1 |
31: Write-Host "Borrado completado" -foregroundcolor Blue |
1 |
32: Write-Host "-------------------------------------------------------" -foregroundcolor Blue |
1 2 |
33: } 34: |
1 |
35: $ScriptDir = Split-Path -parent $MyInvocation.MyCommand.Path |
1 |
36: $sInputFile=$ScriptDir+ "\UsuariosABorrar.csv" |
1 |
37: $sNombreColumna="UserPrincipalName" |
1 |
38: Remove-Office365Users |
- En cuanto al archivo
- En cuanto al archivo .csv, tiene que tener la siguiente estructura:
Referencias:
- Referencia de comandos PowerShell para Windows Azure Directory: http://technet.microsoft.com/en-us/library/jj151815.aspx
- Remove-MSolUser: http://technet.microsoft.com/en-us/library/dn194132.aspx
No comments yet.