In case anyone else has this issue and google points them here like it did for me, I can help shed a little light on this. This specifically applies to Lenovo machines which we use exclusively, but can probably be adapted to other manufacturers.
First, you have to burn the asset tag into the BIOS on Lenovo machines. They wont come burned in since you usually have to apply your company specific tags yourself. Sometimes outside vendors may do this for you, like CDW, but its usually an
extra service that you have to pay for.
Next you have to make sure that you setup your client settings to pull in the SMBIOS Asset Tag class of the win32_systemenclosure category. You can do this in administration>default client settings>hardware inventory>set classes. Use
the search to find Win32_systemenclosure and make sure the SMBIOS Asset Tag class is enabled.
Once you have done all this and hardware inventory has run, then you can build a custom report and use a query like the one below that we used. This query also helps prevent duplicates from showing up in the report. Our DBA designed this for me as
I am terrible with WQL\SQL language.
SELECT
[Machine] =
s.Name0
,
[User Name] =
CS.UserName0
,
[OS] =
OS.Caption0
,
[Service Pack] =
OS.CSDVersion0
,
[Manufacturer] =
CS.Manufacturer0
,
[Model] =
CS.Model0
,
[Serial Number] =
bios.SerialNumber0
,
[Memory] =
ram.Capacity0
,
cs.SystemType0
,
[Asset Tag] =
SMBIOSAssetTag0
FROM
v_R_System s
OUTER
APPLY
(
select top 1
*
from v_GS_COMPUTER_SYSTEM
cs
where cs.ResourceId
= s.ResourceId
order by
cs.RevisionID
desc
)
cs
OUTER
APPLY
(
select top 1
*
from v_GS_OPERATING_SYSTEM
os
where os.ResourceId
= s.ResourceId
order by
os.RevisionID
desc
)
os
OUTER
APPLY
(
select top 1
*
from v_GS_PC_BIOS
bios
where bios.ResourceId
= s.ResourceId
order by
bios.RevisionID
desc
)
bios
OUTER
APPLY
(
select top 1
SUM(ram.Capacity0)
Capacity0
from v_GS_PHYSICAL_MEMORY
ram
where ram.ResourceID
= s.ResourceID
group by
ram.RevisionID
order by
ram.RevisionID
desc
)
ram
OUTER
APPLY
(
select top 1
*
from v_GS_SYSTEM_ENCLOSURE
se
where se.ResourceId
= s.ResourceId
order by
se.RevisionID
desc
)
se
ORDER
BY s.Name0
Hope this helps everyone. I had a hell of a time trying to find a solution online that would work for my needs.