New
#21
There's a similar long-running discussion in the Microsoft communities that I recently came across: https://answers.microsoft.com/en-us/...5-93e96c47f7ff
Working from the signature provided by LFLFM, I came uip the following PowerShell code, which removes devices that have paired incorrectly so the can be re-paired. Just copy & paste into PowerShell -- no downloads required!
KeithCode:$Source = @" [DllImport("BluetoothAPIs.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.U4)] static extern UInt32 BluetoothRemoveDevice(IntPtr pAddress); public static UInt32 Unpair(UInt64 BTAddress) { GCHandle pinnedAddr = GCHandle.Alloc(BTAddress, GCHandleType.Pinned); IntPtr pAddress = pinnedAddr.AddrOfPinnedObject(); UInt32 result = BluetoothRemoveDevice(pAddress); pinnedAddr.Free(); return result; } "@ Function Get-BTDevice { Get-PnpDevice -class Bluetooth | ?{$_.HardwareID -match 'DEV_'} | select Status, Class, FriendlyName, HardwareID, # Extract device address from HardwareID @{N='Address';E={[uInt64]('0x{0}' -f $_.HardwareID[0].Substring(12))}} } ################## Execution Begins Here ################ $BTR = Add-Type -MemberDefinition $Source -Name "BTRemover" -Namespace "BStuff" -PassThru $BTDevices = @(Get-BTDevice) # Force array if null or single item Do { If ($BTDevices.Count) { "`n******** Bluetooth Devices ********`n" | Write-Host For ($i=0; $i -lt $BTDevices.Count; $i++) { ('{0,5} - {1}' -f ($i+1), $BTDevices[$i].FriendlyName) | Write-Host } $selected = Read-Host "`nSelect a device to remove (0 to Exit)" If ([int]$selected -in 1..$BTDevices.Count) { 'Removing device: {0}' -f $BTDevices[$Selected-1].FriendlyName | Write-Host $Result = $BTR::Unpair($BTDevices[$Selected-1].Address) If (!$Result) {"Device removed successfully." | Write-Host} Else {"Sorry, an error occured." | Write-Host} } } Else { "`n********* No devices foundd ********" | Write-Host } } While (($BTDevices = @(Get-BTDevice)) -and [int]$selected)
Created an account here just to post a THANK YOU for this solution! It did help someone else!
I had a pair of Bose QC 35 Bluetooth headphones that stopped functioning with my Dell XPS 9570 out of the blue one day. I could pair the device, but it kept showing up as an "Other Device" rather than an "Audio" device, so I couldn't actually use the headphones anymore.
Tried numerous times to Remove the Bluetooth device entries from Windows (using Bluetooth Settings, Device Manager, showing Hidden Devices, as well as removing/reinstalling the Bluetooth drivers, upgrading headphone firmware, installing different Dell BIOS versions, etc.)
I've literally spent hours on Chat support with Dell remote customer service agents who were unable to resolve the issue. Because I have Premium Support, they even ended up sending out a technician to replace my entire motherboard in an attempt to resolve the issue. When that didn't work, I was convinced it was still software-related and began Googling threads on removing Bluetooth devices in a more thorough way, which led me to this thread and post.
I download and used the Bluetooth Command Line Tools as noted above with the "btpair -u" command, and immediately afterwards was able to Pair my Bose QC 35 headphones normally, with them showing up as an Audio device as expected.
I too am crying tears of joy, thank you for this tip! I hope others experiencing this issue will find it. I've asked Dell Tech Support to add this to their solution database in case other users ever have a similar problem.
Cheers!
Xzion - huge thank you!
Like others I registered to say thanks. More and more of my devices were becoming invisible in the bluetooth pairing window and this fixed it.
I literally registered just to say thank you. I tried both solutions of Keith (the Power-Shell script) as well as the bluetooth command line stuff. Both solutions work perfectly. Could someone at Microsoft fix that sh*t PLEASE? Why do we have to copy paste code to make stuff work that should have been working for years now.