How to check if a version of dotnet framework is installed on computers with K1
Looking on how to check if a version of .NET framework is installed on a machine with the K1.
Or better still.....which machines don't have a version of .NET framework i.e (4.7.2).
Any ideas on how I search for that in the K1 device inventory?
I have checked in the "installed software" and "discovered software" in
the device detail page, but don't see any versions of ".NET framework" listed.
My brain cant seem to wrap itself around this problem this morning...... (Must be the hay fever...)
Thanks all.
0 Comments
[ + ] Show comments
Answers (3)
Please log in to answer
Posted by:
torstenspitz
6 years ago
Posted by:
ondrar
6 years ago
Posted by:
CarstenBuscher
6 years ago
I would create an smartlabel with following options:
Softwaretitle contains Microsoft .Net Framework and
Softwareversion does not contain 4.7.2
Then you create a new package and assign the label to the package. With it you can update the obsolete version automatically.
This criterias works with the advanced search too if you don´t want to create a extra label.
Comments:
-
NOTE: the second line in the above smart label will check ALL software for version 4.7.2
Not that it is the most common version number, but if by chance a machine had a lower version of .NET but also a different software that IS version 4.7.2, it will still be left off the list of machines this smart label pulls.
To correct this issue, you can edit the SQL code generated by the smart label and nest the version check into the software title check. (navigate to the Smart Label and click the Edit SQL button at the bottom of the label details)
In essence, you copy the last "and" statement of the second-line-of-the-smart-label check and paste it just after the last "and" statement of the first line's check, then remove the second line check from the code (but make sure there are still enough closing parenthesis). To make this more confusing, since we are removing a portion of the code which has NOT in front of the second check, we need to add "not" in front of the software version "like" statement, in order to make sure we are looking for machines WITHOUT version 4.7.2 installed. See in nested example below.
Example Original SQL (Used stars to denote where the second line of the smart label begins):
SELECT MACHINE.NAME AS SYSTEM_NAME, SYSTEM_DESCRIPTION, MACHINE.IP, MACHINE.MAC, MACHINE.ID as TOPIC_ID FROM MACHINE WHERE ((( exists (select 1 from SOFTWARE, MACHINE_SOFTWARE_JT where MACHINE_SOFTWARE_JT.MACHINE_ID = MACHINE.ID AND SOFTWARE.ID = MACHINE_SOFTWARE_JT.SOFTWARE_ID and SOFTWARE.DISPLAY_NAME like '%Microsoft .Net Framework%' )) ) *****SECOND LINE OF SMART LABEL BEGINS HERE***** AND ((not exists (select 1 from SOFTWARE, MACHINE_SOFTWARE_JT where MACHINE_SOFTWARE_JT.MACHINE_ID = MACHINE.ID AND SOFTWARE.ID = MACHINE_SOFTWARE_JT.SOFTWARE_ID and SOFTWARE.DISPLAY_VERSION like '%4.7.2%')) ))
Example Nested SQL:
SELECT MACHINE.NAME AS SYSTEM_NAME, SYSTEM_DESCRIPTION, MACHINE.IP, MACHINE.MAC, MACHINE.ID as TOPIC_ID FROM MACHINE WHERE ((( exists (select 1 from SOFTWARE, MACHINE_SOFTWARE_JT where MACHINE_SOFTWARE_JT.MACHINE_ID = MACHINE.ID AND SOFTWARE.ID = MACHINE_SOFTWARE_JT.SOFTWARE_ID and SOFTWARE.DISPLAY_NAME like '%Microsoft .Net Framework%' and SOFTWARE.DISPLAY_VERSION not like '%4.7.2%')) ))
Hopefully that was easy enough to understand, I know it's pretty confusing.
Btw, won't get into it now since this is already far too confusing, but the above smart label also doesn't account for machines that don't have ANY version of .NET installed. Suffice it to say, you need to add an OR statement. Or you could just create a separate smart label for that case. - JustAnotherMikhail 5 years ago