Printer Inventory

How can generate the report including local printer, network printer & server print queue ?


  • If you run: "WMIC Printer List brief"

    It will contain a column called "SYSTEMNAME"

    ZCM will report on all of these because they are locally installed to the system.

    Any printers reported as to a remote system, will not be collected because they are generally only referenced per profile and not really installed to the system.

    It would be similar to reporting a "SAN" as being installed to a PC because there is a mapped drive.


    If you wanted to actually collect this information....

    You would need to Manually Load, Scan, and then Unload every user profile on the machine.

    Then reach out to the network to open any "Roaming Profiles".

    Then you would need to add in additional logic to see which profiles should even be analyzed.

    How many days, weeks, months, or years of lack of use until you care about a "Printer Share" referenced in that profile?

    Of course, none of this is actually reasonable or feasible which is why ZCM does what it does.


    I'm not quite sure what you are trying to achieve, but something such as "Print Auditing" and/or using a system with control over the printers such as "iPrint" can help ensure only authorized people are printing to the printers.


    Be sure to "Like" My (and a few others) Cool Solutions below!

  • Thanks for your information.

    1. Some of the printer should be directly using direct IP connection, (this method can be show in all Windows profiles), can I generate this information with IP address form ZENworks ?
    2. Any method can be generate the report with all user profile for my required information ?
  • The WMI call will show you the what you can see and if it lists as installed directly.

    LPR printers normally show in ZENworks Inventory, even though they are not physically connected.


    Be sure to "Like" My (and a few others) Cool Solutions below!

  • I can using the powershell "Get-Printer | select Name,PortName,DriverName" to get the printer IP information locally, can I get the printer IP information through ZENnwork.

  • Suggested Answer

    Assuming the SYSTEMNAME is "NOT" the local PC, then No you CANNOT use Powershell to do that.

    That is because the info will be unique for every single profile on the PC.  You could in theory do something to collect the info for the current user logged in....but if nobody is logged in or another user is logged in then it will be gone.  

    Imagine Inventory showing a Printere Added and Removed 4-5 times a day every day.  

    That being said, one can be creative with the use of scripts to gather whatever information you want as users login or to load and unload profiles (Very Careful when scripting the loading/unloading or profiles...if you fail to load a profile and that user tries to logon before a could cause the user to get a new profile which is a huge mess.)


    Note: You can use "Printer Policies" in ZENworks so that any printer not delivered by ZENworks is removed.

    What real world problem are yo trying to solve, because Network Shares stored in Each user profile is not really "Inventory" and these remote printer connections are just simply Network Shares.


    Be sure to "Like" My (and a few others) Cool Solutions below!

  • Thanks for your information.

    Can I generate the list of IP connection printer ? Means generate "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" printer list  with IP address not "Computer\HKEY_CURRENT_USER\Printers", thanks.

  • You can report  on any that are returned by WMI as owned by that computer.

    They all appear on a default inventory report.


    Be sure to "Like" My (and a few others) Cool Solutions below!

  • I generate the report ZCC > Devices > choose server > Inventory > Detailed Hardware/Software Inventory > Printer  > click on the printer details, the port item can be display LPT / USB, but the IP item forever empty.

  • Suggested Answer

    So there are TWO issues.

    #1 - ONLY Printers where the SYSTEMNAME from the WMI query shows the local computer, will the Printer be collected in Inventory.  This means anything that uses a Printer Share, Printer Queue, and other similar methods will not be listed in Inventory and would be expected reasons above.

    #2 - LPR Printers, however, WILL appear in Inventory.  Tom's Printer is an example of a Network Printer that appears as installed locally and will be collected by inventory.  However, for these Printers, the "PORT" is NOT collected.

    It appears this has likely never worked in the History of ZCM.  I can tell this because the "PORT" field in the Database is only 6 characters in size, so it never would have been possible to populate this data and they never shrink field sizes.

    The Port info, however, is also not collected by the collector looking at log files.

    So to get this working both the Collector AND the Database would need to be altered.  

    DB changes are only made during Major Updates such as ZENworks 20.4, 20.5 etc....

    ZCM 20.4 (Technically called 23.3) is getting ready for release and is closed to any new fixes.

    ZCM 205 (Most Likely 24.1 or 24.2) would be the first possible release where we could collect this data.

    I did make a ticket for this (OCTIM40D614009) , but I have no clue if Development will consider this as broken.

    It appears the collector is intentionally discarding ports that are not expected things such as LPT, etc....

    So for now....It is not possible to get the PORT  on an LPR Printer, but maybe that could be addressed.

    I do not ever see picking up Printer Shares.


    Be sure to "Like" My (and a few others) Cool Solutions below!