def test_query(self): dce, rpctransport, scHandle = self.connect() ############################ # Query Service Status / Enum Dependent lpServiceName = 'PlugPlay\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'] scmr.hRQueryServiceStatus(dce, serviceHandle) cbBufSize = 0 try: resp = scmr.hREnumDependentServicesW(dce, serviceHandle, scmr.SERVICE_STATE_ALL,cbBufSize ) resp.dump() except scmr.DCERPCSessionError as e: if str(e).find('ERROR_MORE_DATA') <= 0: raise else: resp = e.get_packet() resp.dump() cbBufSize = resp['pcbBytesNeeded'] resp = scmr.hREnumDependentServicesW(dce, serviceHandle, scmr.SERVICE_STATE_ALL,cbBufSize ) resp.dump() scmr.hRCloseServiceHandle(dce, serviceHandle) scmr.hRCloseServiceHandle(dce, scHandle)
cbBufSize = 0 try: resp = scmr.hREnumDependentServicesW(dce, serviceHandle, scmr.SERVICE_STATE_ALL, cbBufSize) #resp.dump() except scmr.DCERPCSessionError, e: if str(e).find('ERROR_MORE_DATA') <= 0: raise else: resp = e.get_packet() #resp.dump() cbBufSize = resp['pcbBytesNeeded'] resp = scmr.hREnumDependentServicesW(dce, serviceHandle, scmr.SERVICE_STATE_ALL, cbBufSize) #resp.dump() resp = scmr.hRCloseServiceHandle(dce, serviceHandle) resp = scmr.hRCloseServiceHandle(dce, scHandle) def test_lock_unlock(self): dce, rpctransport, scHandle = self.connect() resp = scmr.hRLockServiceDatabase(dce, scHandle) lockHandle = resp['lpLock'] resp = scmr.hRUnlockServiceDatabase(dce, lockHandle) resp = scmr.hRCloseServiceHandle(dce, scHandle) def test_query_set_object_security(self): dce, rpctransport, scHandle = self.connect()
resp = scmr.hRQueryServiceStatus(dce, serviceHandle) cbBufSize = 0 try: resp = scmr.hREnumDependentServicesW(dce, serviceHandle, scmr.SERVICE_STATE_ALL,cbBufSize ) resp.dump() except scmr.DCERPCSessionError, e: if str(e).find('ERROR_MORE_DATA') <= 0: raise else: resp = e.get_packet() resp.dump() cbBufSize = resp['pcbBytesNeeded'] resp = scmr.hREnumDependentServicesW(dce, serviceHandle, scmr.SERVICE_STATE_ALL,cbBufSize ) resp.dump() resp = scmr.hRCloseServiceHandle(dce, serviceHandle) resp = scmr.hRCloseServiceHandle(dce, scHandle) def test_lock_unlock(self): dce, rpctransport, scHandle = self.connect() resp = scmr.hRLockServiceDatabase(dce, scHandle) lockHandle = resp['lpLock'] resp = scmr.hRUnlockServiceDatabase(dce, lockHandle) resp = scmr.hRCloseServiceHandle(dce, scHandle) def test_query_set_object_security(self): dce, rpctransport, scHandle = self.connect()