如何获取多台Azure Sphere设备的WiFi状态及MAC地址列表?
获取多台Azure Sphere设备的MAC地址及WiFi状态列表
要批量获取多台Azure Sphere设备的MAC地址和对应WiFi状态,核心思路是先枚举所有目标设备,再逐个切换设备执行WiFi状态查询,提取所需信息。以下是具体实现方案:
步骤1:枚举目标设备列表
首先通过Azure Sphere CLI获取所有已注册的设备ID(如需设备名称可调整查询参数):
# 获取所有设备ID(TSV格式,便于纯文本处理) azsphere device list --output tsv --query "[].deviceId" # 如需同时获取设备名称和ID,用JSON格式更便于脚本解析 azsphere device list --output json --query "[].{DeviceId:deviceId, DeviceName:deviceName}"
步骤2:批量查询设备WiFi状态
根据使用的操作系统,选择对应的脚本批量处理:
PowerShell脚本(Windows)
# 获取所有设备的ID和名称并解析为对象 $devices = azsphere device list --output json --query "[].{DeviceId:deviceId, DeviceName:deviceName}" | ConvertFrom-Json # 遍历每台设备查询WiFi状态 foreach ($device in $devices) { Write-Host "=== 设备: $($device.DeviceName) ($($device.DeviceId)) ===" # 切换到目标设备 azsphere device select --device $device.DeviceId # 获取并解析WiFi状态数据 $wifiStatus = azsphere device wifi show-status --output json | ConvertFrom-Json # 输出关键信息 Write-Host "MAC地址: $($wifiStatus.macAddress)" Write-Host "SSID: $($wifiStatus.ssid)" Write-Host "连接状态: $($wifiStatus.connectionStatus)" Write-Host "IP地址: $($wifiStatus.ipAddress)" Write-Host "频率: $($wifiStatus.frequency) MHz" Write-Host "" }
Bash脚本(Linux/macOS)
注意:需提前安装jq工具用于JSON解析(如apt install jq或brew install jq)
#!/bin/bash # 获取所有设备ID device_ids=$(azsphere device list --output tsv --query "[].deviceId") # 遍历每台设备查询WiFi状态 for device_id in $device_ids; do echo "=== 设备ID: $device_id ===" # 切换到目标设备 azsphere device select --device $device_id # 提取WiFi状态中的关键字段 mac_address=$(azsphere device wifi show-status --output json | jq -r '.macAddress') ssid=$(azsphere device wifi show-status --output json | jq -r '.ssid') connection_status=$(azsphere device wifi show-status --output json | jq -r '.connectionStatus') ip_address=$(azsphere device wifi show-status --output json | jq -r '.ipAddress') frequency=$(azsphere device wifi show-status --output json | jq -r '.frequency') # 输出信息 echo "MAC地址: $mac_address" echo "SSID: $ssid" echo "连接状态: $connection_status" echo "IP地址: $ip_address" echo "频率: $frequency MHz" echo "" done
额外说明
- 执行脚本前需确保已通过
azsphere login完成Azure Sphere CLI的登录验证 - 如果设备分布在不同的租户或产品下,需在
azsphere device list命令中添加--tenant <租户ID>或--product <产品ID>参数过滤目标设备 - 可根据需求调整脚本中提取的字段(如安全状态、密钥管理等),只需修改JSON解析对应的属性名即可
内容的提问来源于stack exchange,提问作者Bandolero
相关产品推荐
相关产品推荐

