Aktionen

PowerShell Batteriestand von Bluetooth oder PnP Geräten abfragen

Aus znilwiki

Changelog:

  • 17.10.2023 erste Version

Vorwort

Eigentlich wollte ich irgendwie den aktuellen Batteriestand meiner Logitech-Maus MX Master 3 abfragen. Das ist mir bei der Erstellung des Artikels noch nicht gelungen. Aber ich hatte ein Fundstück im Internet was mir speichern wollte.


PnP Geräte nach Batterie scannen

Das folgende Skript stammt von hier: https://stackoverflow.com/questions/71736070/how-to-get-bluetooth-device-battery-percentage-using-powershell-on-windows
Es spuckt gleich den fertigen Befehl aus mit dem man die Stand gezielt abfragen kann:
Ich habe es nur auf den '*' geändert und den Gerätenamen in "..." gepackt:

Get-PnpDevice -FriendlyName "*" | ForEach-Object {
    $local:test = $_ |
    Get-PnpDeviceProperty -KeyName '{104EA319-6EE2-4701-BD47-8DDBF425BBE5} 2' |
        Where Type -ne Empty;
    if ($test) {
        "To query battery for `"$($_.FriendlyName)`", run the following:"
        "    Get-PnpDeviceProperty -InstanceId '$($test.InstanceId)' -KeyName '{104EA319-6EE2-4701-BD47-8DDBF425BBE5} 2' | % Data"
        ""
        "The result will look like this:";
        Get-PnpDeviceProperty -InstanceId $($test.InstanceId) -KeyName '{104EA319-6EE2-4701-BD47-8DDBF425BBE5} 2' | % Data
    }
}

Das Ausführen kann eine Weile dauern, aber das macht man ja nicht so oft.
Beispielausgabe - bei mir wurden meine In-Ear-Kopfhörer und mein Handy gefunden:

To query battery for "Bose QC Ultra Earbuds Hands-Free AG", run the following:
    Get-PnpDeviceProperty -InstanceId 'BTHENUM\{0000111E-0000-1000-8000-00805F9B34FB}_VID&0001009E_PID&4072\A&24C9D853&0&ACBF71B71C58_C00000000' -KeyName '{104EA319-6EE2-4701-BD47-8DDBF425BBE5} 2' | % Data

The result will look like this:
60
To query battery for "BLinzA9 Hands-Free HF", run the following:
    Get-PnpDeviceProperty -InstanceId 'BTHENUM\{0000111F-0000-1000-8000-00805F9B34FB}_VID&00010075_PID&0100\A&24C9D853&0&00B5D006B76E_C00000000' -KeyName '{104EA319-6EE2-4701-BD47-8DDBF425BBE5} 2' | % Data

The result will look like this:
80

Der fertige Befehl steht da nun und der Wert der ausgespuckt würde.


Kommentare

Loading comments...