Frank1975
Kilo Guru

Hi all, 

i am currently on a journey through Software Asset Management Professional. This is actually touching areas we have never thought about, but the first thing i want to mention is, try to stay as much as you can Out of the Box within Service Now. 

Our Instance is up and running for almost 10 years +. including running discovery from day 1.

In the past several years, we have modified a lot of tables and functions, which is kind of breaking out neck as of now and we need to revert a lot of thing to base system. When we did the customization, at this time, Service Now did not offer something similar out of the box, so we built our own. So just as a highly recommendation, try to stay out of the box 🙂 

Lets refocus on the subject. : SCCM 2016 Integration.
Out of the box, the SCCM 2016 integration is working like a dream, even so that we also had to do some Customization to it as well. 


1) LAST LOGGED IN vs ASSIGNED TO

We don´t want SCCM to change the assigned to person (which would be the last logged on person. So what we did is , we created a reference field on the computer table and called it Last logged in User. During the Project , we found that it would be much better , not to have it a reference field but a string field. The reason behind this is, if the last logged in user was a local account on that system, it would not be part of the User table (feed from AD) so it could not set the name in the reference field. Amazing how many people bypass AD and use local accounts instead.

There is also a system property which can be set, so that Discovery and SCCM is not touching the Assigned to , unless its empty.
System Property is : glide.wmi.assigned_to_always_overwrite  - false

 

2) TOP CONSOLE USER

Within SCCM , you have the availability to get the Top Console User into Service Now. by simply adding a SQL Statement to the computer identity and a new field on the import set table and of course a modified transform map.The Top Console User is the User with the most log ins the last 20 times. This is a nice verification , if the top console User is matching the assigned to , to make sure the system did not get handed over to another person.

The SQL statement which needs to be added is : 

Within Data Source - SCCM 2016 Computer Identity

 v_GS_SYSTEM_CONSOLE_USAGE.TopConsoleUser0 as TopConsoleUser
and in the Left Join section
LEFT JOIN v_GS_SYSTEM_CONSOLE_USAGE ON v_GS_COMPUTER_SYSTEM.ResourceID = v_GS_SYSTEM_CONSOLE_USAGE.ResourceID

We also did this field as a string field for the same reason as described in section 1)

 

3) LENOVO ENVIRONMENT

Since the majority of our User Environment is Lenovo, there is also a slight modification required within the Data Source for the Computer identity. 

Out of the Box , the SQL Statement : v_GS_COMPUTER_SYSTEM.Model0 as model, would give you a real model name such as " latitude 5590" for Dell systems. Not so much for Lenovo. For Lenovo computers , SCCM is bringing in the Model ID with this statement such as : 20L8S1UV0M instead of Thinkpad T480s.
SCCM stores the real name for lenovo systems in a different place. 
An additional SQL Statement is required to get this information into ServiceNow.
SQL statement

v_GS_COMPUTER_SYSTEM_PRODUCT.Version0 as Version,

This will give you the Model Name, instead of the Model ID.

 

4) DISCOVERY SOURCE

When you are using Discovery, you get licensed by notes you are discovering. The measure for this is how many systems have been discovered the last 90 days with the discovery source : Service Now.

To make sure , that Windows Systems , which got created and updated by SCCM we are setting the Discovery Source to SCCM with the following addition to the script in the Transform Map SCCM 2016 Computer Identity

target.discovery_source = 'SCCM';

 

I hope this is useful , for anyone working with the SCCM 2016 Integration.

 

Thanks

Frank

 

Comments
Paul Miller2
Tera Contributor

Great information! Thanks! We are currently using the OOB 2012 integration, but may be upgrading soon.

vijayprasadredd
Tera Expert

Very Helpful information .Thanks @Frank1975 

Manikandan T
Giga Contributor

Hi Frank,

could you please help me out on test case document reference sample for sccm integration?

 

 

SusanWinKY
Kilo Sage

Frank, we tried the Lenovo tweak:

v_GS_COMPUTER_SYSTEM_PRODUCT.Version0 as Version,

But we're consistently getting empty values for Version in our imported data set.  Any idea if there is anything else needed?

Frank1975
Kilo Guru

Hi Susan, 

 

i just added the SQL Statement into the Query and created a new field in the Import Set Table 

find_real_file.png

you might want to check with your SCCM Team if this field is populated in the SCCM Database. 

hope this helps

 

Frank

SusanWinKY
Kilo Sage

Thanks Frank. That's the same conclusion I came to yesterday.  Awaiting a reply from our SCCM admin...

maxav
Kilo Contributor

Hi Frank,

Recently implemented SCCM set up. Customer dont want to update the Assigned to and location field in cmdb_ci_computer table through SCCM. Instead they want to update it manually.

I saw a function in computer identity data source and commented the same. Please suggest how to restrict this update.

 

Thanks

Mano

Jay Decker
Tera Contributor

Regarding getting the model name for Lenovo, rather than adding a new field to the import and then modifying or customizing a transform map, you can use the following to modify the OOTB query in the Computer Identity data source query statement:

  1. Remove the line that says v_GS_COMPUTER_SYSTEM.model0 as model
  2. Add the following in its place:

 

CASE v_GS_COMPUTER_SYSTEM.Manufacturer0
     WHEN 'LENOVO' 
          THEN v_GS_COMPUTER_SYSTEM_PRODUCT.version0 
     ELSE v_GS_COMPUTER_SYSTEM.model0 
     END                                       as model 
 
This will use the proper field to populate depending on if the manufacturer is LENOVO or something else. No further modification to OOTB is required.
Version history
Last update:
‎04-24-2019 12:01 AM
Updated by: