Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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()
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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)