def test_hSchRpcRun(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] try: resp = tsch.hSchRpcRun(dce, '\\At%d\x00' % jobId, ('arg0', 'arg1')) resp.dump() except Exception as e: print(e) pass resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hSchRpcEnumTasks(self): dce, rpc_transport = self.connect() dce_2, rpc_transport_2 = self.connect( iface_uuid=atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce_2, NULL, atInfo) resp.dump() except atsvc.DCERPCSessionError as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] resp = tsch.hSchRpcEnumTasks(dce, '\\') resp.dump() resp = atsvc.hNetrJobDel(dce_2, NULL, jobId, jobId) resp.dump()
def test_SchRpcEnumTasks(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() jobId = resp['pJobId'] request = tsch.SchRpcEnumTasks() request['path'] = '\\\x00' request['flags'] = tsch.TASK_ENUM_HIDDEN request['startIndex'] = 0 request['cRequested'] = 10 resp = dce.request(request) resp.dump() resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hNetrJobAdd_hNetrJobEnum_hNetrJobDel(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return resp = atsvc.hNetrJobEnum(dce) resp.dump() for job in resp['pEnumContainer']['Buffer']: resp = atsvc.hNetrJobDel(dce, NULL, job['JobId'], job['JobId'] ) resp.dump()
def test_SchRpcEnumTasks(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcEnumTasks() request['path'] = '\\\x00' request['flags'] = tsch.TASK_ENUM_HIDDEN request['startIndex'] = 0 request['cRequested'] = 10 resp = dce.request(request) resp.dump() resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hSchRpcStop(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C vssadmin > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] try: resp = tsch.hSchRpcStop(dce, '\\At%d\x00' % jobId) resp.dump() except Exception as e: # It is actually S_FALSE if str(e).find('ERROR_INVALID_FUNCTION') <= 0: raise pass resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hSchRpcEnumTasks(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] resp = tsch.hSchRpcEnumTasks(dce, '\\') resp.dump() resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hNetrJobAdd_hNetrJobGetInfo_hNetrJobDel(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return resp2 = atsvc.hNetrJobGetInfo(dce, NULL, resp['pJobId']) resp2.dump() resp = atsvc.hNetrJobDel(dce, NULL, resp['pJobId'], resp['pJobId']) resp.dump()
def test_hNetrJobAdd_hNetrJobEnum_hNetrJobDel(self): dce, rpc_transport = self.connect() atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() except atsvc.DCERPCSessionError as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return resp = atsvc.hNetrJobEnum(dce) resp.dump() for job in resp['pEnumContainer']['Buffer']: resp = atsvc.hNetrJobDel(dce, NULL, job['JobId'], job['JobId']) resp.dump()
def test_SchRpcEnumTasks(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() jobId = resp['pJobId'] request = tsch.SchRpcEnumTasks() request['path'] = '\\\x00' request['flags'] = tsch.TASK_ENUM_HIDDEN request['startIndex'] = 0 request['cRequested'] = 10 resp = dce.request(request) resp.dump() resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_SchRpcRun(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcRun() request['path'] = '\\At%d\x00' % jobId #request['cArgs'] = 2 #arg0 = LPWSTR() #arg0['Data'] = 'arg0\x00' #arg1 = LPWSTR() #arg1['Data'] = 'arg1\x00' #request['pArgs'].append(arg0) #request['pArgs'].append(arg1) request['cArgs'] = 0 request['pArgs'] = NULL request['flags'] = tsch.TASK_RUN_AS_SELF request['sessionId'] = 0 request['user'] = NULL try: resp = dce.request(request) resp.dump() except Exception as e: print(e) pass resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hSchRpcStopInstance(self): dce, rpc_transport = self.connect() dce_2, rpc_transport_2 = self.connect( iface_uuid=atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C vssadmin > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce_2, NULL, atInfo) resp.dump() except atsvc.DCERPCSessionError as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] try: resp = tsch.hSchRpcRun(dce, '\\At%d\x00' % jobId, ('arg0', 'arg1')) resp.dump() except tsch.DCERPCSessionError as e: print(e) pass try: resp = tsch.hSchRpcStopInstance(dce, resp['pGuid']) resp.dump() except tsch.DCERPCSessionError as e: if str(e).find('SCHED_E_TASK_NOT_RUNNING') <= 0: raise pass try: resp = atsvc.hNetrJobDel(dce_2, NULL, jobId, jobId) resp.dump() except atsvc.DCERPCSessionError as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return
def test_hSchRpcStopInstance(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C vssadmin > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] try: resp = tsch.hSchRpcRun(dce, '\\At%d\x00' % jobId, ('arg0','arg1')) resp.dump() except Exception as e: print e pass try: resp = tsch.hSchRpcStopInstance(dce, resp['pGuid']) resp.dump() except Exception as e: if str(e).find('SCHED_E_TASK_NOT_RUNNING') <= 0: raise pass try: resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return
def test_SchRpcRun(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcRun() request['path'] = '\\At%d\x00' % jobId #request['cArgs'] = 2 #arg0 = LPWSTR() #arg0['Data'] = 'arg0\x00' #arg1 = LPWSTR() #arg1['Data'] = 'arg1\x00' #request['pArgs'].append(arg0) #request['pArgs'].append(arg1) request['cArgs'] = 0 request['pArgs'] = NULL request['flags'] = tsch.TASK_RUN_AS_SELF request['sessionId'] = 0 request['user'] = NULL try: resp = dce.request(request) resp.dump() except Exception as e: print e pass resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_SchRpcStopInstance(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C vssadmin > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] try: resp = tsch.hSchRpcRun(dce, '\\At%d\x00' % jobId, ('arg0', 'arg1')) resp.dump() except Exception as e: print(e) pass request = tsch.SchRpcStopInstance() request['guid'] = resp['pGuid'] request['flags'] = 0 try: resp = dce.request(request) resp.dump() except Exception as e: if str(e).find('SCHED_E_TASK_NOT_RUNNING') <= 0: raise pass resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hNetrJobAdd_hNetrJobGetInfo_hNetrJobDel(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() resp2 = atsvc.hNetrJobGetInfo(dce, NULL, resp['pJobId']) resp2.dump() resp = atsvc.hNetrJobDel(dce, NULL, resp['pJobId'], resp['pJobId']) resp.dump()
def test_hNetrJobAdd_hNetrJobEnum_hNetrJobDel(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() resp = atsvc.hNetrJobEnum(dce) resp.dump() for job in resp['pEnumContainer']['Buffer']: resp = atsvc.hNetrJobDel(dce, NULL, job['JobId'], job['JobId'] ) resp.dump()
def test_hNetrJobAdd_hNetrJobGetInfo_hNetrJobDel(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() resp2 = atsvc.hNetrJobGetInfo(dce, NULL, resp['pJobId']) resp2.dump() resp = atsvc.hNetrJobDel(dce, NULL, resp['pJobId'], resp['pJobId']) resp.dump()
def test_hNetrJobAdd_hNetrJobEnum_hNetrJobDel(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce, NULL, atInfo) resp.dump() resp = atsvc.hNetrJobEnum(dce) resp.dump() for job in resp['pEnumContainer']['Buffer']: resp = atsvc.hNetrJobDel(dce, NULL, job['JobId'], job['JobId']) resp.dump()
def test_hSchRpcEnumTasks(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() jobId = resp['pJobId'] resp = tsch.hSchRpcEnumTasks(dce, '\\') resp.dump() resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_SchRpcRun(self): dce, rpc_transport = self.connect() dce_2, rpc_transport_2 = self.connect( iface_uuid=atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce_2, NULL, atInfo) resp.dump() except atsvc.DCERPCSessionError as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcRun() request['path'] = '\\At%d\x00' % jobId request['cArgs'] = 0 request['pArgs'] = NULL request['flags'] = tsch.TASK_RUN_AS_SELF request['sessionId'] = 0 request['user'] = NULL try: resp = dce.request(request) resp.dump() except tsch.DCERPCSessionError as e: print(e) pass resp = atsvc.hNetrJobDel(dce_2, NULL, jobId, jobId) resp.dump()
def test_SchRpcRetrieveTask(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcRetrieveTask() request['path'] = '\\At%d.job\x00' % jobId request['lpcwszLanguagesBuffer'] = '\x00' request['pulNumLanguages'] = 0 try: resp = dce.request(request) resp.dump() except Exception as e: if e.get_error_code() != 0x80070002: raise resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_SchRpcStop(self): dce, rpc_transport = self.connect() dce_2, rpc_transport_2 = self.connect( iface_uuid=atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C vssadmin > %%SYSTEMROOT%%\\Temp\\ANI 2>&1\x00' try: resp = atsvc.hNetrJobAdd(dce_2, NULL, atInfo) resp.dump() except atsvc.DCERPCSessionError as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcStop() request['path'] = '\\At%d\x00' % jobId request['flags'] = 0 try: resp = dce.request(request) resp.dump() except tsch.DCERPCSessionError as e: # It is actually S_FALSE if str(e).find('ERROR_INVALID_FUNCTION') <= 0: raise pass resp = atsvc.hNetrJobDel(dce_2, NULL, jobId, jobId) resp.dump()
def test_SchRpcRetrieveTask(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo['Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' try: resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() except Exception as e: if e.get_error_code() != ERROR_NOT_SUPPORTED: raise else: # OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcRetrieveTask() request['path'] = '\\At%d.job\x00' % jobId request['lpcwszLanguagesBuffer'] = '\x00' request['pulNumLanguages'] = 0 try: resp = dce.request(request) resp.dump() except Exception as e: if e.get_error_code() != 0x80070002: raise resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
def test_hSchRpcEnumTasks(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) dce2, rpctransport = self.connect(self.stringBindingAtSvc, atsvc.MSRPC_UUID_ATSVC) atInfo = AT_INFO() atInfo['JobTime'] = NULL atInfo['DaysOfMonth'] = 0 atInfo['DaysOfWeek'] = 0 atInfo['Flags'] = 0 atInfo[ 'Command'] = '%%COMSPEC%% /C dir > %%SYSTEMROOT%%\\Temp\\BTO\x00' resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() jobId = resp['pJobId'] resp = tsch.hSchRpcEnumTasks(dce, '\\') resp.dump() resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump()
# OpNum not supported, aborting test return jobId = resp['pJobId'] request = tsch.SchRpcRetrieveTask() request['path'] = '\\At%d.job\x00' % jobId request['lpcwszLanguagesBuffer'] = '\x00' request['pulNumLanguages'] = 0 try: resp = dce.request(request) resp.dump() except Exception, e: if e.get_error_code() != 0x80070002: raise resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump() def test_hSchRpcRetrieveTask(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) try: resp = tsch.hSchRpcRetrieveTask(dce, '\\Microsoft\\Windows\\Defrag\\ScheduledDefrag\x00') resp.dump() except Exception, e: print e pass def test_SchRpcCreateFolder_SchRpcEnumFolders_SchRpcDelete(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS)
resp = atsvc.hNetrJobAdd(dce2, NULL, atInfo) resp.dump() jobId = resp['pJobId'] request = tsch.SchRpcRetrieveTask() request['path'] = '\\At%d.job\x00' % jobId request['lpcwszLanguagesBuffer'] = '\x00' request['pulNumLanguages'] = 0 try: resp = dce.request(request) resp.dump() except Exception, e: if e.get_error_code() != 0x80070002: raise resp = atsvc.hNetrJobDel(dce2, NULL, jobId, jobId) resp.dump() def test_hSchRpcRetrieveTask(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS) try: resp = tsch.hSchRpcRetrieveTask(dce, '\\Microsoft\\Windows\\Defrag\\ScheduledDefrag\x00') resp.dump() except Exception, e: print e pass def test_SchRpcCreateFolder_SchRpcEnumFolders_SchRpcDelete(self): dce, rpctransport = self.connect(self.stringBindingAtSvc, tsch.MSRPC_UUID_TSCHS)