cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Community Manager
Community Manager

Determining the Version and Hotfix Level of Orion Platform Products

The Orion Platform product details are displayed in a number of ways and below I'm going to cover a few ways to get this information.  Try the first and if that's not available move on down the list.

I'm going to cover a few options:

  1. Look at the Orion Web Console footer
  2. Add/Remove Programs information in Windows
  3. Query the SolarWinds Information Service (SWIS) with PowerShell
  4. Query the SolarWinds Orion database with SQL

Look at the Orion Web Console footer

 

Spoiler

If you have access to the Orion Web Console, you can find the version numbers and hotfix levels right from the footer - you don't even need to log in.

Scroll to the bottom of the screen. The black bar lists the Orion Platform products installed and their version numbers. For recent releases, the version number for all installed products is at the end of the list, and any hotfixes are listed after the product name.

KMSigma_0-1610575445680.png

In the example above, the version is 2020.2.1 (at the far right)

Each installer (Orion Platform, NPM, NCM, etc.) can have their own Hotfix level.  Hotfix 1 for NPM is not the same as Hotfix 1 for SAM.  In the above example:

  • The Orion Platform, NCM, VMAN, and NTA are running 2020.2.1 with HF2
  • IPAM, SAM, SCM, LA, and UDT are running 2020.2.1 with HF1
  • VNQM, SRM, NPM, and WPM are running 2020.2.1 with no hotfixes

Add/Remove Programs information in Windows

Spoiler

If your server is online and you have remote desktop capabilities, you can open the Add/Remove Programs option within Windows.  Getting to the Control Panel has changed for recent versions of Windows Server, but there is a way that works on 2012 and later versions.

Right-click on the Start button and select File Explorer. 

KMSigma_1-1610576452095.png

In the address bar at the top, start typing "Control Panel" and select it when it appears.

KMSigma_2-1610576509665.png

 

In the top-right, switch the view to either "Small icons" or "Large icons" and then click "Programs and Features."

KMSigma_4-1610576919783.png

The version number for the products will be the number indicated by "Orion Core Services."

KMSigma_5-1610577147148.png

You can get the hotfix version for the various products by going to "View installed update" (top-left).

KMSigma_6-1610577258646.png

Query the SolarWinds Information Service (SWIS) via PowerShell

Spoiler

This example uses the SolarWinds Orion SDK to query the system for information about the installed software.  It requires the Orion SDK (which does not ship with the other installers).

<#

Get-OrionServerVersionInformation.ps1

Gets the installed product versions of SolarWinds products installed in your infrastructure


Results appear like this:

Hostname     ServerType Product                          Version     
--------     ---------- -------                          -------     
NOCKMSMPE01V MainPoller IP Address Manager               2020.2.1    
NOCKMSMPE01V MainPoller Log Analyzer                     2020.2.1    
NOCKMSMPE01V MainPoller NetFlow Traffic Analyzer         2020.2.1 HF2
NOCKMSMPE01V MainPoller Network Configuration Manager    2020.2.1 HF1
NOCKMSMPE01V MainPoller Network Performance Monitor      2020.2.1    
NOCKMSMPE01V MainPoller Orion Platform                   2020.2.1 HF1
NOCKMSMPE01V MainPoller Server & Application Monitor     2020.2.1 HF1
NOCKMSMPE01V MainPoller Server Configuration Monitor     2020.2.1    
NOCKMSMPE01V MainPoller Storage Resource Monitor         2020.2.1    
NOCKMSMPE01V MainPoller User Device Tracker              2020.2.1 HF1
NOCKMSMPE01V MainPoller VoIP and Network Quality Manager 2020.2.1    
NOCKMSMPE01V MainPoller Web Performance Monitor          2020.2.1    

#>


if ( -not ( $SwisCreds ) )
{
    $SwisCreds = Get-Credential -Message "Enter your Orion credentials"
}
$SwisConnection = Connect-Swis -Hostname "<Orion Server IP or HostName>" -Credential $SwisCreds

# Get the details for your Orion Servers

$SwqlOrionServerData = @"
SELECT HostName,
       ServerType,
       Details 
FROM  Orion.OrionServers 
"@

# Build an empty report for the version information
$VersionReport = @()

