Windows Bluetooth not working: diagnose and fix it
A step-by-step command-line guide to find out why Bluetooth is not working on Windows and get it back — from device status to services to drivers.
What this covers
When Bluetooth stops working on Windows, the cause is usually one of three things: the service stopped, the adapter was lost by the system, or the driver is broken. This guide walks through all three in the order they are most likely, using only PowerShell and built-in command-line tools.
Symptom
Check the state of your Bluetooth hardware
Before changing anything, see what Bluetooth adapters and paired devices Windows can detect and whether they report an error status. Run the PowerShell listing and look at the Status column: 'OK' means the device is healthy, 'Error' or a missing adapter points to a driver or hardware problem. This tells you whether you are dealing with a disabled adapter, a driver issue, or a dead device.
Show paired Bluetooth adapters and accessories and their status via Get-PnpDevice.
$ Get-PnpDevice -Class Bluetooth | Sort-Object Status | Format-Table Status, FriendlyName -AutoSizeRestart the Bluetooth support service
A hung or stuck Bluetooth service is one of the most common causes of devices not pairing or not appearing. Restart the relevant service with Restart-Service, then check its status with Get-Service. If the service was stopped or stuck, restarting it often brings Bluetooth back immediately — pair or connect a device right after to see if it responds.
Stop, start, and restart Windows services in PowerShell — the forgotten one-liner alternative to services.msc or net stop/start.
$ Restart-Service -Name wuauserv -Force
Get-Service -Name wuauserv | Select-Object Name, Status, StartType▾ Undo
$ Start-Service -Name wuauservMake sure the service starts automatically at boot
If the Bluetooth service was stopped, check why: it may be set to Disabled or Manual so it never comes back after a reboot. Use Set-Service to set the Bluetooth support service's startup type to Automatic so it survives restarts. This step is optional but prevents the same failure from recurring after every reboot.
Use Set-Service to make a service start at boot, start on demand, or never start at all.
$ Set-Service -Name spooler -StartupType Disabled :: also valid: Manual, Automatic, AutomaticDelayedStart▾ Undo
$ Set-Service -Name spooler -StartupType AutomaticRescan for hardware changes
If the adapter itself is missing or shows an error, Windows may simply have lost track of it. Run a hardware rescan with pnputil so Windows re-detects the Bluetooth adapter as if you had unplugged and replugged it. After the scan, re-check the device list — a previously missing adapter that reappears means Windows found the hardware again.
Tell Windows to re-detect newly plugged hardware from the command line — the CLI equivalent of 'Scan for hardware changes' in Device Manager.
$ pnputil /scan-devicesVerify the Bluetooth driver package is installed
As a final check, enumerate the third-party driver packages in the driver store and confirm a Bluetooth driver package is present and dated sensibly. A missing or ancient driver package after the fixes above suggests the driver itself needs attention (e.g., reinstalling from the PC maker). If the adapter shows Status OK and a current driver package is listed, Bluetooth is working again.
List third-party OEM driver packages with versions and dates before pruning the driver store.
$ pnputil /enum-driversHow to confirm it worked
Your Bluetooth adapter appears with Status OK in the device list, the support service is Running and set to start automatically, and a current Bluetooth driver package is present in the driver store.
Undo everything
Every command above can be reverted. Run these in order to undo all of it.
$ Set-Service -Name spooler -StartupType Automatic
Start-Service -Name wuauservReview before running — some steps may not be independent.
Sources
- Get-PnpDeviceEvidence: Lists PnP devices; can be filtered by class (e.g. Bluetooth) and present status.
- Get-NetAdapterEvidence: Returns adapter objects with Status, LinkSpeed and MacAddress properties.
- Restart-Service - SS64Evidence: Shows Restart-Service usage and pipeline patterns with Get-Service.
- Restart-ServiceEvidence: Documents Restart-Service including -Force for dependent services.
- PnPUtil - Plug and Play UtilityEvidence: Documents pnputil /scan-devices to trigger a rescan for plug and play device changes.
- Set-ServiceEvidence: Documents the -StartupType parameter with values Automatic, Manual, Disabled (and AutomaticDelayedStart) for controlling when a service starts.
- Set-Service — Configure a Windows serviceEvidence: Syntax shows Set-Service -Name <string> -StartupType {Automatic | Manual | Disabled} for changing a service's start mode.
- pnputil command syntax | Microsoft LearnEvidence: pnputil /scan-devices scans the computer for any device changes.
Last verified: 2026-09-21
Related guides
A Windows service that refuses to start usually has a reason hiding in the event log. Check its status and startup type, read the error, then reset it to Automatic and restart it — all from the command line.
Control what runs when Windows starts: open the Startup folder, change service startup types, and handle Fast Startup quirks.
Diagnose which processes and services are consuming your RAM on Windows, and verify the fix from the command line.