These functions should get you started and probably finished...

def createprinterport(IPAddress,ServerName):
    WBEM =
win32com.client.GetObject(r"winmgmts:{impersonationLevel=impersonate}!\\"
+ ServerName + r"\root\cimv2")
    WBEM.Security_.Privileges.AddAsString("SeLoadDriverPrivilege")
    printerport = WBEM.Get("Win32_TCPIPPrinterPort").SpawnInstance_()
    printerport.Properties_('Name').Value = 'IP_'+IPAddress
    printerport.Properties_('Protocol').Value = 1
    printerport.Properties_('HostAddress').Value = IPAddress
    printerport.Properties_('PortNumber').Value = '9100'
    printerport.Properties_('SNMPEnabled').Value = 'False'
    printerport.Put_()

def
createprinter(PrinterName,DriverName,Location,ShareName,IPAddress,ServerName):
    WBEM =
win32com.client.GetObject(r"winmgmts:{impersonationLevel=impersonate}!\\"
+ ServerName + r"\root\cimv2")
    WBEM.Security_.ImpersonationLevel = 3
    WBEM.Security_.Privileges.AddAsString("SeLoadDriverPrivilege")
    printer = WBEM.Get("Win32_Printer").SpawnInstance_()
    printer.Properties_('DeviceID').Value = PrinterName
    printer.Properties_('DriverName').Value = DriverName
    printer.Properties_('Location').Value = Location
    printer.Properties_('Network').Value = 'True'
    printer.Properties_('Shared').Value = 'True'
    printer.Properties_('ShareName').Value = ShareName
    printer.Properties_('PortName').Value = 'IP_'+IPAddress
    printer.Put_()

I also created one for migrating print drivers but had loads of
problems with it.  If the driver doesn't pass Microsoft logo testing
the scripts fail even if it is signed by Microsoft.  I never worked out
why there were 2 levels of protection.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to