Converting a Windows Print Server to Self Service Printers


So, our predominantly Windows organization has a print server, but our Macs currently map to network printer via IP. I'm the "junior" guy on my team - I'm being told this is the way it needs to be done, and whether it's right or wrong, I don't know.

That being said, is there a way to extract IP addresses and settings from this windows print server? The only other way I can think of getting these printers into Self Service is to physically go to each printer our users could be using, add it on my laptop, then add it into Admin. I'd love to not do that if necessary.


Contributor III

You guys should have a name of each printer in your organization with the IP address, and subnet. I would suggest getting that information from the network team.

Honored Contributor

Depending on how your environment is setup, you may encounter issues like printers with dynamic IPs, or an in-house DNS that isn't maintained with current IPs and devices assigned to them. If your printers have been setup the smart way™, they'll have static IPs and at worst you should be able to print off a configuration page from each printer. If you are unfortunate to have printers with dynamic IPs then you'll need to team up with your server & network folks to incorporate static IPs and/or a DNS that picks up on each newly assigned IP. Otherwise there's no point in aiming at a moving target.


I never get to recommend powershell here, but Powershell.
Unless you have some interesting setup, my guess is the portname is going to be the IP.

Simplest solution is run from the WIndows Print Server:

Get-Printer | select name, portname | Export-csv  printerlist.csv

Edit: Added the export piece to be more useful than just seeing the output in powershell.

Valued Contributor II

We switched over to PrinterLogic for our printer management since information was never current.

Valued Contributor III

Are the Macs AD bound? If not perhaps thats the reasoning behind IP printing. However if the Macs are bound and the printers are advertised in the AD directory you can probably pull printer details using a script (you might even be able to script the discovery and install on the fly depending on the number of vendors, drivers etc..
See if any of these give anything meaningful.

dscl "/Active Directory/YOUR_DOMAIN/All Domains" -list /Printers
dscl "/Active Directory/YOUR_DOMAIN/All Domains" -read /Printers/SOME_PRINTER
dscl "/Active Directory/YOUR_DOMAIN/All Domains" -read /Printers/SOME_PRINTER dsAttrTypeNative:portName

It's pretty common practice to name portnames with the IP address in them.