checks/entra/stale-devices.ps1
|
# Registered/joined devices with no sign-in activity in 90+ days. $cut = (Get-Date).AddDays(-90) $devices = Get-GraphAll 'https://graph.microsoft.com/v1.0/devices?$select=displayName,approximateLastSignInDateTime,operatingSystem,trustType' $items = @() foreach ($d in @($devices)) { $last = To-Date $d.approximateLastSignInDateTime if ($last -and $last -lt $cut) { $items += [pscustomobject]@{ Title = $d.displayName; Detail = "Last activity $($last.ToString('yyyy-MM-dd')) ($($d.operatingSystem), $($d.trustType))" } } } [pscustomobject]@{ Name = 'Stale devices (90+ days)' Severity = 'low' Evidence = "$($items.Count) device(s) with no sign-in activity in 90+ days" Fix = 'Review and remove devices with no recent activity; stale devices still hold tokens and widen the attack surface.' Items = $items } |