- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 04-24-2019 12:01 AM
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
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
- 4,891 Views

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Great information! Thanks! We are currently using the OOB 2012 integration, but may be upgrading soon.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Very Helpful information .Thanks

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi Frank,
could you please help me out on test case document reference sample for sccm integration?
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
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?
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi Susan,
i just added the SQL Statement into the Query and created a new field in the Import Set Table
you might want to check with your SCCM Team if this field is populated in the SCCM Database.
hope this helps
Frank
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thanks Frank. That's the same conclusion I came to yesterday. Awaiting a reply from our SCCM admin...
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
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
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
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:
- Remove the line that says v_GS_COMPUTER_SYSTEM.model0 as model
- Add the following in its place: