Last Update: Nov 19, 2024 | Published: Sep 10, 2020
Apple’s much-awaited release of iOS 14 is due this Fall. According to Office 365 notification MC221506 published on 4 September, a consequence of the release is that Microsoft will adjust its minimum iOS system requirements for Outlook for iOS and watchOS. Microsoft has always supported the two most recent versions of iOS, meaning that once iOS14 is available, iOS12 will no longer be a supported platform. That’s the downside. The upside from an Outlook user perspective is that Outlook can be made the default email client for iOS14.
Microsoft says that being unsupported means that devices running iOS12 “will no longer receive Office app updates.” In other words, the same lack of support extends to all the Office apps on iOS. The apps will continue working, but users won’t be able to download and install the latest versions until they move to iOS13 or iOS14. Microsoft also notes: “Over time, Outlook for iOS on iOS 12 devices will eventually stop synchronizing email and calendar data.”
Obviously, it’s time to check if any soon-to-be-elderly iOS devices are in active use with Outlook. One way to tackle the problem is to use the mobile device information recorded by Exchange Online to identify devices running any variant of iOS 12. Once again, PowerShell is the quickest and easiest way to retrieve and analyze the data,
The Get-MobileDevice cmdlet returns a list of mobile devices known to Exchange Online. Unless you’re very good at cleaning up old device partnerships from mailboxes (here’s a useful script), the set returned will include obsolete devices, Outlook for Android, and native mobile email clients based on Exchange ActiveSync. Some filtering is needed to locate the devices we’re interested in.
Here’s an example script that finds all mobile devices and creates a report about the devices, including who owns/uses the device and the last time that it synchronized with Exchange Online (a good indicator if the device is in use). Devices running iOS12 are highlighted and displayed at the end of the script. I could have applied a filter and only wrote out details of the problem devices but decided to generate a report of all mobile devices because it might be useful at another time.
$Report = [System.Collections.Generic.List[Object]]::new() $Devices = Get-MobileDevice -ResultSize Unlimited Write-Host "Analyzing" $Devices.Count "mobile devices" ForEach ($Device in $Devices) { $DeviceStats = Get-MobileDeviceStatistics -Identity $Device.Guid.ToString() $User = Get-ExoMailbox -Identity $Device.Id.Split("")[0] -ErrorAction SilentlyContinue If ($User -eq $Null) {$User = "Unknown user"} If ($DeviceStats.LastSuccessSync -ne $Null) { $LastSyncTime = Get-Date($DeviceStats.LastSuccessSync) -format g $DaysSinceSync = New-TimeSpan($LastSyncTime)} Else { $LastSyncTime = "N/A" $DaysSinceSynce = "N/A" } If ($DeviceStats.DeviceOS -like "IOS 12*") { $Warning = "Check Device" } Else { $Warning = $Null} $ReportLine = [PSCustomObject] @{ User = $User.DisplayName UPN = $User.UserPrincipalName LastSyncTime = $LastSyncTime DaySinceSync = $DaysSinceSync.Days DeviceType = $DeviceStats.DeviceType DeviceOS = $DeviceStats.DeviceOS DeviceModel = $DeviceStats.DeviceModel DeviceUserAgent = $DeviceStats.DeviceUserAgent Status = $DeviceStats.Status Warning = $Warning } $Report.Add($ReportLine) } $Report | Export-CSV -NoTypeInformation c:tempMobileDevices.csv $Report.Where({$_.Warning -eq "Check Device"}) | Select User, DeviceOS, DeviceModel, LastSyncTime, DaySinceSync, DeviceUserAgent | Sort DaySinceSync | Out-GridView Write-Host “CSV file of mobile devices written to c:tempMobileDevices.csv”
The iOS12 devices are displayed using the Out-GridView cmdlet (Figure 1). Apart from knowing who owns the device, the days since synchronization is the most important piece of information. Given the importance of mobile devices today, any device which hasn’t synchronized in the last month might be obsolete.
Outlook mobile clients gained support for the delegate mailbox feature earlier this year. As I prepared this article, I noted that you can find out what devices are used for delegate mailboxes by looking for devices with multiple identities. After creating the $Devices array with Get-MobileDevice, I used the Group-Object cmdlet to group the array data by the device identifier and found one device used by four people. You never know when something like this might come in useful!
$Devices | Group-Object DeviceId | Format-Table Count, Name Count Name ----- ---- 4 A02F3995932A41A4A58EDA3471A4E831 $Devices.Where({$_.DeviceId -eq "A02F3995932A41A4A58EDA3471A4E831"}) | ft id Id -- James.RyanExchangeActiveSyncDevicesHx§Outlook§A02F3995932A41A4A58EDA3471A4E831 Oisin.JohnstonExchangeActiveSyncDevicesHx§Outlook§A02F3995932A41A4A58EDA3471A4E831 TRedmondExchangeActiveSyncDevicesHx§Outlook§A02F3995932A41A4A58EDA3471A4E831 Kim AkersExchangeActiveSyncDevicesHx§Outlook§A02F3995932A41A4A58EDA3471A4E831
No one knows the exact date when Apple will make iOS14 generally available. It’s good to stay ahead of the game by checking if your organization has any obsolete devices. Once you know, do the right thing, and send the device owners an email to tell them that it’s time to upgrade.