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:
@@ -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
|
||||||
|
|||||||
@@ -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})
|
||||||
|
|
||||||
|
|||||||
@@ -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})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user