def test_RControlServiceCall(self): dce, rpctransport, scHandle = self.connect() lpServiceName = 'CryptSvc\x00' desiredAccess = scmr.SERVICE_START | scmr.SERVICE_STOP | scmr.SERVICE_CHANGE_CONFIG | scmr.SERVICE_QUERY_CONFIG | scmr.SERVICE_QUERY_STATUS | scmr.SERVICE_ENUMERATE_DEPENDENTS resp = scmr.hROpenServiceW(dce, scHandle, lpServiceName, desiredAccess ) resp.dump() serviceHandle = resp['lpServiceHandle'] try: req = scmr.RControlService() req['hService'] = serviceHandle req['dwControl'] = scmr.SERVICE_CONTROL_STOP dce.request(req) except Exception as e: if str(e).find('ERROR_DEPENDENT_SERVICES_RUNNING') < 0 and str(e).find('ERROR_SERVICE_NOT_ACTIVE') < 0: raise pass scmr.hRCloseServiceHandle(dce, serviceHandle) import time time.sleep(1) resp = scmr.hROpenServiceW(dce, scHandle, lpServiceName, desiredAccess ) resp.dump() serviceHandle = resp['lpServiceHandle'] try: resp = scmr.hRStartServiceW(dce, serviceHandle, 0, NULL ) resp.dump() except Exception as e: if str(e).find('ERROR_SERVICE_ALREADY_RUNNING') < 0: raise return
def test_RControlServiceCall(self): dce, rpctransport, scHandle = self.connect() lpServiceName = 'CryptSvc\x00' desiredAccess = scmr.SERVICE_START | scmr.SERVICE_STOP | scmr.SERVICE_CHANGE_CONFIG | scmr.SERVICE_QUERY_CONFIG | scmr.SERVICE_QUERY_STATUS | scmr.SERVICE_ENUMERATE_DEPENDENTS resp = scmr.hROpenServiceW(dce, scHandle, lpServiceName, desiredAccess) #resp.dump() serviceHandle = resp['lpServiceHandle'] try: req = scmr.RControlService() req['hService'] = serviceHandle req['dwControl'] = scmr.SERVICE_CONTROL_STOP resp = dce.request(req) except Exception, e: if str(e).find('ERROR_DEPENDENT_SERVICES_RUNNING') < 0: raise pass