M365 License - Download Sku DisplayNames to CSV Timed Rule

M365SLIC.License.DownloadSkuDisplayNamesToCSV.Rule (Rule)

Description for the new rule

Knowledge Base article:

Summary

At the time of this writing the friendly names of Licenses skus are not available via Graph for some reason. This rule will attempt to use a "docs.microsoft..." URL to download a list of friendly "Display Names" for the various Licenses that exist in the M365 universe. In some situations it is expected that the Watcher Node is unable to reach the URL due to policies, firewall restrictions, etc. If the Microsoft website cannot be reached by the Watcher Node, a default list of friendly names will be used instead. The names will be written to a .CSV file at the designated path. A separate License discovery workflow will use this file to populate the Display Name property for the discovered instances. Even though it's really, really, realllly unlikely for Azure names or objects or services or branding or features or functionality, etc. to change (because nothing in Azure ever changes), the default Display Names contained in this workflow might need to be updated over time. The list of names can be edited easily as this MP is unsealed. Enjoy.

Additional

None.

External

https://MonitoringGuys.com

Overridable Parameters

Name

Description

Default Value

EventIDFilter

This can be used to filter which EventIDs get written by the workflow to the Operations Manager event log. This is only relevant when logging is enabled. See 'WriteToEventLog'. Typically this is for customer support engineer use only.

OutFile

This is the location (full path) where the DisplayNames file will be written, in CSV format.

C:\Windows\Temp\M365SSM\License\LicenseSkuDisplayNames.csv

Path_mshtml

This DLL is used by the script to parse the web page. It is unpredictable which version of this file might exist on the Watcher Node and some versions won't work correctly. Therefore, we baked this DLL into the MP to improve reliability of the workflow. 

The path to the resource file is determined by the agent once the MP is digested. In case you're interested the variable looks like this within the rule configuration:
$FileResource[Name='Res.M365SLIC.Microsoft.mshtml.dll.Resource']/Path$

TLSVersion

This can be used to filter which EventIDs get written by the workflow to the Operations Manager event log. This is only relevant when logging is enabled. See 'WriteToEventLog'. Typically this is for customer support engineer use only.

1.2

URL

The address where the friendly Display Names for the Licenses skus exist.

https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/licensing-service-plan-reference

PoshLibraryPath

For customer support engineer use only.

ProbeActionTimeoutSeconds

If the workflow module does not exit gracefully by this time limit, the module will be forced to terminate.

120

WriteToEventLog

This will enable/disable script logging to the Operations Manager event log.

false

Element properties:

TargetM365SL.ServerRole
CategoryCustom
EnabledTrue
Alert GenerateFalse
RemotableFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource M365SLIC.DownloadLicenseSkuDisplayNames.DS Default
WA WriteAction M365SLIC.DownloadLicenseSkuDisplayNames.WA Default

Source Code:

