Reporting Group

 View Only
  • 1.  Office 365 Inventory of Channel

    Posted Sep 03, 2019 09:37 AM

    I have installed Office 365 on two test computers: One as Monthly Channel, the other as Semi-Annual Channel.

    From AddRemove I cannot recognize difference.

    Could you advise how Inventory collection and SW Catalog should be maintained to distinguish between channels?

     

    Nevertheless, I can see that Patch Management is capable to distinguish, and select proper applicable updates.

     

    I would expect that option to be avilable our of box - for such common appliacion like Office :-)

    Thanks for advices,

    Jan

     

     

     

     



  • 2.  RE: Office 365 Inventory of Channel
    Best Answer

    Broadcom Partner
    Posted Sep 30, 2019 03:19 PM

    Hi Jan,

    I´ve created a Blog Article regarding O365 Custome Inventory on my blog: https://epm-blog.com/2019/09/26/how-to-use-symantec-custom-invenory-to-report-microsoft-office-365-update-channel/

    Network23

     



  • 3.  RE: Office 365 Inventory of Channel
    Best Answer

    Posted Oct 01, 2019 10:41 AM

    Hi Jan,

    The post above levarages a vbscript for the custom inventory, just in case you wanted to use powershell, here is a powershell script I created and screen capture of data classes for a custom Office 365 Inventory that I used.

    Powershell script for custom office 365 inventory

    Set-ExecutionPolicy bypass -Scope process -Force

    # exit script if Office click to run is not Installed
    if (! (test-path 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration')) { exit }

    #************************DO NOT EDIT********************************
    $nse = new-object -comobject Altiris.AeXNSEvent
    $nse.priority = 1
    $nse.To = "{1592B913-72F3-4C36-91D2-D4EDA21D2F96}"
    #************************DO NOT EDIT********************************

    #Modify this varaible with the custom data class guid
    $objDCInstance = $nse.AddDataClass("{00000000-0000-0000-0000-000000000000}")

    $objDataClass = $nse.AddDataBlock($objDCInstance)

    $O365_Inv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration'

    $channel_lookup = @{
        'http://officecdn.microsoft.com/pr/64256afe-f5d9-4f86-8936-8840a6a4f5be' = 'Insider Preview / Monthly (Targeted)' 
        'http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60' = 'Monthly' 
        'http://officecdn.microsoft.com/pr/b8f9b850-328d-4355-9145-c59439a0c4cf' = 'Semi-Annual (Targeted)' 
        'http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114' = 'Semi-Annual' 
    }

    $O365_ver_lookup = @{
        6741 = 1602
        6769 = 1603
        6965 = 1605
        7070 = 1606
        7167 = 1607
        7369 = 1601
        7466 = 1610
        7571 = 1611
        7668 = 1612
        7766 = 1701
        7870 = 1702
        7967 = 1703
        8067 = 1704
        8201 = 1705
        8229 = 1706
        8326 = 1707
        8431 = 1708
        8528 = 1709
        8625 = 1710
        8711 = 1711
        8730 = 1711
        8827 = 1712
        9001 = 1801
        9029 = 1802
        9126 = 1803
        9226 = 1804
        9330 = 1805
        10228 = 1806
        10325 = 1807
        10730 = 1808
        10827 = 1809
        11001 = 1810
        11029 = 1811
        11121 = 1812
        11126 = 1812
        11231 = 1901
        11328 = 1902
        11425 = 1903
        11601 = 1904
        11629 = 1905
        11727 = 1906
        11901 = 1907
        11929 = 1908
    }
     
    $O365_Inv = $O365_Inv | select ProductReleaseIDs, versiontoreport, @{n= 'Version'; e={ $O365_ver_lookup.item( ([version]$_.VersionToReport).Build) }}, 
    @{ n='Channel';e={ $channel_lookup.item($_.CDNBaseUrl) }}, ClientCulture, InstallationPath,Platform, Activate,UpdatesEnabled, UpdateURL

    # Get-ItemProperty 'hklm:\SOFTWARE\Microsoft\Office\ClickToRun\' | select Last*

    foreach ($data in $O365_Inv) {

           #Add new row of data
           $objDataRow = $objDataClass.AddRow()
           #popluate columns
           $objDataRow.SetField(0, $data.ProductReleaseIds)
           $objDataRow.SetField(1, $data.VersionToReport)
           $objDataRow.SetField(2, $data.Version)
           $objDataRow.SetField(3, $data.Channel)
           $objDataRow.SetField(4, $data.ClientCulture)
           $objDataRow.SetField(5, $data.InstallationPath)
           $objDataRow.SetField(6, $data.Platform)
           $objDataRow.SetField(7, $data.Activate)
           $objDataRow.SetField(8, $data.UpdatesEnabled)
           $objDataRow.SetField(9, $data.UpdateURL)
    }

    #Send the data
    $nse.sendqueued()

     

    SQL Query for Reporting
    select
        vc.name [Computer Name]
        ,vc.[OS Name]
        ,case 
            when ProductReleaseIds like '%O365ProPlusRetail%' then 'Office 365 ProPlus'
            when ProductReleaseIds like '%O365BusinessRetail%' then 'Office 365 Business'
            when ProductReleaseIds like '%ProfessionalRetail%' then 'Office 2016 Professional'
            when ProductReleaseIds like '%HomeBusinessRetail%' then 'Office 2016 Home and Business'
            when ProductReleaseIds like '%O365HomePremRetail%' then 'Office 365 Home Premium'
            when ProductReleaseIds like '%HomeStudentRetail%' then 'Office 2016 Home and Student'
            when ProductReleaseIds like '%Professional2019Retail%' then 'Office 2019 Professional'
            else Null
        end [Office Product]
        ,Version
        ,VersionToReport
        ,Channel 
        ,Platform
        ,case 
            when ClientCulture = 'en-us' then 'English'
            when ClientCulture = 'es-es' then 'Spanish'
            when ClientCulture = 'ja-jp' then 'Japanese'
            when ClientCulture = 'fr-fr' then 'French'
            when ClientCulture = 'ru-ru' then 'Russian'
            when ClientCulture = 'pt-br' then 'Portuguese'
            when ClientCulture = 'de-de' then 'German'
            when ClientCulture = 'nl-nl' then 'Dutch'
            when ClientCulture = 'pl-pl' then 'Polish'
            when ClientCulture = 'it-it' then 'Italian'
            when ClientCulture = 'zh-cn' then 'Chinese Simplified'
            when ClientCulture = 'zh-tw' then 'Chinese Traditional'
            when ClientCulture = 'ar-sa' then 'Arabic'
            when ClientCulture = 'bg-bg' then 'Bulgarian'
            when ClientCulture = 'cs-cz' then 'Czech'
            when ClientCulture = 'da-dk' then 'Danish'
        end Language
        ,ClientCulture
        ,UpdatesEnabled
    from vComputer vc
    join Inv_Custom_Office_365_C2R c2r on c2r._resourceguid = vc.guid
    where case 
            when ProductReleaseIds like '%O365ProPlusRetail%' then 'Office 365 ProPlus'
            when ProductReleaseIds like '%O365BusinessRetail%' then 'Office 365 Business'
            when ProductReleaseIds like '%ProfessionalRetail%' then 'Office 2016 Professional'
            when ProductReleaseIds like '%HomeBusinessRetail%' then 'Office 2016 Home and Business'
            when ProductReleaseIds like '%O365HomePremRetail%' then 'Office 365 Home Premium'
            when ProductReleaseIds like '%HomeStudentRetail%' then 'Office 2016 Home and Student'
            when ProductReleaseIds like '%Professional2019Retail%' then 'Office 2019 Professional'
            else Null
        end is not null

     



  • 4.  RE: Office 365 Inventory of Channel

    Broadcom Partner
    Posted Oct 02, 2019 04:36 AM

    Hi WDRAIN1,

    Thanks for sharing your O365 Powershell Custom Inventory Script - looks very nice :).