Wmi Query Local Printer Serial Number
Just to reinforce what Matt says above, SMSDEF.mof has nothing to do with network discovery. Network discovery is one of the discovery methods available for finding resources on a network, in this case valid network endpoints. Discoveries do not interrogate those resources extensively, they merely find them and create resources in the database for them. The AD based discoveries return some additional details because those details are already in AD and the network discovery can return some information on Windows systems.
SMSDEF.mof controls which WMI classes and attributes that ConfigMgr queries and retrieves during a HW inventory. Because printers, even local printers, don't report details like their serial numbers to Windows, there is no way by default to get this information using ConfigMgr - none of the printer classes I reviewed had a any type of serial number attribute. Also, because ConfigMgr itself doesn't manage printers, there is nothing really built in to achieve this.
You could conceivably create a HW inventory extension, but that extension would depend on some outside process to retrieve the serial number which is dependent on the printers in your environment. Jason Twitter @JasonSandys. You might be interested in, or the dataldr scripts to gather information about 'what network printer resources is this user connected to'. The sccmexpert scripts are NOT designed to gather info about printer serial numbers (for example). The dataldr printer script is designed to help determine 'who uses the network printer available as PrintServerName PrinterName From a Configmgr Hardware Inventory standpoint, what you can gather (by default) regarding printers is information related to the computer - i.e., locally connected printers (LPT1:, USB, or explicitly defined via tcp/ip port, or other local printers like XPS).
You dont need anything except a windows command prompt to get the service tag. Or belarc Advisor. To get the Dell service tag via command line or from a remote computer, execute the following on the command line: wmic bios get serialnumber. Report Unresolved Customer Service Issues here. Dear All, I was facing an issue to get Printer serial number, Here is how I was able to solve it using C#. You can see the serial number of the model by going into 'Device Manager' and then select the device and click on 'Properties'.
Sccm Serial Number Query
To leverage information about printer connections a User of that computer may elect to make, that requires a 3rd-party custom script to run to gather that information and place it in a location available to hardware Inventory to pick up. Sherry's links are great places to start. Also, you'll need to know WMI and VBScript, JScript, or some other means to get data from wherever it is stored on the printer into WMI.
Another example of this is from Sherry's blog (courtesy of John Marcum): This solutions uses a VBScript run on every Dell system which contacts the Dell website to retrieve the shipping date (and other warranty info) and put that info into WMI where the HW inventory grabs it and puts it into the ConfigMgr DB. Most printers have a management web site these days so I suspect you could conceptually do something similar. Jason Twitter @JasonSandys. Just to reinforce what Matt says above, SMSDEF.mof has nothing to do with network discovery. Network discovery is one of the discovery methods available for finding resources on a network, in this case valid network endpoints.
Discoveries do not interrogate those resources extensively, they merely find them and create resources in the database for them. The AD based discoveries return some additional details because those details are already in AD and the network discovery can return some information on Windows systems. SMSDEF.mof controls which WMI classes and attributes that ConfigMgr queries and retrieves during a HW inventory. Because printers, even local printers, don't report details like their serial numbers to Windows, there is no way by default to get this information using ConfigMgr - none of the printer classes I reviewed had a any type of serial number attribute.
Also, because ConfigMgr itself doesn't manage printers, there is nothing really built in to achieve this. You could conceivably create a HW inventory extension, but that extension would depend on some outside process to retrieve the serial number which is dependent on the printers in your environment. Jason Twitter @JasonSandys.
You might be interested in, or the dataldr scripts to gather information about 'what network printer resources is this user connected to'. The sccmexpert scripts are NOT designed to gather info about printer serial numbers (for example). The dataldr printer script is designed to help determine 'who uses the network printer available as PrintServerName PrinterName From a Configmgr Hardware Inventory standpoint, what you can gather (by default) regarding printers is information related to the computer - i.e., locally connected printers (LPT1:, USB, or explicitly defined via tcp/ip port, or other local printers like XPS).
To leverage information about printer connections a User of that computer may elect to make, that requires a 3rd-party custom script to run to gather that information and place it in a location available to hardware Inventory to pick up. Sherry's links are great places to start. Also, you'll need to know WMI and VBScript, JScript, or some other means to get data from wherever it is stored on the printer into WMI. Another example of this is from Sherry's blog (courtesy of John Marcum): This solutions uses a VBScript run on every Dell system which contacts the Dell website to retrieve the shipping date (and other warranty info) and put that info into WMI where the HW inventory grabs it and puts it into the ConfigMgr DB. Most printers have a management web site these days so I suspect you could conceptually do something similar.
Jason Twitter @JasonSandys. I am seeing all of this as a 'HUGE HOLE in the works,' so to speak. Bottom line: we need some hardware consortium to push an IEEE or other such standard for ALL device serial numbers to be maintained in a callable BIOS and/or WMI area - both local to the device (i.e.; always stored in the printer's NVRAM) and replicated to the WMI area on the local client that maps to the printer (or is physically usb-connected to the printer) - not at all sure that I worded that correctly, but you get the picture.
One of the basic things that we system admins want the SCCM and other inventory-type software to do is GET ME THE SERIAL #! And, I haven't yet looked at Sherry's blog reference to John Marcum's Dell extension, but that sounds close to what we need. In our case, we have ONLY Dell printers (99%), so that may work. Either way, there needs to be a universal solution, which has been talked about for years. HP, per my understanding, actually polls the printer somehow and the printer contains the serial # 'somehwere;' and that serial # is placed in the registry.
But, a more ideal solution is to query the priinter itself, and have the printer return the serial # (just like other wmi items that already are returned. And this goes for Routers, Switches, Firewalls, Concentrators, PCs, Servers, etc.
no matter what platform or o/s. I know that Cisco holds serial # in the firmware and/or O/S - because it always is in the detailed listing when you show the system config.
I'm curious how the John Marcum script works - I'm guessing there is some way for the printer to 'know' its own serial # from the list of printers on Dell's site? If so, then cerainly the Serial # information IS available within the printer itself. Another mentioned workaround is to place the Serial #, at some point during the printer installation, into a standard field that can be queried by WMI - but those usually are local-queue-based; i.e., if I take my USB printer and move it to another computer, I no longer have that serial # info, because it was created 'on the client PC' as part of the local print queue. Our problem is expounded by the fact that we do not have 'network printers' nor queues - we have only USB-based locally-attached printers. At any rate, thanks for all the excellent 'starting points;' now, if only we can achieve some 'finishing points.'
Hi, Thanks for your help and support. You already know but i am putting information below for your reference. I found DataShift-Printer file from below link and i ran it on a machine to which printer is connected.i am also finding that pc in my network. 1) I found win32Printer,SMXPrinter classes in wmi explorer which i downloade from below link.
2) I took code from below link and found a folder named ConfigMgrMOFSnippets. From which i found 28-SCCMExpertDatashift folder and i copied code from it to smsdef.mof file but nothing happned.printer not found. Apart from it i again ran procedures i did for finding all lan pcs but printer i haven't found. May i am missing any config or code to paste in smsdef.mof.
Please help me to find other info for all connected deveices also like machine manufacturer,model,serial no,barcode etc. I read few forums in google but looks like to find every info i need diff settings. Also for your info I have to start using sccm api for taking data and copy that data to my database. I found sccm 2007 sdk. Thanks and Regards, Chintan Desai.