1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-13 16:23:50 +03:00

Initial version of printerdata_ex browsing.

This commit is contained in:
Tim Potter
-
parent c211d2deca
commit c201a61a52
3 changed files with 38 additions and 5 deletions

View File

@@ -9,16 +9,19 @@ import printerdata
# Initialise printerdata dictionary # Initialise printerdata dictionary
if len(sys.argv) != 2: if len(sys.argv) < 2 or len(sys.argv) > 3:
print "Usage: gprinterdata <printer>" print "Usage: gprinterdata [--ex] <printer>"
print "where <printer> is a UNC printer name." print "where <printer> is a UNC printer name."
sys.exit(1) sys.exit(1)
try: try:
host = string.replace(sys.argv[1], "/", "\\") host = string.replace(sys.argv[len(sys.argv) - 1], "/", "\\")
t = printerdata.printerdata(host) if sys.argv[1] == "--ex":
t = printerdata.printerdata_ex(host)
else:
t = printerdata.printerdata(host)
except: except:
print "gprinterdata: error opening %s" % sys.argv[1] print "gprinterdata: error opening %s" % sys.argv[len(sys.argv) - 1]
sys.exit(1) sys.exit(1)
# Create interface # Create interface

View File

@@ -21,3 +21,18 @@ class printerdata:
self.hnd.setprinterdata({"key": "", "value": key, "type": 3, self.hnd.setprinterdata({"key": "", "value": key, "type": 3,
"data": value}) "data": value})
class printerdata_ex:
def __init__(self, host, creds = {}):
self.hnd = spoolss.openprinter(host, creds = creds)
def keys(self):
return self.hnd.enumprinterdataex("PrinterDriverData").keys()
def __getitem__(self, key):
return self.hnd.getprinterdataex("PrinterDriverData", key)['data']
def __setitem__(self, key, value):
# Store as REG_BINARY for now
self.hnd.setprinterdataex({"key": "PrinterDriverData", "value": key, "type": 3,
"data": value})

View File

@@ -21,3 +21,18 @@ class printerdata:
self.hnd.setprinterdata({"key": "", "value": key, "type": 3, self.hnd.setprinterdata({"key": "", "value": key, "type": 3,
"data": value}) "data": value})
class printerdata_ex:
def __init__(self, host, creds = {}):
self.hnd = spoolss.openprinter(host, creds = creds)
def keys(self):
return self.hnd.enumprinterdataex("PrinterDriverData").keys()
def __getitem__(self, key):
return self.hnd.getprinterdataex("PrinterDriverData", key)['data']
def __setitem__(self, key, value):
# Store as REG_BINARY for now
self.hnd.setprinterdataex({"key": "PrinterDriverData", "value": key, "type": 3,
"data": value})