Adding Windows based printers to MacOS X can be a bit tricky. The Print Center and CUPS web interface don't quite do everything that's needed if passwords are necessary to print to Windows printers. The Unix shell tools lpadmin and lpoptions are the key. Here's a recipe that has been successful for me.
First, you've got to find out the name of the printer and the name of the Windows server. The smbclient tool can be used from the command line if you know the name of the server. For example...
% smbclient -n user -W workgroup -L serverName>...generates a list of all the available file servers and printers on a server. Otherwise, if there's a Windows computer somewhere nearby, start up the 'Add Printer' tool and it will browse Windows network printers. Note the name of the server and the name of the printer.
% lpadmin -p printerName -vThat should be entered on one line, with a space after the '-v'; it was broken here to narrow the display width. To provide the (required) PPD file:
smb://windowsUserName:password@Domain/winServer/winName
% lpadmin -p printerName -P ppdFilePPD files can be found in /Library -> Printers -> PPDs -> Contents -> Resources -> English.lproj/. Once the printer is defined, you've got to force the CUPS daemon to re-read it's configuration with:
% sudo killall -HUP cupsdTo debug this whole business, it can be very useful to enable CUPS debug-level logging. This can be done by editing the file /private -> etc -> cups -> cupsd.conf and changing the line 'LogLevel info' to 'LogLevel debug'. CUPS writes its log files in the directory /var/log/cups.
Mac OS X Hints
http://hints.macworld.com/article.php?story=20020924062202310