Showing results for 
Search instead for 
Did you mean: 
Create Post

Credentials Used By APM Component Monitors

This report shows all component monitors in each application template assigned to nodes and which credentials are being used.

Labels (1)

Thanks for this report!!  It worked great for me trying to find a lost credential that is being used somewhere on my clients network.

Zak Kahl

Loop1 Systems

Thanks for this report!  I have been trying to find a way to identify which components are using different credentials from our default.  This did the trick!

Would you have a similar report for Windows nodes that are WMI & ICMP? This way we can determine what credentials are being used for the node. Hopefully there is something already in place in SolarWinds that I am just not finding.

With help from @adatole we came up with this query that allows us to see what WMI Credentials are being used on nodes that are set up as WMI & ICMP

use SolarWindsOrion;

select nodes.NodeID, nodes.Caption,

nodesettings.SettingName, NodeSettings.SettingValue,


from Nodes

join NodeSettings on nodes.NodeID = Nodesettings.NodeID

join Credential on nodesettings.SettingValue = Credential.ID

where nodes.ObjectSubType = 'WMI'

and nodesettings.SettingName = 'WMICredential'

order by nodesettings.SettingValue asc

Excellent work Justin Walker. I've taken the liberty of posting this as a Report here in the Content Exchange, available for download at the link below.

Credentials Used By WMI Nodes

Very much helpful. Thanks.

Do you happen to have this report in .xml format?  I tried to import this .OrionReport file and it says it needs to be xml,   then i change the extension to .xml and it says its missing a XML key.  I also can't seem to make heads or tails of the SQL statement to just run it out of SWQL Studio.


Hi Eric,

This report needs to opened use the Orion report writer application on the Orion server. You should save it to the \Reports folder in the Solarwinds install directory, it will then be view-able in the web but can only be edited using the report writer.

If you create a Web Based report, using the custom SQL option, below is the SQL used in the report so the results should be the same.

SELECT n.NodeID, n.Caption as Node, a.ID as ApplicationID, a.Name as [Application], c.ID as ComponentId, c.Name as Component,

    cts.Value as TemplateCredId, cs.[Value] as OverridenCredId, cred.Name as CredName

FROM APM_Component c

    INNER JOIN APM_Application a ON c.ApplicationID = a.ID

    INNER JOIN Nodes n ON a.NodeID = n.NodeID

    LEFT JOIN APM_ComponentSetting cs ON cs.ComponentID = c.ID AND cs.[Key] = '__CredentialSetId'

    LEFT JOIN APM_ComponentTemplate ct ON ct.ID = c.TemplateID

    LEFT JOIN APM_ComponentTemplateSetting cts ON cts.ComponentTemplateID = ct.ID AND cts.[Key] = '__CredentialSetId'

    LEFT JOIN [Credential] cred ON cred.ID = ISNULL(cs.Value, cts.Value)



Thanks a ton! I didn't realize Report Writer was still hiding on the app server.  I also added a 'WHERE Cred.Name IS NOT NULL' to shorten the report down a bit.

tony.johnson​ this doesn't seem to be working on NPM 12.0.  I'm getting a query error.

Try this as a custom query resource, I use it in my environments to check all the credentials being used for nodes in npm and sam

--Solarwinds Credential Use


n.caption as [Node]

,n.detailsurl as [_linkfor_Node]

,'/Orion/images/StatusIcons/Small-' + n.StatusIcon AS [_IconFor_Node]

,n.objectsubtype as [Polling Method]

,case when n.objectsubtype in ('ICMP','WMI') then 'None'


end as [SNMP Credential]

,'/Orion/Nodes/NodeProperties.aspx?Nodes=' + ToString(n.NodeID) as [_linkfor_SNMP Credential]

,'/Orion/images/nodemgmt_art/icons/icon_edit.gif' as [_IconFor_SNMP Credential]

,case when n.objectsubtype='WMI' then cn.Name

else 'None'

end as [WMI Credential]

,'/Orion/Nodes/NodeProperties.aspx?Nodes=' + ToString(n.NodeID) as [_linkfor_WMI Credential]

,'/Orion/images/nodemgmt_art/icons/icon_edit.gif' as [_IconFor_WMI Credential]

,case when is null then 'None Assigned'


end as [Application]

,a.detailsurl as [_linkfor_Application]

,'/Orion/images/StatusIcons/Small-' + a.StatusDescription + '.gif' AS [_IconFor_Application]

,case when aset.value='-3' then 'Inherit From Node'

when aset.value is null and is not null then 'Set by Component'

when is null then 'None Assigned'

else end as [Application Credential]

,'/Orion/APM/Admin/Edit/EditApplication.aspx?id=' + tostring(a.applicationid) as [_linkfor_Application Credential]

,'/Orion/images/nodemgmt_art/icons/icon_edit.gif' as [_IconFor_Application Credential]

,case when is null then 'None Assigned'

else end as [Component]

,c.detailsurl as [_linkfor_Component]

,case when c.statusdescription = 'Not Running' then '/Orion/APM/Images/StatusIcons/Components/Small-not-running.gif'

when c.statusdescription = 'Critical' then '/Orion/APM/Images/StatusIcons/Components/Small-up-critical.gif'

when c.statusdescription ='Unplugged / Offline' then '/Orion/APM/Images/WebsiteUpgrade/button.close.gif'

else concat('/Orion/APM/Images/StatusIcons/Components/Small-',c.StatusDescription,'.gif')

end AS [_IconFor_Component]

,case when a.ApplicationTemplateID in (8,9,10) then 'Set by Application'

when cs.value='-3' then 'Inherit From Node'

when is null then 'None Assigned'

else end as [Component Credential]

,'/Orion/APM/Admin/Edit/EditApplication.aspx?id=' + tostring(a.applicationid) as [_linkfor_Component Credential]

,'/Orion/images/nodemgmt_art/icons/icon_edit.gif' as [_IconFor_Component Credential]

from orion.nodes n

left join Orion.NodeSettings ns ON n.NodeID = ns.NodeID and settingname='WMICredential'

left join Orion.Credential cn ON ns.SettingValue = cn.ID   

left join orion.apm.application a on n.nodeid=a.nodeid

left join Orion.APM.ApplicationSettings as aset on aset.applicationid=a.applicationid and (aset.key='CredentialSetId' or aset.key='SqlCredentialSetId')

left join Orion.Credential ca ON aset.Value = ca.ID

left join orion.apm.component c on c.applicationid=a.applicationid

left join orion.apm.componentsetting cs on cs.componentid=c.componentid and cs.key='__CredentialSetId'

left join Orion.Credential cc ON cs.Value = cc.ID

where (n.caption like '%${SEARCH_STRING}%' or  like '%${SEARCH_STRING}%' or

cn.Name like '%${SEARCH_STRING}%' or like '%${SEARCH_STRING}%' or like '%${SEARCH_STRING}%' or like '%${SEARCH_STRING}%' or like '%${SEARCH_STRING}%')

This is fantastic, thank you.

Any idea why mine turns up blank? Do I need to break it up for the search box? Not seeing what I'm doing wrong.


Paste the whole query into the search box,  in the regular box erase all the where conditions.

Thanks, I knew it was something simple.

Version history
Revision #:
1 of 1
Last update:
‎01-10-2012 12:00 AM
Updated by: