Forum Discussion

Deleted's avatar
Deleted
Dec 20, 2016
Solved

Exporting list of Outlook client versions

Hi All,

 

I need to export an inventory of outlook client versions used by our end users. Can some one please advice?

 

i tried using Get-ConnectionByClientTypeDetailReport but it doesnot give Outlook versions.

  • Go to the O365 admin portal -> Reports -> Usage -> Email app usage -> press the Export button. No way to get this report via PowerShell afaik (Anne Michels might prove me wrong here).

     

    If you need even more details compared to what's shown in the report, down to the individual build number, you will have to browse the Audit logs and get the relevant data from them.

8 Replies

  • dolgatorawnie's avatar
    dolgatorawnie
    Copper Contributor

    If you want to get Outlook client versions:

    Manual method

    Check each user’s Outlook via File → Office Account → About Outlook.
    Or collect versions directly from users.
    Note: This works for small setups but is slow for large organizations.

    For larger setups, you can use Exchange Online PowerShell to get mailbox connection data, or tools that back up mailboxes. For example, you can back up mailboxes and review email headers for client info — it’s safer than manually checking every machine.

    Bulk / Automated

    For larger environments, you can use https://www.recoverytools.com/backup/office365/  by RecoveryTools. While it doesn’t directly report Outlook versions, it can back up mailboxes and let you review email headers and metadata, which sometimes include client info.

    More details on safely exporting and managing emails can be found here: Email Backup Wizard Blog

    https://emailbackupwizard.com/blog/extract-email-addresses-from-outlook-365/?

  • Go to the O365 admin portal -> Reports -> Usage -> Email app usage -> press the Export button. No way to get this report via PowerShell afaik (Anne Michels might prove me wrong here).

     

    If you need even more details compared to what's shown in the report, down to the individual build number, you will have to browse the Audit logs and get the relevant data from them.

    • Anne Michels's avatar
      Anne Michels
      Former Employee

      Thanks, Vasil.

      Please use the export button as described by Vasil to export any data from the usage reports at this point.

      In spring 2017, we will make new reporting APIs available that will allow you to programmatically access the information from the usage reports. Going forward, please use the APIs as the new usage reports will not be accompanied by PowerShell cmdlets.

      Thanks,

      Anne

    • Michelle Porreca's avatar
      Michelle Porreca
      Iron Contributor

      This shows licenses, but not user versions. Like it won't show you if the user is running Office 2013 or Office 2016. That is what would be beneficial - to show what client version the user has installed.

      • Use the below EXO PowerShell script, here we use Search-MailboxAuditLog which has the client information. This method needs auditing to be enabled on all mailboxes and will be slower due to the audit log search.

         

        $UserCredential = Get-Credential
        $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri
        https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic-
        AllowRedirection
        Import-PSSession $Session
        
        $mailboxs = Get-MailBox 
        $mailboxs | Foreach-Object{
        $mailbox=$_
        
        Search-MailboxAuditLog -StartDate ([system.DateTime]::Now.AddDays(-2)) -EndDate ([system.DateTime]::Now.AddDays(+1)) -Operations MailboxLogin -Identity $mailbox.UserPrincipalName -ShowDetails|where-object{$_.ClientInfoString-like "*Client=Microsoft.Exchange.Mapi;*" -or $_.ClientInfoString -like "*Client=Microsoft.Exchange..Autodiscover;*" } |select LogonUserDisplayName,ClientInfoString,LastAccessed,ClientIPAddress -First 1 |fl
        }

        Below is the sample output for a user.

Resources