# List of actual product names (ignoring "features" that appear like products
$ProductNames = "IP Address Manager", "Log Analyzer", "NetFlow Traffic Analyzer", "Network Configuration Manager", "Network Performance Monitor", "Orion Platform", "Server & Application Monitor", "Server Configuration Monitor", "Storage Resource Monitor", "User Device Tracker", "VoIP and Network Quality Manager", "Web Performance Monitor"


$ServerData = Get-SwisData -SwisConnection $SwisConnection -Query $SwqlOrionServerData

# Cycle through each server found
ForEach ( $Server in $ServerData )
{
    # Get the information from the JSON blob
    ForEach ( $Product in ( $Server.Details | ConvertFrom-Json ) | Select-Object -Property Name, Version, HotfixVersionNumber | Sort-Object -Property Name, Version, HotfixVersionNumber )
    {
        # Here's where we ignore the "features" that are listed like a product
        if ( $Product.Name -in $ProductNames )
        {
            if ( $Product.HotfixVersionNumber )
            {
                # if a hotfix exists, add that at the end of the the version number
                $VersionReport += New-Object -TypeName PSObject -Property ( [ordered]@{ Hostname = $Server.Hostname; ServerType = $Server.ServerType; Product = $Product.Name; Version = "$( $Product.Version ) HF$( $Product.HotfixVersionNumber )" } )
            }
            else
            {
                # if it doesn't exist, just show the version number
                $VersionReport += New-Object -TypeName PSObject -Property ( [ordered]@{ Hostname = $Server.Hostname; ServerType = $Server.ServerType; Product = $Product.Name; Version = $Product.Version } )
            }
        }
    }
}
# Output the report
$VersionReport

 

Your results should appear something like this.

Example execution of PowerShell QueryExample execution of PowerShell Query

But this same information is stored within the database itself.  So, if your web console is completely inaccessible you can still get this information.

Query the SolarWinds Orion database with SQL

Spoiler

If you Orion Web Console or server are offline, you can get the same information directly from the Orion database.

 

/* Get a list of all of the Orion servers and the associated software on them */
SELECT [Hostname]
     , [ServerType]
	 , [Product]
	 , CASE
	      WHEN HotFix IS NULL THEN [ReleaseVersion]
		  ELSE [ReleaseVersion] + ' HF' + [HotFix]
	   END AS [Version]
FROM [OrionServers]
CROSS APPLY OPENJSON([Details])
   WITH (
      [Product]        varchar(50) '$.Name'
    , [ReleaseVersion] varchar(25) '$.Version'
	, [Hotfix]         varchar(5)  '$.HotfixVersionNumber'
   ) AS VersionInfo
-- Ignore 'products' that are actually just 'features'
WHERE [Product] in ( 'IP Address Manager', 'Log Analyzer', 'NetFlow Traffic Analyzer', 'Network Configuration Manager', 'Network Performance Monitor', 'Orion Platform', 'Server & Application Monitor', 'Server Configuration Monitor', 'Storage Resource Monitor', 'User Device Tracker', 'VoIP and Network Quality Manager', 'Web Performance Monitor' )
ORDER BY OrionServerID

 

 

Your results should appear as a list of products.

Sample Results from SQL QuerySample Results from SQL Query

Updates:

Per a suggestion later in this thread, you can put this information into a Custom Table widget on any dashboard by selecting the Advanced Configuration and putting in the above SQL. (Thanks @Stubborn95 for the reminder about this option!)

KMSigma_0-1608747600723.png

The results should look something like this:

KMSigma_1-1608747664972.png

References:

 

"Shoot for the stars to reach the moon"
15 Replies

This works great. Can you convert the SQL code to SWQL? I would like to add this to a dashboard.

 

Thanks,

0 Kudos

I cannot.  At this time, SWQL doesn't support the OPENJSON command.  The hotfix information is only available as JSON within the Orion.OrionServers SWIS object (to my knowledge).  If you want the full versions (without hotfixes), you can always use this SWQL Query:

