mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-07-02 14:27:31 +00:00
53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
# 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).items()
|
|
if name.startswith("BG_JOB_STATE_")
|
|
]
|
|
)
|
|
|
|
job_types = dict(
|
|
[
|
|
(val, (name[12:]))
|
|
for name, val in vars(bits).items()
|
|
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()
|