{{category Windows PowerShell,nolink}} PowerShell で、デバイス情報を取得する !!! デバイス情報 PowerShellで、デバイス情報を扱うには [PnpDevice Module|https://learn.microsoft.com/ja-jp/powershell/module/pnpdevice/] の利用する。 * Windows ディバイス ** ディバイスマネージャー「devmgmt.msc」 ** 設定のデバイス「start ms-settings:connecteddevices」 ** コントロールパネルの Bluetooth 設定「bthprops.cpl」※設定に飛ばされる !! デバイス一覧 「Get-PnpDevice」コマンドを使う。 ただし、大量のデバイスが表示されるため、Class や FriendlyName などで、目的のものを絞り込む。 * Get-PnpDevice (PnpDevice) | Microsoft Learn ** https://learn.microsoft.com/ja-jp/powershell/module/pnpdevice/get-pnpdevice ! Bluetooth デバイス リスト プロファイルやサービスを除いた、Bluetooth デバイス Get-PnpDevice -Class Bluetooth | Where-Object CompatibleID -like "*GENERIC*DEVICE*" | ft -AutoSize Class が Bluetooth のもの、 ! USB機器リスト 接続されているUSB機器リスト Get-PnpDevice -PresentOnly | Where-Object InstanceId -match '^USB' | ft -AutoSize 「-PresentOnly」で接続されているディバイスのみ、InstanceId が USB で始まるもの。 !! デバイス情報 「Get-PnpDeviceProperty」コマンドを使う。 Get-PnpDeviceProperty -InstanceId <InstanceID> * Get-PnpDeviceProperty (PnpDevice) | Microsoft Learn ** https://learn.microsoft.com/ja-jp/powershell/module/pnpdevice/get-pnpdeviceproperty !! デバイスの接続・切断 「Enable-PnpDevice」「Disable-PnpDevice」で、接続・切断が行える。管理者権限が必要。 Enable-PnpDevice -InstanceId <InstanceID> -Confirm:$false Disable-PnpDevice -InstanceId <InstanceID> -Confirm:$false ** https://learn.microsoft.com/ja-jp/powershell/module/pnpdevice/enable-pnpdevice ** https://learn.microsoft.com/ja-jp/powershell/module/pnpdevice/disable-pnpdevice !!! デバイス情報 !! Bluetooth デバイス の接続状態 対象のインスタンスIDは事前に調べておく。「{83DA6326-97A6-4088-9453-A1923F573B29} 15」と言うキーが接続状態。 「Data」の値が True なら接続、False なら切断 となる。 Get-PnpDeviceProperty -InstanceId 'BTHLE\DEV_〜' | Where-Object KeyName '{83DA6326-97A6-4088-9453-A1923F573B29} 15' Get-PnpDeviceProperty で、デバイス情報を取得できるので、接続前後で変数に記録し Compare-Object で比較して、変化を調べる。