Software Inventory Report

Hello, can one of you clever people please help.

My manager wants a report for all the software in our Server infrastructure.  I created a report from the 'Software Inventory Report' which shows the Application Name, Publisher, Version and Installed Copies, which I thought was great and good enough.

However my manager wants to see all the software installed on a particular node, so the report that I've created now shows the Node, Application Name, Publisher, Version and Installed Copies.

As he wants to access this information randomly I actually think I would be better creating a view within Solarwinds for him where he can login and view a page that shows just the software Inventory.

Is there a way of having a page that shows all the nodes, then when you click on a node you see the Software Inventory?

Thanks

Anita

  • So if you take a node in Solarwinds...for example lets use 'Server A'

    If you add it via WMI and then go to 'list resources' Asset Inventory is one of the check boxes in there.

    There should then be an 'Asset Inventory' tab on the left side of the screen when you click on the node.

    Not sure how big your environment is but a full software inventory report has killed the RAM on my Solarwinds Server before. I would definitely encourage your boss to search for 'x' Server and then click the asset inventory at that point. You can also configure the report to have a hyperlink where he can go to the report and then click on the node right from there I believe.

  • Try this as a custom query resource on a dashboard, it gets a list of all nodes that currently have software asset inventory on them, then if you click the link it will take you to the software inventory screen for that node.  Pretty painless.

    select distinct n.Caption, n.Vendor, n.MachineType

    , concat('/Orion/DetachResource.aspx?ResourceID=',(SELECT TOP 1ResourceID FROM Orion.Resources where ResourceTitle ='software inventory'),'&NetObject=N:',n.nodeid) as [_linkfor_Caption]

    from orion.Nodes n

    where n.AssetInventory.Software.Name is not null

  • Hello,

    Thanks for your reply.  Looks like this is the kind of thing that I need, I entered the code into a query but I'm getting an error, I've tried to find some examples on the internet to work it out but getting nowhere fast!

    This is the message:-

    Invalid column name 'AssetInventory'.

    I've tried adding a column name from AssetInventory but I'm still getting errors.

  • This query was written in SWQL, that error makes me think the box you entered it into is looking for regular SQL.  Are you using the custom query resource or something else?

  • Sorry, I had tried it in SQL Server Management Studio.  I will try it in SWQL; thanks so much.

  • Just to let you know, I have entered the script and got an output; thank you so much.

    I don't seem to get an actual hypertext link that I can click on, do you know if there is a way of doing this? Is there something I can do in here:-

    pastedImage_1.png

    Also I tried to add more information to the report such as 'installed software' 'version' and 'IP' but couldn't do it, I tried to add these to the top of the script next to 'caption', 'vendor' etc, this didn't work and it seems you can only add a particular kind of String.  Are you able to tell me how I can build the report with extra column of information?

    Here is a screen shot of the output.

    pastedImage_0.png

    Apologies for my ignorance but I have never written anything in SQL or SWQL before.

  • The _linkfor_ syntax only works if you use the query inside a resource they call a "Custom Query", you can add that resource to views or to reports but it doesn't show up on the initial screen of resources for reports, you have to search for it.

    pastedImage_1.png

    As far as the additional columns, whenever you write a report using custom queries you have to specify the columns you want to include, and you have to get their exact names within the database correct.  You can find those names by browsing around with SWQL studio Releases · solarwinds/OrionSDK · GitHub and you won't get far in SWQL without installing that to see how things are laid out to query.

    In this case though, I wrote the report to match what you described initally about having a summary that he could drill down into any particular node by clicking the link.  To modify it you could take the existing report and add additional columns from the assetinventory.software table, you can see an screenshot below of how I'd use SWQL Studio and the autocomplete feature it has to find the name of the column I need.

    pastedImage_2.png

    So, using those tools this is what I would probably do to expand on this kind of resource in my environment and get the most from it:

    Set him up a dashboard and add a custom query resource to it. In the first box paste in the first query I have below.  Then check the box for enable search and paste the second query from this post into that.  Change the number of rows per page to something like 25 or maybe even something really high so you can just scroll through the list without having to hit next page so much.  This gives you a resource that initially just lists out all the  nodes with software inventory and if he wants he can click them and it takes you to the built in software inventory resource,  and he has the option to search the inventories of everything for matches against the node captions and the software names/publishers/versions.

    pastedImage_3.png

    --First box

    select distinct n.Caption, n.Vendor, n.MachineType

    , concat('/Orion/DetachResource.aspx?ResourceID=',(SELECT TOP 1ResourceID FROM Orion.Resources where ResourceTitle ='software inventory'),'&NetObject=N:',n.nodeid) as [_linkfor_Caption]

    from orion.Nodes n

    where n.AssetInventory.Software.Name is not null

    --Search box

    select distinct n.Caption, n.Vendor, n.MachineType

    ,n.AssetInventory.Software.Name

    ,n.AssetInventory.Software.Publisher

    ,n.AssetInventory.Software.Version

    from orion.Nodes n

    where n.AssetInventory.Software.Name is not null

    and (n.caption like '%${SEARCH_STRING}%' or n.AssetInventory.Software.name like '%${SEARCH_STRING}%' or n.AssetInventory.Software.publisher like '%${SEARCH_STRING}%' or n.AssetInventory.Software.version like '%${SEARCH_STRING}%')

    Order by n.caption

    Initial view:

    pastedImage_5.png

    And with a search in effect:

    pastedImage_6.png

    -Marc Netterfield

        Loop1 Systems: SolarWinds Training and Professional Services

  • WOW, thank you so much for the detailed instructions and taking the time to  help me.  I am going to read your information/instructions very carefully and then try to apply it.  This is just what I needed; thanks so much again emoticons_happy.png

  • Thank you, thats a great widget and wonderfully explained :)

  • This is REALLY cool. At first I tried to implement it with the modern dashboard, but it seems you can't customize your search in there (or at least I couldn't find a way to). However, when I went back and made a classic view, it worked like a breeze.