<Rule ID="M365SLIC.License.DownloadSkuDisplayNamesToCSV.Rule" Target="M365SL!M365SL.ServerRole" Enabled="true" ConfirmDelivery="false" Remotable="false" Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="DS" TypeID="M365SLIC.DownloadLicenseSkuDisplayNames.DS">
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WA" TypeID="M365SLIC.DownloadLicenseSkuDisplayNames.WA">
<DEFAULT_LIST>
"skuPartNumber","DisplayName"
"SPZA_IW","APP CONNECT IW"
"MCOMEETADV","AUDIO CONFERENCING"
"AAD_BASIC","AZURE ACTIVE DIRECTORY BASIC"
"AAD_PREMIUM","AZURE ACTIVE DIRECTORY PREMIUM P1"
"AAD_PREMIUM_P2","AZURE ACTIVE DIRECTORY PREMIUM P2"
"RIGHTSMANAGEMENT","AZURE INFORMATION PROTECTION PLAN 1"
"DYN365_ENTERPRISE_PLAN1","DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN ENTERPRISE EDITION"
"DYN365_ENTERPRISE_CUSTOMER_SERVICE","DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION"
"DYN365_FINANCIALS_BUSINESS_SKU","DYNAMICS 365 FOR FINANCIALS BUSINESS EDITION"
"DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE","DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION"
"DYN365_ENTERPRISE_SALES","DYNAMICS 365 FOR SALES ENTERPRISE EDITION"
"DYN365_ENTERPRISE_TEAM_MEMBERS","DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION"
"Dynamics_365_for_Operations","DYNAMICS 365 UNF OPS PLAN ENT EDITION"
"EMS","ENTERPRISE MOBILITY + SECURITY E3"
"EMSPREMIUM","ENTERPRISE MOBILITY + SECURITY E5"
"EXCHANGESTANDARD","EXCHANGE ONLINE (PLAN 1)"
"EXCHANGEENTERPRISE","EXCHANGE ONLINE (PLAN 2)"
"EXCHANGEARCHIVE_ADDON","EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE"
"EXCHANGEARCHIVE","EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER"
"EXCHANGEESSENTIALS","EXCHANGE ONLINE ESSENTIALS"
"EXCHANGE_S_ESSENTIALS","EXCHANGE ONLINE ESSENTIALS"
"EXCHANGEDESKLESS","EXCHANGE ONLINE KIOSK"
"EXCHANGETELCO","EXCHANGE ONLINE POP"
"INTUNE_A","INTUNE"
"M365EDU_A1","Microsoft 365 A1"
"M365EDU_A3_FACULTY","Microsoft 365 A3 for faculty"
"M365EDU_A3_STUDENT","Microsoft 365 A3 for students"
"M365EDU_A5_FACULTY","Microsoft 365 A5 for faculty"
"M365EDU_A5_STUDENT","Microsoft 365 A5 for students"
"O365_BUSINESS","MICROSOFT 365 APPS FOR BUSINESS"
"SMB_BUSINESS","MICROSOFT 365 APPS FOR BUSINESS"
"OFFICESUBSCRIPTION","MICROSOFT 365 APPS FOR ENTERPRISE"
"O365_BUSINESS_ESSENTIALS","MICROSOFT 365 BUSINESS BASIC"
"SMB_BUSINESS_ESSENTIALS","MICROSOFT 365 BUSINESS BASIC"
"O365_BUSINESS_PREMIUM","MICROSOFT 365 BUSINESS STANDARD"
"SMB_BUSINESS_PREMIUM","MICROSOFT 365 BUSINESS STANDARD"
"SPB","MICROSOFT 365 BUSINESS PREMIUM"
"SPE_E3","MICROSOFT 365 E3"
"SPE_E5","Microsoft 365 E5"
"SPE_E3_USGOV_DOD","Microsoft 365 E3_USGOV_DOD"
"SPE_E3_USGOV_GCCHIGH","Microsoft 365 E3_USGOV_GCCHIGH"
"INFORMATION_PROTECTION_COMPLIANCE","Microsoft 365 E5 Compliance"
"IDENTITY_THREAT_PROTECTION","Microsoft 365 E5 Security"
"IDENTITY_THREAT_PROTECTION_FOR_EMS_E5","Microsoft 365 E5 Security for EMS E5"
"M365_F1","Microsoft 365 F1"
"SPE_F1","Microsoft 365 F3"
"WIN_DEF_ATP","Microsoft Defender Advanced Threat Protection"
"CRMPLAN2","MICROSOFT DYNAMICS CRM ONLINE BASIC"
"CRMSTANDARD","MICROSOFT DYNAMICS CRM ONLINE"
"IT_ACADEMY_AD","MS IMAGINE ACADEMY"
"ENTERPRISEPREMIUM_FACULTY","Office 365 A5 for faculty"
"ENTERPRISEPREMIUM_STUDENT","Office 365 A5 for students"
"EQUIVIO_ANALYTICS","Office 365 Advanced Compliance"
"ATP_ENTERPRISE","Office 365 Advanced Threat Protection (Plan 1)"
"STANDARDPACK","OFFICE 365 E1"
"STANDARDWOFFPACK","OFFICE 365 E2"
"ENTERPRISEPACK","OFFICE 365 E3"
"DEVELOPERPACK","OFFICE 365 E3 DEVELOPER"
"ENTERPRISEPACK_USGOV_DOD","Office 365 E3_USGOV_DOD"
"ENTERPRISEPACK_USGOV_GCCHIGH","Office 365 E3_USGOV_GCCHIGH"
"ENTERPRISEWITHSCAL","OFFICE 365 E4"
"ENTERPRISEPREMIUM","OFFICE 365 E5"
"ENTERPRISEPREMIUM_NOPSTNCONF","OFFICE 365 E5 WITHOUT AUDIO CONFERENCING"
"DESKLESSPACK","OFFICE 365 F1"
"MIDSIZEPACK","OFFICE 365 MIDSIZE BUSINESS"
"LITEPACK","OFFICE 365 SMALL BUSINESS"
"LITEPACK_P2","OFFICE 365 SMALL BUSINESS PREMIUM"
"WACONEDRIVESTANDARD","ONEDRIVE FOR BUSINESS (PLAN 1)"
"WACONEDRIVEENTERPRISE","ONEDRIVE FOR BUSINESS (PLAN 2)"
"POWERAPPS_PER_USER","POWER APPS PER USER PLAN"
"POWER_BI_ADDON","POWER BI FOR OFFICE 365 ADD-ON"
"POWER_BI_PRO","POWER BI PRO"
"PROJECTCLIENT","PROJECT FOR OFFICE 365"
"PROJECTESSENTIALS","PROJECT ONLINE ESSENTIALS"
"PROJECTPREMIUM","PROJECT ONLINE PREMIUM"
"PROJECTONLINE_PLAN_1","PROJECT ONLINE PREMIUM WITHOUT PROJECT CLIENT"
"PROJECTPROFESSIONAL","PROJECT ONLINE PROFESSIONAL"
"PROJECTONLINE_PLAN_2","PROJECT ONLINE WITH PROJECT FOR OFFICE 365"
"SHAREPOINTSTANDARD","SHAREPOINT ONLINE (PLAN 1)"
"SHAREPOINTENTERPRISE","SHAREPOINT ONLINE (PLAN 2)"
"MCOEV","MICROSOFT 365 PHONE SYSTEM"
"MCOIMP","SKYPE FOR BUSINESS ONLINE (PLAN 1)"
"MCOSTANDARD","SKYPE FOR BUSINESS ONLINE (PLAN 2)"
"MCOPSTN2","SKYPE FOR BUSINESS PSTN DOMESTIC AND INTERNATIONAL CALLING"
"MCOPSTN1","SKYPE FOR BUSINESS PSTN DOMESTIC CALLING"
"MCOPSTN5","SKYPE FOR BUSINESS PSTN DOMESTIC CALLING (120 Minutes)"
"VISIOONLINE_PLAN1","VISIO ONLINE PLAN 1"
"VISIOCLIENT","VISIO Online Plan 2"
"WIN10_PRO_ENT_SUB","WINDOWS 10 ENTERPRISE E3"
"WIN10_VDA_E5","Windows 10 Enterprise E5"
</DEFAULT_LIST>
<EventIDFilter/>
<OutFile>C:\Windows\Temp\M365SSM\License\LicenseSkuDisplayNames.csv</OutFile>
<Path_mshtml>$FileResource[Name='Res.M365SLIC.Microsoft.mshtml.dll.Resource']/Path$</Path_mshtml>
<PoshLibraryPath/>
<TLSVersion>1.2</TLSVersion>
<URL>https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/licensing-service-plan-reference</URL>
<ProbeActionTimeoutSeconds>120</ProbeActionTimeoutSeconds>
<WorkflowName>M365SLIC.License.DownloadSkuDisplayNamesToCSV.Rule</WorkflowName>
<WriteToEventLog>false</WriteToEventLog>
</WriteAction>
</WriteActions>
</Rule>