ネイティブのWindowsが動作する最後のIntel Macbook 2020。
https://support.apple.com/ja-jp/111991
BootCampを利用すれば最新のWindows 11 Professionalを入れることができる。そのままWindows Updateを自動でさせておくと、その中でも最新バージョンである「24H2」に自動でアップデートされる。
しかしここで大きな問題が発生する。最新版にするとBluetoothが機能しなくなるのだ。いろいろ調べた結果、システム終了時にBluetoothドライバを削除すれば、次回起動時復活することがわかった。以下、手順。
1、Windowsのバージョン確認
コントロールパネル→システムとセキュリティ→システムを表示。Windowsバージョンが11 Pro + 23H2であることを確認。
2、Bluetoothが機能していない(ドライバーエラー)の確認
コントロールパネル→ハードウェアとサウンド→デバイス マネージャーを開く。
一番先頭にあったはずの「Bluetooth」が居なくなっており、「システム デバイス」→「Broadcom Bluetooth PCIe Controller」がビックリマークで、「このデバイスは正常に動作していません」となっていることを確認。
3、Bluetoothドライバのデバイス インスタンス パスをコピーする
ここから復旧作業に入る。上記デバイスのプロパティ画面でそのまま「詳細」タブを開き「プロパティ」プルダウンでデバイスの説明ではなく「デバイス インスタンス パス」を選ぶ。すると、値としてIDが表示されるので、この文字列をコピー、メモしておく。
4、PowerShellスクリプト「RemoveBluetooth.ps1」を作成する
このデバイスを削除するスクリプトを書く。ここではCドライブ直下にRemoveSystemBT.ps1というようなスクリプトを作成し設置する。
BOOTCAMP(C:)\RemoveBluetooth.ps1
pnputil /remove-device "PCI\VEN_14E4&DEV_5FA0&SUBSYS_0870106B&REV_04\400000FFFF00000001" pnputil /scan-devices
上記ID文字列は、3、で取得したデバイス インスタンス パスに置き換える。
5、実行スクリプト「RemoveBluetooth.cmd」を作成する
上記で作成したスクリプトを実行するためのコマンドスクリプトを書く。ここではCドライブ直下にRemoveSystemBT.cmdというようなスクリプトを作成し設置する。
BOOTCAMP(C:)\RemoveBluetooth.cmd
@echo off :获取管理员权限 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit :保持当前目录下运行 cd /d "%~dp0" PowerShell -Command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine" powershell.exe -ExecutionPolicy Bypass -File "RemoveBluetooth.ps1"
6、ローカル グループ ポリシー エディタでスクリプトを自動実行登録する
スタートボタン→アプリ、設定、ドキュメントの検索ボックスに「gpedit」と入力する。すると最も一致する結果に「グループ ポリシーの編集」と出るので、クリックしてローカル グループ ポリシー エディタを開く。
左タブ「Windowsの設定」のツリーを展開する。そうすると「スクリプト(スタートアップ/シャットダウン)」が出てくるのでクリック。
「スタートアップ」をダブルクリックしてスタートアップのプロパティを開いて「追加…」でさきほど作成したRemoveBluetooth.cmdのほうを登録する。すると名前のところにC:\RemoveBluetooth.cmdが追加されているはず。「OK」で保存、閉じる。
7、再起動後、デバイスマネージャーでBluetoothが復活していることを確認する
これで、再起動やシャットダウンすると、終了前に上記スクリプトが自動実行されて、次回起動時Bluetoothが復活しているはずである。
—————————————————–
Download : ResetBluetooth.zip