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:
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.
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:
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.
In the address bar at the top, start typing "Control Panel" and select it when it appears.
In the top-right, switch the view to either "Small icons" or "Large icons" and then click "Programs and Features."
The version number for the products will be the number indicated by "Orion Core Services."
You can get the hotfix version for the various products by going to "View installed update" (top-left).
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 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.
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 Query
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!)
The results should look something like this:
References:
This works great. Can you convert the SQL code to SWQL? I would like to add this to a dashboard.
Thanks,
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.
Ah okay. Thanks for looking into it and the code. 🙂
Figured it out. Custom Tables let you use SQL--Worked like a charm.
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.
Thanks, @KMSigma! Great resource.
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.
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.
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'
@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.
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.
That kind of Feature Request should go in the FR space for the Orion Platform.
If you vote on it and/or follow the feature request, then yes - you'll be notified when the status changes.
SolarWinds solutions are rooted in our deep connection to our user base in the THWACK® online community. More than 150,000 members are here to solve problems, share technology and best practices, and directly contribute to our product development process.