shadowbrokers-exploits/windows/Resources/Ops/PyScripts/lib/ops/system/scheduler.py
2017-04-14 11:45:07 +02:00

48 lines
No EOL
2.6 KiB
Python

import dsz
import dsz.cmd
import dsz.version
import dsz.script
import ops
import ops.cmd
import ops.db
import ops.project
import ops.system.systemversion
from datetime import timedelta, datetime
SCHEDULER_TAG_BASE = 'OPS_SCHEDULER'
MAX_SCHEDULER_CACHE_SIZE = 3
def get_all_schedulers_local(maxage=timedelta(seconds=0), targetID=None, use_volatile=False):
gui_command = ops.cmd.getDszCommand('scheduler', query='gui')
at_command = ops.cmd.getDszCommand('scheduler', query='at')
srv_command = ops.cmd.getDszCommand('scheduler', query='service')
sysver = ops.system.systemversion.get_os_version(maxage=timedelta(seconds=86400))
srv_tagname = ('%s_SERVICE' % SCHEDULER_TAG_BASE)
gui_tagname = ('%s_GUI' % SCHEDULER_TAG_BASE)
at_tagname = ('%s_AT' % SCHEDULER_TAG_BASE)
retval = {}
try:
retval['gui'] = ops.project.generic_cache_get(gui_command, cache_tag=gui_tagname, cache_size=MAX_SCHEDULER_CACHE_SIZE, maxage=maxage, targetID=targetID, use_volatile=use_volatile)
except:
ops.warn('Unable to get "gui" scheduler data')
if ((sysver.versioninfo.major <= 6) and (sysver.versioninfo.minor < 2)):
try:
retval['at'] = ops.project.generic_cache_get(at_command, cache_tag=at_tagname, cache_size=MAX_SCHEDULER_CACHE_SIZE, maxage=maxage, targetID=targetID, use_volatile=use_volatile)
except:
ops.warn('Unable to get "at" scheduler data')
if (sysver.versioninfo.major > 5):
try:
retval['service'] = ops.project.generic_cache_get(srv_command, cache_tag=srv_tagname, cache_size=MAX_SCHEDULER_CACHE_SIZE, maxage=maxage, targetID=targetID, use_volatile=use_volatile)
except:
ops.warn('Unable to get "service" scheduler data')
return retval
def get_scheduler_list_local(querygroup, maxage=timedelta(seconds=0), targetID=None, use_volatile=False):
command = ops.cmd.getDszCommand('scheduler', query=querygroup)
tagname = ('%s_%s' % (SCHEDULER_TAG_BASE, querygroup.upper()))
return ops.project.generic_cache_get(command, cache_tag=tagname, cache_size=MAX_SCHEDULER_CACHE_SIZE, maxage=maxage, targetID=targetID, use_volatile=use_volatile)
def get_scheduler_list_remote(querygroup, targetIP, maxage=timedelta(seconds=0), targetID=None, use_volatile=False):
command = ops.cmd.getDszCommand('scheduler', query=query)
tagname = ('%s_%s' % (SCHEDULER_TAG_BASE, query.upper()))
return ops.project.generic_cache_get(command, cache_tag=SERVICES_TAG, cache_size=MAX_SCHEDULER_CACHE_SIZE, maxage=maxage, targetID=targetID, use_volatile=use_volatile)