Tools Links Login

Configure BITS Logging with GPO

Troubleshooting the Background Intelligent Transfer Service, or BITS, can be a bit of a pain.  BITS is one of those quiet background services that Windows relies on for a lot of things - like Windows Update, Configuration Manager, and even some custom scripts. When something goes wrong, good logging can save you hours of guesswork.

Luckily, you can configure BITS logging across your entire domain using Group Policy. It’s easy once you know where to look. Let’s walk through the process.

What is BITS Logging?

Before diving in, let’s talk about what BITS logging actually does. BITS logs details about file transfers handled by the service. This includes the source and destination URLs, transfer results, errors, and other job information. These logs can be essential for diagnosing issues like failed downloads or slow background transfers.

When enabled, the logs are stored in the Event Viewer under Applications and Services Logs → Microsoft → Windows → Bits-Client. You can also configure some aspects of logging behavior through policy settings.

Setting Up BITS Logging with Group Policy

We’ll use the Group Policy Management Console (GPMC) to deploy settings to all your domain computers.

  1. On a domain controller or administrative workstation with RSAT installed, open the Group Policy Management Console (GPMC). You can do this by pressing Windows + R, typing gpmc.msc, and hitting Enter.
  2. Decide whether you want to edit an existing Group Policy Object or create a new one specifically for BITS settings. If you’re managing a large environment, it’s often best to create a dedicated GPO so you can easily enable or disable it later.  To create a new GPO, right-click your domain or OU, select Create a GPO in this domain, and Link it here, and give it a name like BITS Logging Configuration.
  3. Right-click the new GPO and choose Edit. This opens the Group Policy Management Editor.
  4. Navigate to the following location in the new GPO:

    Computer Configuration → Administrative Templates → Network → Background Intelligent Transfer Service (BITS)

    You’ll see a list of settings that control how BITS behaves, including throttling, job limits, and logging options.

  5. Look for a policy called Enable Logging (or Enable job event logging depending on your Windows version). Double-click it to open the properties window.
    Select Enabled, then click OK to save.

    This policy ensures that all BITS job events are logged in the Event Viewer. Once it’s enabled and applied, you can view logs under:
    Event Viewer → Applications and Services Logs → Microsoft → Windows → Bits-Client → Operational

  6. On a client computer, you can force the new settings to apply right away by running:

    gpupdate /force

    Then open the Event Viewer and verify that the Bits-Client Operational log is enabled and capturing events.

Testing BITS Logging with PowerShell

Once you’ve got logging enabled, it’s smart to test it to make sure everything is working as expected. You can do that easily with PowerShell’s built-in BITS cmdlets.

Open an elevated PowerShell session and run this example:

# Create a simple BITS job to download a test file
Start-BitsTransfer -Source "https://speed.hetzner.de/100MB.bin" -Destination "C:\Temp\100MB.bin"

# Check the status of recent BITS jobs
Get-BitsTransfer -AllUsers

# Verify that BITS events are being logged
Get-WinEvent -LogName "Microsoft-Windows-Bits-Client/Operational" -MaxEvents 10 | Format-Table TimeCreated, Id, Message -AutoSize

The Start-BitsTransfer command starts a background transfer, Get-BitsTransfer shows the job status, and Get-WinEvent lets you confirm that event entries are appearing in the log. You should see entries showing the job starting, transferring, and completing successfully.

If you don’t see anything, double-check that the policy has applied (gpresult /h gp.html can help) and that the Bits-Client log is enabled in Event Viewer.

Troubleshooting BITS Logging Issues

If your Event Viewer still isn’t showing any BITS events, here are a few things to check before tearing your hair out.

First, make sure the BITS service is actually running. You can check this with the Services console or by running Get-Service BITS in PowerShell. If it’s stopped or disabled, set it to Automatic (Delayed Start) and start it.

Next, verify that the Bits-Client log is turned on. In Event Viewer, expand Applications and Services Logs → Microsoft → Windows → Bits-Client, right-click Operational, and select Enable Log if it isn’t already checked.

If you’re testing right after enabling the GPO, remember that Group Policy refresh can take time depending on your domain setup. Running gpupdate /force helps, but a reboot ensures that the Computer Configuration policies are fully applied.

Finally, check permissions. If your test system is missing registry keys or policies are blocked by conflicting GPOs, use Resultant Set of Policy (RSOP) or gpresult to confirm which policies actually took effect.

Once everything’s in place, you should see new events popping up in the Bits-Client Operational log whenever a background transfer runs.

Common BITS Event IDs

When you start seeing events, it helps to know what they mean. Here are a few of the most common event IDs you’ll encounter in the Bits-Client/Operational log:

Event ID Description Meaning
1 Job Started A BITS transfer has begun.
3 Job Completed The job finished successfully.
4 Job Canceled The transfer was canceled manually or by policy.
5 Job Error A transient error occurred (BITS will retry).
7 Job Transient Error Temporary network or server issue; BITS is retrying.
8 Job Fatal Error The job failed permanently and won’t retry.
9 Job Modified Job settings (like priority or owner) were changed.
59 File Transferred Indicates successful transfer of an individual file.

These events can help you quickly identify where a job is failing. For example, if you see a lot of Event ID 7s, that usually points to intermittent network connectivity or proxy issues, while Event ID 8 typically means the source file can’t be reached.


BITS is a critical component of Windows that often flies under the radar until something goes wrong. By enabling BITS logging through Group Policy, you can make sure every system in your domain captures the information you need to troubleshoot efficiently. Once you have logs coming in, they’ll quickly point you toward the root cause of most transfer-related issues.

It’s one of those small configurations that can make a big difference when you’re under pressure to get things working again.

About this post

Posted: 2025-11-07
By: dwirch
Viewed: 15 times

Categories

Tip

Tutorials

Active Directory

Powershell

Group Policy

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.