I'm not sure if anyone else has found a better solution for this. I thought I would share just in case. If anyone has a shorter way please let me know.
We're about to open a new building and I've recently been tasked with getting warranty info on our machines. Unfortunately we do not have all Dells so this was a little challenging. I started by running a simple query to find all of my Lenovos.
SELECT CS_MODEL, BIOS_SERIAL_NUMBER
FROM MACHINE M
WHERE CS_MANUFACTURER = 'LENOVO'
I exported the results of this query to a csv. I then went to Lenovos warranty site and uploaded the csv under the batch query section.
Clicking the link will give you an option to download a template. Copy and paste your csv from the above query to fill in the required fields. Once this is down upload the new csv. This will return yet another csv "warranty information.csv". I formatted the "WarrantyEndDate" field to yyyy-mm-dd before saving it (used for reporting). I did have problems uploading all my machines at the same time. I had to break it up in groups of 3,500(Google Chrome 23.0.1271.97).
I added a field "Warranty End Date" to the existing computer type in assets. I then took this warranty information.csv and imported it into assets. After the import I am now able to run queries to find out which machines will be expiring in the next month.
***Note this query will be unique to your Kbox***
SELECT DISTINCT M.NAME AS 'Machine Name',BIOS_SERIAL_NUMBER AS 'Serial Number', A5.FIELD_56 AS 'Warranty End Date'
FROM MACHINE M
LEFT JOIN ASSET A ON A.MAPPED_ID = M.ID AND A.ASSET_TYPE_ID=5
LEFT JOIN ASSET_DATA_5 A5 ON A5.ID = A.ASSET_DATA_ID
WHERE CS_MANUFACTURER = 'lenovo' AND (A5.FIELD_56 > DATE_ADD(NOW(),INTERVAL 1 DAY))
AND (A5.FIELD_56 < DATE_ADD(NOW(),INTERVAL 1 MONTH))
ORDER BY A5.FIELD_56
Since machines come with at least a year warranty this should on need to be done every six months or so. Hope this helps.