def test_RpcRemoteFindFirstPrinterChangeNotificationEx(self): dce, rpctransport = self.connect() request = rprn.RpcOpenPrinter() request['pPrinterName'] = '\\\\%s\x00' % self.machine request['pDatatype'] = NULL request['pDevModeContainer']['pDevMode'] = NULL request[ 'AccessRequired'] = rprn.SERVER_READ | rprn.SERVER_ALL_ACCESS | rprn.SERVER_ACCESS_ADMINISTER request.dump() resp = dce.request(request) resp.dump() request = rprn.RpcRemoteFindFirstPrinterChangeNotificationEx() request['hPrinter'] = resp['pHandle'] request['fdwFlags'] = rprn.PRINTER_CHANGE_ADD_JOB request['pszLocalMachine'] = '\\\\%s\x00' % self.machine request['pOptions'] = NULL request.dump() try: resp = dce.request(request) resp.dump() except Exception as e: if str(e).find('ERROR_INVALID_HANDLE') < 0: raise
def test_RpcOpenPrinter(self): dce, rpctransport = self.connect() request = rprn.RpcOpenPrinter() request['pPrinterName'] = '\\\\%s\x00' % self.machine request['pDatatype'] = NULL request['pDevModeContainer']['pDevMode'] = NULL request['AccessRequired'] = rprn.SERVER_READ request.dump() resp = dce.request(request) resp.dump()
def _create_request(self): request = rprn.RpcOpenPrinter() str = f"http://{self.target}:{self.trgt_port}/printers/ppp/.printer" request['pPrinterName'] = '%s\x00' % str request['pDatatype'] = NULL request['pDevModeContainer']['pDevMode'] = NULL request['AccessRequired'] = rprn.SERVER_READ return request
def test_RpcRemoteFindFirstPrinterChangeNotificationEx(self): dce, rpctransport = self.connect() request = rprn.RpcOpenPrinter() request['pPrinterName'] = "\\\\%s\x00" % self.machine request['pDatatype'] = NULL request['pDevModeContainer']['pDevMode'] = NULL request[ 'AccessRequired'] = rprn.SERVER_READ | rprn.SERVER_ALL_ACCESS | rprn.SERVER_ACCESS_ADMINISTER request.dump() resp = dce.request(request) resp.dump() request = rprn.RpcRemoteFindFirstPrinterChangeNotificationEx() request['hPrinter'] = resp['pHandle'] request['fdwFlags'] = rprn.PRINTER_CHANGE_ADD_JOB request['pszLocalMachine'] = "\\\\%s\x00" % self.machine request['pOptions'] = NULL request.dump() with assertRaisesRegex(self, rprn.DCERPCSessionError, "ERROR_INVALID_HANDLE"): dce.request(request)