It's funny that you should ask this. I'm currently working on a Perl program that will allow somone to administer printers. When done, it will work for NT and Novell without having to install the driver or map to the printer.
What I'm using (and what you're going to want to look at) is ADSI. Specifically, look at this page. Scroll down till you see IADsPrintQueue and IADsPrintQueueOperations. You'll use Win32::OLE to access these.
Let me know if you need an example and I'll throw one together.
Hope this helps..