Tato stránka popisuje, jak na Windows 11 automaticky restartovat Voicemeeter Potato po připojení konkrétního Bluetooth zařízení.
Aktualizace (květen 2026): Původní postup z dubna 2026 přestal fungovat po Windows Update. Při ladění se ukázaly dvě příčiny — Windows Update tiše deaktivuje Bluetooth event log, a novější verze Voicemeeteru ignorují parametr
-rzpůsobem, který původní skript předpokládal. Postup byl upraven tak, aby byl odolnější vůči oběma problémům. Změny jsou popsány v každém dotčeném kroku.
Předpoklady
- Windows 11 s povoleným Bluetooth
- Voicemeeter Potato nainstalovaný v
C:\Program Files (x86)\VB\Voicemeeter\ - Povolený log
Microsoft-Windows-Bluetooth-Policy/Operationalv Event Vieweru
1. Povolení Bluetooth Event Logu
Ve výchozím stavu je log vypnutý. Spusť PowerShell jako Administrator:
wevtutil sl Microsoft-Windows-Bluetooth-Policy/Operational /e:true
Ověření:
wevtutil gl "Microsoft-Windows-Bluetooth-Policy/Operational"
V výstupu hledej enabled: true.
1a. Zabránění opětovného vypnutí logu po Windows Update (nový krok)
Windows Update tento log po aktualizaci tiše deaktivuje — to byl hlavní důvod, proč původní postup přestal fungovat. Aby se to neopakovalo, vytvoř startup úlohu, která log při každém startu systému znovu zapne:
$action = New-ScheduledTaskAction -Execute "wevtutil.exe" -Argument 'sl "Microsoft-Windows-Bluetooth-Policy/Operational" /e:true'
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 1)
Register-ScheduledTask -TaskName "Enable-BT-Log" -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Description "Zapne Bluetooth event log po startu - potrebne pro automaticky restart Voicemeeteru"
Úloha se spustí jako SYSTEM s administrátorskými právy, takže nevyžaduje přihlášeného uživatele.
2. Zjištění adresy Bluetooth zařízení
Připoj cílové BT zařízení a spusť:
Get-WinEvent -LogName "Microsoft-Windows-Bluetooth-Policy/Operational" -MaxEvents 10 |
Format-Table TimeCreated, Id, Message -Wrap
Hledej řádek s Event ID 9 (úspěšné připojení) a poznamenej si adresu zařízení (např. A00CE238FE34).
3. Vytvoření spouštěcího skriptu
Vytvoř soubor C:\Scripts\voicemeeter-bt.bata ihned nastav správná oprávnění na složku — Task Scheduler skript spouští automaticky, takže zápis do C:\Scripts\ by měl mít jen administrátor:
@echo off
timeout /t 3 /nobreak >nul
taskkill /F /IM voicemeeter8x64.exe /T 2>nul
taskkill /F /IM VoicemeeterMacroButtons.exe /T 2>nul
timeout /t 1 /nobreak >nul
start "" "C:\Program Files (x86)\VB\Voicemeeter\voicemeeter8x64.exe"
Změna oproti původnímu postupu: Původní skript spouštěl Voicemeeter s parametrem
-r, který dříve fungoval správně — nová instance poslala existujícímu Voicemeeteru příkaz k restartu audio enginu a sama se ukončila. Někdy po dubnu 2026 toto chování přestalo fungovat (pravděpodobně aktualizací Voicemeeteru) — parametr-rnově otevírá druhou plnou instanci, která zůstane běžet. Skript proto nyní nejprve všechny instance ukončí (taskkill) a pak spustí čistou novou.
timeout /t 3 na začátku dává BT zařízení čas se plně inicializovat před tím, než Voicemeeter nastartuje.
Nastav oprávnění složky (spusť jako Administrator):
icacls "C:\Scripts" /inheritance:r /grant:r "BUILTIN\Administrators:(OI)(CI)(F)" "NT AUTHORITY\SYSTEM:(OI)(CI)(F)" "BUILTIN\Users:(OI)(CI)(RX)"
4. Nastavení úlohy v Task Scheduleru
4.1 Otevření Task Scheduleru
Win+R→taskschd.msc→ Enter
4.2 Vytvoření úlohy
- V pravém panelu klikni na Create Task (ne “Create Basic Task”)
4.3 Záložka General
- Name:
Voicemeeter BT Auto-Start - Description:
Spustí Voicemeeter Potato po připojení BT zařízení - Security options: zaškrtni Run only when user is logged on
4.4 Záložka Triggers
- Klikni New…
- Begin the task:
On an event - Přepni na Custom
- Klikni New Event Filter… → záložka XML → zaškrtni Edit query manually
- Vlož následující XML (uprav
A00CE238FE34na adresu svého zařízení):
<QueryList>
<Query Id="0" Path="Microsoft-Windows-Bluetooth-Policy/Operational">
<Select Path="Microsoft-Windows-Bluetooth-Policy/Operational">
*[System[EventID=9] and EventData[Data and contains(.,'A00CE238FE34')]]
</Select>
</Query>
</QueryList>
- Potvrď OK
4.5 Záložka Actions
- Klikni New…
- Action:
Start a program - Program/script:
C:\Scripts\voicemeeter-bt.bat - Potvrď OK
4.6 Záložka Conditions
- Odškrtni “Start the task only if the computer is on AC power” (pokud chceš spouštět i na baterii)
4.7 Záložka Settings
- Zaškrtni Allow task to be run on demand (pro ruční testování)
- Zaškrtni If the task is already running, then do not start a new instance
- Potvrď OK
5. Testování
- Odpoj BT zařízení
- Znovu ho připoj
- Po 2 sekundách by se měl spustit Voicemeeter Potato
Pro diagnostiku zkontroluj:
Get-WinEvent -LogName "Microsoft-Windows-Bluetooth-Policy/Operational" -MaxEvents 5 |
Format-Table TimeCreated, Id, Message -Wrap
Historii spouštění úlohy najdeš v Task Scheduleru pod Task Scheduler Library → pravý klik na úlohu → Properties → záložka History.
Řešení problémů
| Problém | Řešení |
|---|---|
| Postup přestal fungovat po Windows Update | Windows Update deaktivuje Bluetooth event log. Ověř stav: wevtutil gl "Microsoft-Windows-Bluetooth-Policy/Operational" — hledej enabled: true. Pokud je false, znovu zapni (krok 1) a ujisti se, že máš vytvořenou startup úlohu Enable-BT-Log (krok 1a). |
| Log je prázdný | Ověř, že je log povolený (krok 1) |
| Event ID 9 se neobjevuje | Některé BT adaptéry logují jinak – zkontroluj i logy Bluetooth-BthMini a System |
| Úloha se nespouští | Zkontroluj, že XML query odpovídá přesné adrese zařízení; otestuj úlohu ručně přes pravý klik → Run |
| Voicemeeter se spustí vícekrát | Ujisti se, že používáš aktuální verzi skriptu z kroku 3 (s taskkill). V Settings úlohy nastav také “Do not start a new instance”. |
Poznámky
- Pokud chceš reagovat na jakékoli BT zařízení (ne jen jedno), odstraň z XML podmínku
and EventData[...]a ponechej pouze*[System[EventID=9]]. - Skript ukončuje i
VoicemeeterMacroButtons.exe— pokud Macro Buttons nepoužíváš, řádek s ním můžeš vynechat. Pokud ho používáš, po restartu se spustí automaticky jako závislý proces Voicemeeteru. - Po aktualizaci Windows ověř, že je log stále aktivní (
wevtutil gl ...) a že startup úlohaEnable-BT-Logexistuje a je ve stavuReady.