Obteniendo Usuarios inactivos en Office 365 con PowerShell
Uno de los mayores problemas con los que nos encontramos al manejar cualquier plataforma es tener el control de los usuarios inactivos.
Este problema se agrava en Office365, ya que entre los usuarios que se dejan de usar y los usuarios invitados acabamos teniendo el Azure AD mal gestionado. Además, nos enfrentamos a las directivas de seguridad de Office365, que nos obligan a controlar a los usuarios que no se han conectado en los últimos 30 a 90 días.
Para obtener el listado de usuarios inactivos, vamos a seguir los siguientes pasos:
1. Modificar el guión de PowerShell
Empezamos con la modificación del guión de PowerShell.
https://github.com/OfficeDev/O365-InvestigationTooling/blob/master/InactiveUsersLast90Days.ps1
Este script, nos lleva a la directiva de crear un archivo CSV con el «UserPrincipalName» de los usuarios para generar un informe.
2. Ejecutando el guión
Para la ejecución del Script, tenemos que prestar atención a los puntos que tenemos que modificar para poner la cuenta de un Administrador del Tenant.
#Set admin UPN $UPN = 'e.rodado@contoso.com'
En la variable $UPN (UserPrincipalName) tendremos que poner el login del administrador de un Tenant. Esta variable se utiliza para abrir la conexión con el EXO de Exchange Online.
Si necesitamos conocer los usuarios inactivos con otro período de tiempo sólo tenemos que modificar la siguiente variable:
$startDate = (Get-Date).AddDays(-90).ToString('MM/dd/yyyy')
Si en la variable $startDate cambiamos «-90» por otra cantidad de días hará que generemos el informe de los usuarios inactivos con este período. Por ejemplo, si ponemos «-30» el informe que se generará será el de los usuarios inactivos que no hayan iniciado sesión durante 30 días o más.
Y si quieres agilizar el proceso de Digitalización de tu Empresa, consulta nuestra página de Escritorios Virtuales.
3. Obtener la historial
El Script dejará el informe en «C:\Usuarios\»+ $DesktopUser +»\Documentos\N-Retorno\Auditorías_» + $fecha +».csv» así que deberías haber creado la carpeta «Return» en tu carpeta «Documentos». Este archivo que se crea tendrá la fecha y la hora del momento en que fue creado. De esta manera podrás tener un historial de usuarios inactivos.
import-module MSOnline $date = Get-Date -UFormat "%Y%m%dT%H%M%S" $DesktopUser = $env:USERNAME $ReturnFile = "C:\Users\"+ $DesktopUser +"\Documents\Return\Auditorias_" + $date +".csv" $Value = "UserPrincipalName" Add-Content -Path $ReturnFile -Value $Value #Set admin UPN $UPN = 'e.rodado@aleson-itc.com' #This connects to Azure Active Directory & Exchange Online Connect-MsolService $EXOSession = New-ExoPSSession -UserPrincipalName $UPN Import-PSSession $EXOSession -AllowClobber $startDate = (Get-Date).AddDays(-90).ToString('MM/dd/yyyy') $endDate = (Get-Date).ToString('MM/dd/yyyy') $allUsers = @() $allUsers = Get-MsolUser -All -EnabledFilter EnabledOnly | Select UserPrincipalName, ObjectId $loggedOnUsers = @() $loggedOnUsers = Search-UnifiedAuditLog -StartDate $startDate -EndDate $endDate -Operations UserLoggedIn, PasswordLogonInitialAuthUsingPassword, UserLoginFailed, CreationDate -ResultSize 5000 $inactiveInLastThreeMonthsUsers = @() $inactiveInLastThreeMonthsUsers = $allUsers.UserPrincipalName | where {$loggedOnUsers.UserIds -NotContains $_} Write-Output "The following users have no logged in for the last 90 days:" Write-Output $inactiveInLastThreeMonthsUsers Write-Host "`n" foreach($USERID in $inactiveInLastThreeMonthsUsers) { Write-Host "`tEl usuario es: " $UserID $Value = $UserID Add-Content -Path $ReturnFile -Value $Value }
Espero que os sea de utilidad a la hora de Identificar a los usuarios inactivos.
Si te ha parecido interesante, también puedes consultar mis posts sobre:
- Cómo obtener el Inventario completo de TEAMS con Powershell
- Cómo dar de Alta Usuarios en Office 365 con PowerShell
Si quiere que ayudemos a su negocio o empresa, contáctenos en info@aleson-itc.com o llámenos al +34 962 681 242
Consultor en plataformas Microsoft con más de 20 años de experiencia y con las de 15 años de experiencia en Microsoft Sharepoint