SELECT CASE
          WHEN Name = 'APM'     THEN 'Server & Application Monitor'
          WHEN Name = 'IPAM'    THEN 'IP Address Manager'
          WHEN Name = 'NCM'     THEN 'Network Configuration Manager'
          WHEN Name = 'NPM'     THEN 'Network Performance Monitor'
          WHEN Name = 'NTA'     THEN 'NetFlow Traffic Analyzer'
          WHEN Name = 'Orion'   THEN 'Orion Core'
          WHEN Name = 'SEUM'    THEN 'Web Performance Analyzer'
          WHEN Name = 'SRM'     THEN 'Storage Resource Monitor'
          WHEN Name = 'Toolset' THEN 'Enterprise Toolset'
          WHEN Name = 'UDT'     THEN 'User Device Tracker'
          WHEN Name = 'VoIP'    THEN 'VoIP & Network Quality Manager'
          WHEN Name = 'EOC'     THEN 'Enterprise Operations Console'
          WHEN Name = 'VIM'     THEN 'Virtualization Manager'
          WHEN Name = 'SCM'     THEN 'Server Configuration Monitor'
          WHEN Name = 'OLM'     THEN 'Log Manager for Orion'
          ELSE Name
     END AS [Product Name]
     , Version
     , CASE
          WHEN IsEval = 'True' THEN  CONCAT('Evaluation (', [DaysRemaining], ' days left)')
          ELSE 'Licensed'
       END AS [License Type]
      
FROM Orion.InstalledModule
ORDER BY CASE
          WHEN Name = 'APM'     THEN 9
          WHEN Name = 'IPAM'    THEN 5
          WHEN Name = 'NCM'     THEN 4
          WHEN Name = 'NPM'     THEN 2
          WHEN Name = 'NTA'     THEN 3
          WHEN Name = 'Orion'   THEN 0
          WHEN Name = 'SEUM'    THEN 11
          WHEN Name = 'SRM'     THEN 10
          WHEN Name = 'Toolset' THEN 8
          WHEN Name = 'UDT'     THEN 6
          WHEN Name = 'VoIP'    THEN 7
          WHEN Name = 'EOC'     THEN 1
          WHEN Name = 'VIM'     THEN 4
          WHEN Name = 'SCM'     THEN 4
          WHEN Name = 'OLM'     THEN 4
          ELSE 99
        END

The ORDER BY is just something I did so that it would look pretty.  Note: the immediate above DOES NOT show hotfix versions.

"Shoot for the stars to reach the moon"

Ah okay. Thanks for looking into it and the code. 🙂

0 Kudos

Figured it out. Custom Tables let you use SQL--Worked like a charm. 

0 Kudos

Nice!!!  I honestly forgot that was even an option.  I've been in the SWQL mindset for all of this past year, so that's just become my go-to for everything.

"Shoot for the stars to reach the moon"
0 Kudos

Thanks, @KMSigma! Great resource.

0 Kudos

Glad to help out.  FYI -the SQL server query which uses some JSON stuff requires compatibility level 130 (SQL Server 2017).  If you don't have that available, you can just look at the details field and manually parse out the JSON by hand if necessary.  It's not too difficult.

"Shoot for the stars to reach the moon"
0 Kudos

Hello, Do you know is there is any way to see a version history of installed HF and products? For example you know the version you are running _NOW_ but you would like to see all the previous versions as well. Thank you for a helpful script.

Not with the included hotfix information, no.  There are several places where you can get the installation date of things, but those installations only include the version numbers of the MSI (or MSP) database files, not the actual version of the product platform.  We've had a whole discussion on another thread about how the MSI version is not authoritative about specific file versions existing.

"Shoot for the stars to reach the moon"
0 Kudos

Hello,

Wanted to know if there is any information available to determine the Software and Hotfix installation on the Solarwinds server.

I found the following.

 
 

You can run this query in Database Manager to see all the updates you have done.

Select * from ConfigWizardLog where module = 'Orion Core Services'

 

0 Kudos

@hnz980 That's directly from the Configuration Wizard logs and is possibly an unreliable data point.  The issue is that some (many) hotfixes don't necessarily require the configuration wizard, so there may not be a record in that table.  As you can see here, I've got lots of configuration wizard executions since July, but the module version number didn't increment.

KMSigma_0-1608738997112.png

 

"Shoot for the stars to reach the moon"

Wanted to know if it is possible to put in an enhancement request to pull all software version and patch history by the webpage or possibly by running diagnostics and adding an option through advanced settings.

0 Kudos

That kind of Feature Request should go in the FR space for the Orion Platform.

"Shoot for the stars to reach the moon"

will we get the update or notification when the FR is implemented?
0 Kudos

If you vote on it and/or follow the feature request, then yes - you'll be notified when the status changes.

"Shoot for the stars to reach the moon"
0 Kudos