show_all_jobs.py
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Dump lots of info about BITS jobs.
from win32com.bits import bits
import pythoncom
states = dict([(val, (name[13:]))
for name, val in vars(bits).iteritems()
if name.startswith('BG_JOB_STATE_')])
job_types = dict([(val, (name[12:]))
for name, val in vars(bits).iteritems()
if name.startswith('BG_JOB_TYPE_')])
bcm = pythoncom.CoCreateInstance(bits.CLSID_BackgroundCopyManager,
None,
pythoncom.CLSCTX_LOCAL_SERVER,
bits.IID_IBackgroundCopyManager)
try:
enum = bcm.EnumJobs(bits.BG_JOB_ENUM_ALL_USERS)
except pythoncom.error:
print "Failed to get jobs for all users - trying for current user"
enum = bcm.EnumJobs(0)
for job in enum:
print "Job:", job.GetDisplayName()
print "Description:", job.GetDescription()
print "Id:", job.GetId()
print "State:", states.get(job.GetState())
print "Type:", job_types.get(job.GetType())
print "Owner:", job.GetOwner()
print "Errors:", job.GetErrorCount()
print "Created/Modified/Finished times:", [str(t) for t in job.GetTimes()]
bytes_tot, bytes_xf, files_tot, files_xf = job.GetProgress()
print "Bytes: %d complete of %d total" % (bytes_xf, bytes_tot)
print "Files: %d complete of %d total" % (files_xf, files_tot)
for f in job.EnumFiles():
bytes, total, done = f.GetProgress()
print " Remote:", f.GetRemoteName()
print " Local:", f.GetLocalName()
print " Progress: %d of %d bytes - completed=%s)" % (bytes, total, done)
print
print