Get Session Host OS Versions Using Log Analytics Query

Get session host OS versions from Log Analytics. Here’s a query you can use to get the OS version of your session host OS.

WVDAgentHealthStatus
| project SessionHostName, OSVersion,
          OSFamily = case(
              // Windows 10 versions
              OSVersion contains "19044", "Windows 10, Version 21H2",
              OSVersion contains "19045", "Windows 10, Version 22H2",
              OSVersion contains "19041", "Windows 10, Version 20H1",
              OSVersion contains "19043", "Windows 10, Version 21H1",
              OSVersion contains "19042", "Windows 10, Version 20H2",
              // Windows 11 versions
              OSVersion contains "22000", "Windows 11, Version 21H2",
              OSVersion contains "22621", "Windows 11, Version 22H2",
              OSVersion contains "22631", "Windows 11, Version 23H2",
              "Unknown" // Default case if the ver doesnt match above Win 10 or Win 11 versions
          )
| summarize by SessionHostName, OSVersion, OSFamily
| order by SessionHostName

Query to include Windows 10, UserName and Personal Desktops only.

WVDAgentHealthStatus
| project SessionHostName, OSVersion,
          OSFamily = case(
              // Windows 10 versions
              OSVersion contains "19044", "Windows 10, Version 21H2",
              OSVersion contains "19045", "Windows 10, Version 22H2",
              OSVersion contains "19041", "Windows 10, Version 20H1",
              OSVersion contains "19043", "Windows 10, Version 21H1",
              OSVersion contains "19042", "Windows 10, Version 20H2",
              // ...other Windows 10 versions as needed
              // Exclude Windows 11 versions by not assigning them an OSFamily
              OSVersion contains "22000" or 
              OSVersion contains "22621" or 
              OSVersion contains "22631", "",
              "Unknown" // Default case for other versions
          )
| where OSFamily != "" // Exclude Windows 11 by checking for non-empty OSFamily
| distinct SessionHostName, OSVersion, OSFamily
| join kind=inner (
    WVDConnections
    | project SessionHostName, UserName, SessionHostPoolType
    | where SessionHostPoolType == "PersonalDesktop"
    | distinct SessionHostName, UserName
) on SessionHostName
| project SessionHostName, OSVersion, OSFamily, UserName
| order by SessionHostName

Open Log Analytics, copy and paste the query. Adjust the time range and then click run.

Share or Save this:
Share