SMS 2003 – Inventory Local Installed Printers
This information is provided as is. Do not perform any of the steps below if you are not familiar with the processes!
In order to show the local printers installed on computers we need to first enable discovery of that information. This will require modifying the sms_def.mof to enable the information we want collected.
Go to your \SMS\inboxes\clifiles.src\hinv and open up your sms_def.mof, once you have your MOF open, then search for “win32_printer” and you should jump to the “Printer Device” section:
Under this section you will see [SMS_Report (FALSE) ] sections. You will need to change the false to true for any section you want to pull information from.
Here are the sections i recommend you enable (DO NOT DELETE ANYTHING):
[SMS_Report (TRUE) ]
string Description;
[SMS_Report (TRUE), key]
string DeviceID;
[SMS_Report (TRUE) ]
string DriverName;
string Location;
[SMS_Report (TRUE) ]
string Name;
[SMS_Report (TRUE) ]
string PortName;
Once you have made these changes, you can save and exit the MOF. Once your clients run their next hardware inventory cycle, then you should have information in the DB that you can now query in a web report or in SQL query analyzer.
The information will show up under v_gs_printer_device
One web report I have created is “Show All Local Printers”, here is the query i use for this report.
select netbios_name0, pri.name0, drivername0, portname0
from v_gs_printer_Device pri
join v_r_system on pri.resourceid = v_r_system.resourceid
where drivername0 NOT LIKE '%PDF%' AND
drivername0 NOT LIKE '%MICROSOFT%' AND
drivername0 NOT LIKE 'Biscom FAX%' AND
drivername0 NOT LIKE 'SnagIT%'
order by netbios_name0
You can see i exempted out a few things that are common in our environment, you may have others you might need to exempt from the results.
Hope this helps,
Chris