Azure VDIs not getting excluded from ITOM Server License countDescriptionIssue: Azure Virtual Desktop Infrastructure (VDI) virtual machines are incorrectly counted as Servers in ITOM licensing calculations. Description: Currently, there is no direct or reliable attribute available in all scenarios to identify Azure Virtual Desktop (VDI) VMs during discovery. As a result: All Azure VMs are classified under Server CI category for ITOM licensing.This leads to incorrect server license consumption, as VDIs should be excluded from server licensing calculations. To address this, the ITOM Licensing team introduced a fix in PRB1987652 and targeted version: SR - ITOM - ITOM Licensing - 202603. Root Cause: Azure Virtual Desktop VMs created using custom images (not marketplace images) do not contain consistent identifiers that allow discovery or licensing logic to automatically classify them as VDIs. Because of this limitation: These VMs are discovered into cmdb_ci_vm_instanceITOM licensing logic treats them as Server licenses (1:1 mapping) instead of exempting them as VDIs. ITOM Licensing Implemented Fix: Release:SR - ITOM - ITOM Licensing - 202603 Fix Logic: A script-based exclusion rule has been introduced for VDIs using: Key: TypeValue : VDI Exclusion Condition A VM will be excluded from server licensing if: A record exists in cmdb_key_value with: Key: Type Value: VDIConfiguration Item: reference to corresponding cmdb_ci_vm_instance When this condition is met, the VM is automatically exempted from ITOM Server license count. Important Notes This rule is not activated out-of-the-box (OOTB)To enable it, you must raise a support caseThe rule can only be activated by a Maint user (Ex: ServiceNow support) Steps to Enable: Navigate to the ITOM License Exclusion Metadatas(itom_license_exclusion_metadata) table and locate the Azure VDI exclusion record: (https://<InstanceName>.service-now.com/itom_license_exclusion_metadata.do?sys_id=eaf1eb18dc07ba10f877adc524e17161) Ensure the rule is activated (this typically requires support/Maint user access). If this rule is not enabled, Azure VDI VMs will not be excluded from ITOM server license counts and will continue to be counted as Servers. Steps to Reproduce Create an Azure Virtual Desktop pool with a custom image and not from the default market place image galleryRun Azure Cloud Discovery Observe: VMs are created under cmdb_ci_vm_instance ITOM licensing counts them as ServersThey are not excluded as VDIs. WorkaroundTo prevent Azure VDIs from being counted as Server licenses, use one of the following options: Option1: Azure Console side Tagging Add the following tag directly to Azure VDI virtual machines from the Azure portal: Name:TypeValue:VDI After cloud discovery runs: The tag will be populated in Key Value (cmdb_key_value) tableIt will be associated with the corresponding cmdb_ci_vm_instance record. This ensures that the VM is automatically excluded from ITOM Server licensing calculations. Option2: ServiceNow Business Rule Approach: Create a new Business Rule on the cmdb_ci_vm_instance table 1. Identify Azure VDIs using specific conditions (Example: resource group, naming pattern, Image type). 2. Create a cmdb_key_vlaue record: Key:TypeValue:VDIConfiguration Item : Reference to the VM CI record. This Key Value records allows the licensing logic to properly exclude the VM from server license counts. Important Condition: Azure VDI VMs will be excluded from server license counts only when both conditions are met: The Azure VDI exclusion rule in ITOM License Exclusion Metadata is enabled, andThe corresponding key-value (Type: VDI) is present on the CI. Sample Business Rule: This is a sample reference only. You need to implement your own custom logic to add this key-value pair. Sample script to create a new key value record var keyStr = 'Type'; var valueStr= 'VDI'; var keyValueGr = new GlideRecord('cmdb_key_value'); keyValueGr.addQuery('configuration_item', vmSysId); keyValueGr.addQuery('key', keyStr); keyValueGr.addQuery('value', valueStr); keyValueGr.setLimit(1); keyValueGr.query(); if (!keyValueGr.hasNext()) { keyValueGr.initialize(); keyValueGr.configuration_item = vmSysId; keyValueGr.key = keyStr; keyValueGr.value = valueStr; keyValueGr.insert(); } Note: The conditions used to identify Azure VDIs in the Business Rule are customer-specific and vary by environment. Therefore, an OOTB rule cannot be provided. Impact If this issue is not addressed: Azure VDIs will continue to be incorrectly counted as Server license.This may lead to inflated ITOM licensing consumption and inaccurate license reporting.Related Problem: PRB1958219