创建服务元数据的开发人员指南

MBAE 弃用警告

重要

从 Windows 10 版本 1803 开始,MBAE 应用体验将替换为 MO UWP 应用。 有关 MO UWP 应用的详细信息,请参阅 UWP 移动宽带应用

本指南将引导你完成在 Windows 开发人员中心硬件仪表板(以前称为 Sysdev)上创建服务元数据包的过程。 将移动宽带应用连接到硬件设备需要服务元数据。 当用户将移动宽带设备插入其计算机时,将下载关联的服务元数据,然后自动下载移动宽带应用。

可以利用服务元数据创建与 Windows 深度集成的体验。 服务元数据包允许你包含品牌信息(如图标和运营商名称),配置用于访问 SIM 硬件和个人热点的设置和权限,以及预配移动宽带应用以使用移动宽带设备。

注意
即使移动宽带应用是自动安装的,用户也必须手动将其固定到“开始”屏幕。

开始

若要成功创建服务元数据包,必须完成本节中包含的步骤。

将公司注册到 Windows 开发人员中心硬件仪表板

  • 贵公司在 Windows 开发人员中心硬件仪表板上有一个活动帐户。 如果你的公司在 Windows 开发人员中心硬件仪表板上没有帐户,则可以创建一个新帐户,并将你的用户帐户添加到你的公司。 有关详细信息,请参阅 Windows 开发人员中心硬件中的管理仪表板帮助。

  • 贵公司有一个 VeriSign 代码签名证书来对包进行签名。

服务元数据向导访问和服务标识符注册

MNO 和 MVNO 必须先完成以下步骤,然后才能创建服务元数据包:

  • 请求访问服务元数据向导

  • 注册服务标识符

若要完成上述步骤,必须转到合作伙伴中心仪表板技术支持并提供以下信息:

  • 注册 Windows 开发人员中心硬件时使用的组织名称仪表板。

  • 无论你是移动网络运营商还是移动虚拟网络运营商。

  • 你的网站和理由说明你需要创建服务元数据包的原因。

包括以下服务标识符(如果适用):

  • GSM 提供程序 ID 列表

  • GSM 提供程序名称列表

  • CDMA SID 列表

  • CDMA 提供程序名称列表

你应会在 24 小时内收到一封确认电子邮件,指出你的请求已收到。 但是,最多可能需要 5 个工作日来处理请求。 如果存在冲突,我们将向你发送一封电子邮件,询问其他信息。

移动宽带应用

在创建服务元数据包之前,请确保已开发移动宽带应用并将其与 Microsoft Store 相关联。 此应用应提供关键体验,例如计划购买、数据使用、帮助和支持,以及突出显示操作员提供的增值服务。 有关创建移动宽带应用的详细信息,请参阅以下链接:

注意
在测试服务元数据并准备好在外部发布之前,移动宽带应用不必发布到 Microsoft Store。 建议仅在服务元数据包通过预览模式测试后,才会将应用发布到 Microsoft Store。

创建服务元数据包

创建服务元数据包从 Windows 开发人员中心硬件仪表板上可用的服务元数据向导开始。 有关服务元数据向导的详细信息,请参阅 步骤 2 - 创建服务元数据包。 可以使用服务元数据向导创建新的服务元数据包或编辑现有服务元数据包。 完成向导并填写值时,向导将验证并通知你任何错误或警告。 此验证包括检查缺失或不正确的字段、服务标识符所有权、Microsoft Store 中是否存在移动宽带应用等。

在最终确认页并准备好提交时,可以选择在 开发人员 模式或 预览 模式下提交包。

  • 开发人员模式 在最初阶段使用,如果只是要创建服务元数据包并将其用于脱机测试目的。 在此模式下,不会对包进行签名,并且必须手动下载并安装到测试计算机以进行验证。 可以将此模式视为快速创建和验证服务元数据包是否适用于设备的方法。

  • 预览模式 当你确信包已正确创作并且已准备好提交进行端到端测试时使用。 在此模式下,包将由 Windows 开发人员中心硬件仪表板签名,并且将自动下载到测试计算机,前提是测试计算机已正确预配。

完成预览测试并验证包适用于所有方案后,即可将包发布到活动状态。

下图讨论了工作流:

显示创建服务元数据包过程的流程图。

若要创建新的服务元数据包,请参阅 创建服务元数据包的步骤

若要编辑现有的服务元数据包,请参阅 编辑服务元数据包的步骤

创建服务元数据包的步骤

使用以下步骤在 Windows 开发人员中心硬件仪表板创建服务元数据包:

1 - 收集服务元数据包所需的信息

在完成本主题步骤 2 中的服务元数据向导中的步骤时,需要从要与设备关联的移动宽带应用项目中存储在 package.appxmanifest 文件中的几条信息。 使用以下步骤收集信息,使其可供本主题的步骤 2 使用。

警告
在此步骤中收集值之前,移动宽带应用必须与 Microsoft Store 相关联。 关联移动宽带应用时,包清单文件中的值将更新为使用 Microsoft Store 开发人员帐户中的信息。 但是,移动宽带应用不必发布到 Microsoft Store。 它可以保留在本地开发环境中,直到你准备好发布服务元数据包。

收集 UWP 设备应用信息

  1. 使用 Visual Studio 2013 打开移动宽带应用项目。

  2. 在右侧窗格中,右键单击 Package.appxmanifest 文件,然后单击“ 查看代码”。

  3. 从 package.appxmanifest 文件收集以下属性:

    • Identity 元素中, Name 属性将用于服务元数据向导中的 “包名称 ”字段。

    • Identity 元素中, Publisher 属性将用于服务元数据向导中的 发布服务器 字段。

    • Applications 元素中,Application 子元素中的 Id 属性将用于服务元数据向导中的“应用 ID”字段。

  4. 关闭 package.appxmanifest 文件。

代码视图中 package.appxmanifest 文件的屏幕截图。

也可以通过执行以下步骤,在不使用 Visual Studio 的情况下完成此操作:

在不使用 Visual Studio 的情况下收集移动宽带应用信息

  1. 导航到移动宽带应用的 package.appxmanifest 文件。

  2. 右键单击该文件,然后单击“ 打开使用”。

  3. 清除“将此应用用于所有 .appxmanifest 文件检查”框,单击“更多选项”,然后单击“记事本”。

  4. 从 package.appxmanifest 文件收集以下属性:

    • Identity 元素中, Name 属性将用于服务元数据向导中的 “包名称 ”字段。

    • Identity 元素中, Publisher 属性将用于服务元数据向导中的 发布服务器 字段。

    • Applications 元素中,Application 子元素中的 Id 属性将用于服务元数据向导中的“应用 ID”字段。

  5. 保存并关闭 package.appxmanifest 文件。

2-创建服务元数据包

服务元数据是使用 Windows 开发人员中心硬件仪表板中的服务元数据向导创建的。

创建服务元数据包

  1. 导航到 sysdev.microsoft.com。

  2. “设备元数据” 标题下,单击“ 创建移动宽带体验”。

    Windows 开发人员中心硬件仪表板登陆页面的屏幕截图。

  3. “服务信息 ”页上,填写以下字段,然后单击“ 下一步”。

    • 输入将在 Windows 网络选择 UI 中使用的网络名称 – 将在 Windows 连接管理器中向客户显示的网络名称。

    • 输入服务编号 – 必须与预配元数据中的运营商 ID 字段匹配的 GUID。 可以使用 Visual Studio 2013 创建 GUID。 有关如何创建 GUID 的详细信息,请参阅 创建 GUID (guidgen.exe)

    • 上传要显示在 Windows 网络选择 UI 中的图标 – 单击“浏览”,然后选择在 Windows 连接管理器中向客户显示的图标。

    • 在应用中输入 Windows 通知事件处理程序 (可选,除非以下要求权利检查) – 这是在移动宽带应用中注册的通知处理程序。

    • 是否允许用户 (个人热点) 共享其移动宽带连接? – 可能的选项包括“始终允许”、“仅允许与权利检查 (Windows 通知事件处理程序) ”“永不允许”。 默认选项是始终允许。

    • 是否要求系统管理员权限才能在 SIM 上执行 PIN 解锁? – 如果想要要求系统管理员权限来 PIN 解锁 SIM 卡卡,请单击“”选项。

    服务元数据向导中“服务信息”步骤的屏幕截图。

  4. “硬件信息 ”页上,选择应用于识别你的体验的信息。 选择检查框后,可以添加相应的网络范围。 生成的 ID 应存在于 Windows APN 数据库中,以便确定正确的订阅服务器。 有关 APN 数据库的详细信息,请参阅 COSA/APN 数据库提交

    • 如果你是使用国际移动用户标识 (IMSI) 的 GSM 提供商,请选择 GSM 标题下的“IMSI 检查”框。 在“ 提供商 ID ”框中,输入 GSM 服务提供商 ID。 在 “IMSI/ICCID 范围 ”标题下,输入范围,然后单击“ 添加”。

    • 如果你是使用集成电路卡标识符 (ICCID) 的 GSM 提供商,请选择 GSM 标题下的 SIM ICC ID 检查框。 在 “输入提供程序 ID 和 ICC ID 范围 ”标题下,输入范围,然后单击“ 添加”。

    • 如果你是使用主提供商名称的 GSM 提供商,请在“GSM”标题下选择“主提供商名称检查框。 在 “输入主提供商名称”或输入“提供程序 ID (MCC+MNC) ”标题下,输入提供程序 ID 和提供程序名称,然后单击“ 添加”。

    • 如果你是使用 SID 的 CDMA 提供程序,请选择 CDMA 标题下的“SID 检查”框。 在 “输入 SID ”框中,输入 CDMA SID。

    • 如果你是使用提供程序名称的 CDMA 提供程序,请选择 CDMA 标题下的“提供程序名称检查框。 在 “输入提供程序名称 ”框中,输入 CDMA 服务提供程序名称。

    • 单击“下一步”。

    服务元数据向导中硬件信息步骤的屏幕截图。

  5. “应用信息 ”页上,输入在本主题的步骤 1 中收集的信息。 如果要添加其他特权应用,请单击“ 添加”,然后输入最多 7 个。 输入所有特权应用后,单击“ 下一步”。

    服务元数据向导中“应用信息”步骤的屏幕截图。

  6. 在“ 确认 ”页上,验证信息是否正确。 选择“ 开发人员模式 ”或“ 预览模式 ”选项,然后单击“ 提交”。

    • 开发人员模式 - 包未签名,必须在每台计算机上手动下载并安装。 如果需要保存该程序包以进行脱机开发,请使用此选项。

    • 预览模式 - 包已签名并从 Microsoft 自动下载,以测试配置了相应注册表设置的计算机。 预览模式不检查以确保将移动宽带应用发布到 Microsoft Store。

    服务元数据向导中“确认”步骤的屏幕截图。

3 - 将应用商店清单文件插入 Microsoft Store 设备应用

应用商店清单文件必须包含在 UWP 设备应用中。 使用以下步骤从服务元数据包下载应用商店清单文件,并将其插入移动宽带应用项目中。

插入应用商店清单文件

  1. 在 Windows 开发人员中心硬件仪表板,在服务元数据包的管理体验页上,单击服务元数据包,然后单击 StoreManifest.xml 下载应用商店清单文件。

    用于下载 StoreManifest.xml 文件的选项的屏幕截图。

  2. 使用 Visual Studio 2013 打开移动宽带应用项目。

  3. 右键单击项目,单击“ 添加”,然后单击“ 现有项”。

  4. 浏览到下载的应用商店清单文件,然后单击“ 添加”。

  5. 重新编译移动宽带应用,并将其再次发布到 Microsoft Store。

4 - 测试服务元数据包

若要测试服务元数据包,必须具有移动宽带设备和服务元数据包文件。 配置测试系统和安装服务元数据包的说明取决于包的模式。

在开发人员模式下测试服务元数据包

必须手动下载包并将其安装到正确的位置,方案才能正常工作。 需要从两个不同的入口点访问开发人员模式包,具体取决于是创作了新包还是现有包。

如果创建了新包,请在 Windows 开发人员中心硬件仪表板,单击“管理体验”,然后单击“未关联的开发包” (“管理体验”表中) 的第一个条目。 以下代码展示了一个示例:

用于下载服务元数据包的选项的屏幕截图。

如果编辑了已与某个体验关联的现有服务元数据包,请从 “管理体验 ”表中选择该体验,你将在 “元数据包 ”表中看到开发人员模式包。 单击“ 下载 MBAE Zip 包编辑” 以下载它。

用于下载已编辑的服务元数据包的选项的屏幕截图。

下载服务元数据包后,必须启用测试签名,因为服务元数据包未签名。 若要启用测试签名,请从提升的命令提示符 运行 bcdedit –set testsigning, 然后重新启动计算机。

启用测试签名后,将 *.devicemetadata-ms 文件从服务元数据包复制到以下位置: %ProgramData%\Microsoft\Windows\DeviceMetadataStore\culture,其中 culture 是计算机的当前区域性代码。

在预览模式下测试服务元数据包

如果服务元数据包处于预览模式,则必须在测试计算机上创建 PreviewKey 注册表项。 有关配置 PreviewKey 注册表项的详细信息,请参阅 创建预览包

注意
无需启用测试签名,就可以测试处于预览模式的服务元数据包。

创建 PreviewKey 注册表项后,插入移动宽带设备并确保它显示在“网络”列表中。 如果没有,请参阅 故障排除 部分了解详细信息。

清除现有服务元数据

在电脑上安装服务元数据时,元数据中包含的值将存储在许多不同的位置,包括注册表、元数据缓存、元数据存储、WWAN 配置文件和开发节点。 这会使使用相同或不同的元数据包重复多个测试变得困难。 若要确保正确安装服务元数据,应清除所有现有的服务元数据。 可以通过将测试计算机设置为运行删除所有跟踪的 PowerShell 脚本来清除现有服务元数据。 首先,必须在测试计算机上设置环境:

注意
这在Windows RT设备上不起作用。 使用名为“清除运行 Windows RT 的设备上的服务元数据”过程中的步骤。

设置用于清除服务元数据的环境

  1. 下载 psexec.exe (https://go.microsoft.com/fwlink/p/?linkid=330071) ,然后将其提取到文件夹。

  2. 下载并安装 Windows 驱动程序工具包Windows 8.1 (https://go.microsoft.com/fwlink/?LinkId=330072) 。

  3. 导航到 WDK 文件的安装位置。 默认位置为 C:\Program Files (x86) \Windows Kits\8.1\Tools。 如果测试计算机运行 x86,请将 devcon.exe 从 x86 文件夹复制到与 psexec.exe 相同的文件夹中。 如果测试计算机运行的是 x64,请从 x64 文件夹复制 devcon.exe。

  4. 将以下脚本作为 MetadataRemovalScript.ps1 保存在与 Devcon.exe 和 PsExec.exe 相同的文件夹中。

    注意
    “保存类型 ”框中,请确保在保存文件之前选择“ 所有文件 (*.*) ”。

# DEVICE SHOULD BE CONNECTED TO MACHINE

Write-Host "Launching devcon to remove MBAE software device nodes devcon.exe remove @SWD\MBAE\*"
$DevconParameters = ' remove @SWD\MBAE\* '
try
{
   Start-Process devcon.exe -ArgumentList $DevconParameters
}
catch
{
   $Error[0] # Dump details about the last error
   Write-Host "Error running devcon.exe " $DevconParameters
   exit
}

Write-Host "Removing MB Profiles"
$mbprcmd = "mbn sh pr i=*"
$mddelprcmd = "mbn del pr i=* name="

$cmdout = $mbprcmd | netsh | Out-String

$tokens = $cmdout.Split( [String[]] ("`r`n"), [StringSplitOptions]::RemoveEmptyEntries)

if($tokens.Length -gt 3)
{
   for($i=3;$i -lt $tokens.Length-1;$i++)
   {
      $x = $mddelprcmd + '"' + $tokens[$i].trim() +'"'
      Write-Host "Deleting Profile Cmd :" $x
      $x | netsh
   }
}

Write-Host ""
Write-Host "Disabling ALL Mobile Broadband Adapters"
$MBAdapters = Get-Netadapter -Name "Mobile Broadband*"

foreach($MBAdapter in $MBAdapters)
{
   Write-Host "Disabling MB Adapter :"$MBAdapter.Name
   Disable-NetAdapter -Name $MBAdapter.Name -Confirm:$false
}

Write-Host "Stopping Device Setup Manager Service"
Stop-Service DsmSvc

Write-Host "Removing MBAE metadata packages in store"
#Find Package Ids
$MBAEPackageRegKeyHive = "HKLM:\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\Accounts\"
if(Test-Path $MBAEPackageRegKeyHive)
{
    $DevMetadataStorePath = join-path -Path $Env:ProgramData -ChildPath "Microsoft\Windows\DeviceMetadataStore"

    $PackageIds = Get-ChildItem $MBAEPackageRegKeyHive | ForEach-Object {Get-ItemProperty $_.pspath} | where-object {$_.MetadataPackageId} | Foreach-Object {$_.MetadataPackageId}
    foreach($PackageId in $PackageIds)
    {
        $PackageStoreFile = $PackageId + ".devicemetadata-ms"        
        $PackageStorePath = Get-ChildItem $DevMetadataStorePath -Recurse -Filter $PackageStoreFile
        if($PackageStorePath -ne $null)
        {
            Write-Host "Deleting Device Metadata Store @" $PackageStorePath.FullName
            Remove-Item -Force $PackageStorePath.FullName
        }
    }
}

Write-Host "Removing all metadata from cache"
$DevMetadataCachePath = join-path -Path $Env:ProgramData -ChildPath "Microsoft\Windows\DeviceMetadataCache\*"
if(Test-Path $DevMetadataCachePath)
{
   Write-Host "Delete All Metadata Packages under "$DevMetadataCachePath
   Remove-Item -Recurse -Force $DevMetadataCachePath
}

Write-Host "Cleanup MBAE registry keys"
$MBAERegKeyPath = "HKLM:\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\*"
if(Test-Path $MBAERegKeyPath)
{
    Write-Host "Found MBAE reg keys - deleting"   
    Remove-Item -Path $MBAERegKeyPath -Recurse
}

Write-Host "Enabling all MB Adapters, press any key to continue"
$keypress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp")

$MBAdapters = Get-Netadapter -Name "Mobile Broadband*"

foreach($MBAdapter in $MBAdapters)
{
   Write-Host "Enabling MB Adapter :"$MBAdapter.Name
   Enable-NetAdapter -Name $MBAdapter.Name -Confirm:$false
}


Write-Host "END of Script"

# DEVICE SHOULD BE CONNECTED TO MACHINE

Write-Host "Launching devcon to remove MBAE software device nodes devcon.exe remove @SWD\MBAE\*"
$DevconParameters = ' remove @SWD\MBAE\* '
try
{
    Start-Process devcon.exe -ArgumentList $DevconParameters    
}
catch
{
    $Error[0] # Dump details about the last error
    Write-Host "Error running devcon.exe " $DevconParameters
    exit
}

Write-Host "Removing MB Profiles"
$mbprcmd = "mbn sh pr i=*"
$mddelprcmd = "mbn del pr i=* name="

$cmdout = $mbprcmd | netsh | Out-String

$tokens = $cmdout.Split( [String[]] ("`r`n"), [StringSplitOptions]::RemoveEmptyEntries)

if($tokens.Length -gt 3)
{
    for($i=3;$i -lt $tokens.Length-1;$i++)
    {
        $x = $mddelprcmd + '"' + $tokens[$i].trim() +'"'
        Write-Host "Deleting Profile Cmd :" $x
        $x | netsh
    }
}

Write-Host ""
Write-Host "Please remove the MB device from the system and press any key to continue"
$keypress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")


Write-Host "Removing MBAE metadata packages in cache and store"
#Find Package Ids
$MBAEPackageRegKeyHive = "HKLM:\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\Accounts\"
if(Test-Path $MBAEPackageRegKeyHive)
{
    $DevMetadataCachePath = join-path -Path $Env:ProgramData -ChildPath "Microsoft\Windows\DeviceMetadataCache"
    $DevMetadataStorePath = join-path -Path $Env:ProgramData -ChildPath "Microsoft\Windows\DeviceMetadataStore"

    $PackageIds = Get-ChildItem $MBAEPackageRegKeyHive | ForEach-Object {Get-ItemProperty $_.pspath} | where-object {$_.MetadataPackageId} | Foreach-Object {$_.MetadataPackageId}
    foreach($PackageId in $PackageIds)
    {
        $PackageCacheFolder = Get-ChildItem $DevMetadataCachePath -Recurse -Filter $PackageId
        if($PackageCacheFolder -ne $null)
        {
            Write-Host "Deleting Device Metadata Cache @" $PackageCacheFolder.FullName
            Remove-Item -Recurse -Force $PackageCacheFolder.FullName
        }
        $PackageStoreFile = $PackageId + ".devicemetadata-ms"        
        $PackageStorePath = Get-ChildItem $DevMetadataStorePath -Recurse -Filter $PackageStoreFile
        if($PackageStorePath -ne $null)
        {
            Write-Host "Deleting Device Metadata Store @" $PackageStorePath.FullName
            Remove-Item -Force $PackageStorePath.FullName
        }
    }
}

Write-Host "Cleanup MBAE registry keys"
$MBAERegKeyPath = "HKLM:\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\*"
if(Test-Path $MBAERegKeyPath)
{
    Write-Host "Found MBAE reg keys - deleting"   
    Remove-Item -Path $MBAERegKeyPath -Recurse
}


Write-Host "END"

设置环境后,每次要清除任何现有服务元数据时,请运行以下命令:

清除服务元数据

  1. 确保移动宽带设备已插入测试计算机。

  2. 在提升的命令提示符下,导航到解压缩 psexec.exe 的文件夹,然后运行 psexec /s /i powershell

  3. 在 PowerShell 命令提示符下,导航到提取 psexec.exe 的文件夹。

  4. 键入 set-executionpolicy unrestricted ,然后按 Enter。

  5. 键入 Y ,然后按 Enter。

  6. 键入 .\MetadataRemovalScript.ps1 ,然后按 Enter。

  7. 出现提示时,请删除移动宽带设备,然后按 Enter。

  8. 每次要从测试计算机中清除服务元数据时,重复这些步骤。

清除运行 Windows RT 的设备上的服务元数据

  1. 删除软件设备节点。

    1. 在设备管理器中,单击“视图”,然后单击“显示隐藏的设备”。

    2. 展开“软件设备”。

    3. 右键单击以下设备节点,然后单击“ 卸载”: Windows.Devices.Sms.SmsDeviceWindows.Networking/NetworkOperators.MobileBroadbandAccount

  2. 从所有接口中删除所有移动宽带配置文件。

    1. 在提升的命令提示符下,键入 netsh mbn sho pro i=\*

    2. 对于每个配置文件,键入 netsh mbn delete profile name = “The profile name here” i=\* ,然后按 Enter。

  3. 禁用所有移动宽带适配器。

    1. 在“设备管理器”中,展开“网络适配器”。

    2. 右键单击每个移动宽带设备,然后单击“ 禁用”。

  4. 在提升的命令提示符下,键入 sc stop dsmsvc 停止 DSM 服务,然后按 Enter。

  5. 通过从 %ProgramData%\Microsoft\Windows\DeviceMetadataStore 中删除包含服务元数据包的任何文件夹,从设备元数据存储中删除服务元数据包。 可以通过查找 MobileBroadbandInfo.xml 文件来标识服务元数据包。

  6. 删除所有 WWAN SVC MBAE 注册表项。

    1. 在注册表编辑器中,删除以下注册表项和所有子项:HKEY_LOCAL_MACHINE\Software\Microsoft\WwanSvc\MobileBroadbandAccounts。

    2. 如果无权删除注册表项,则必须授予自己完全控制权限。

  7. 启用所有移动宽带适配器。

    1. 在“设备管理器”中,展开“网络适配器”。

    2. 右键单击每个移动宽带设备,然后单击“ 启用”。

5 - 发布服务元数据包

确认服务元数据包正常工作后,最后一步是释放包。 可以通过单击“ 发布 ”按钮选择附加到特定体验的包来释放包,如下所示。

用于发布服务元数据包的选项的屏幕截图。

编辑服务元数据包的步骤

可以使用 Windows 开发人员中心硬件仪表板的“管理体验”页编辑服务元数据包。

Windows 开发人员中心硬件仪表板上的“管理体验”页面的屏幕截图。

故障排除

打开网络列表并查找移动宽带网络。 如果使用在服务元数据包 ServiceInfo.xml 文件中使用的名称和图标列出网络,则会正确分析包。 如果要更新具有相同名称和图标的服务元数据包,或者名称或图标在大约一分钟后未出现在列表中,则应执行其他步骤,如下所述:

  • 强制元数据刷新

  • 检查元数据缓存

  • 检查

  • 检查 WWAN 日志

强制元数据刷新

元数据和移动宽带应用系统的某些部分依赖于网络访问,这可能会失败并使计算机处于不一致状态。 如果发生这种情况,可能会遇到未安装服务元数据或未安装移动宽带应用的情况。 系统定期尝试纠正这种情况,但为了节电,重试很少 (每天) 几次。 可以手动强制立即执行刷新,而不是等待下一次重试。 为此,请执行下列步骤:

  1. 打开桌面控制面板

  2. 打开 “设备和打印机”。

  3. 在“ 视图 ”菜单中,单击“ 刷新”,或按 F5 键。 此操作会导致重新分析元数据并重新注册后台事件。

重要说明
如果已成功分析服务元数据包,系统会将此刷新视为元数据更新。 在这种情况下,元数据包的文件名中必须具有不同的 GUID,并在 PackageInfo.xmlLastModifiedDate 元素中具有更新的时间戳。

检查元数据缓存

如果元数据刷新未解决问题,请确保服务元数据包有效且具有正确的硬件 ID。 为此,请执行下列步骤:

  1. 导航到 %programdata%\Microsoft\Windows\DeviceMetadataCache\dmrccache\culture,其中 culture 是测试计算机当前区域性 (的区域性代码,例如 en-uses-es) 。

  2. 查找与元数据包同名的文件夹, (没有 .devicemetadata-ms 扩展名) 。 如果此目录不存在,则可能意味着以下四种情况之一:

    • 服务元数据包已损坏。

    • 服务元数据包没有正确的硬件 ID。

    • 移动宽带设备未处于可以下载元数据的状态,或者在复制服务元数据包之前插入设备。

    • 检查元数据包上的数字签名时出现问题。 这通常是由于未在测试计算机上启用测试签名而导致的。

如果确定包未损坏,并且复制服务元数据包后首次插入移动宽带设备,检查 IMSI 范围。 键入太多或太少的 0 或 9 很容易。 如果在确认或更正这些项目后问题仍然存在,则必须查看注册表。

检查注册表

警告
除非绝对必要,否则不应编辑不属于应用程序的注册表数据。 如果注册表中存在错误,则系统可能无法正常工作。 在任何情况下,都不要删除 MobileBroadbandAccounts 注册表项。 Windows 不会重新创建它,你将中断该功能。

执行以下步骤以检查注册表:

  1. 打开注册表编辑器。

  2. 转到 HKLM\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts

  3. 在此注册表项中,查找其他三个项: AccountsNetworkInterfaceBindingsData。 默认情况下,这些密钥不存在;首次插入、打开或连接移动宽带设备时,会自动创建它们。

  4. 如果帐户NetworkInterfaceBindings 密钥不存在,并且你已插入或打开移动宽带适配器,检查 WWAN 日志。

  5. 如果存在部分或全部这些密钥,请在视图中展开“帐户”键。 其中应存在一个或多个名称类似于 GUID 的注册表项。 注册表树项应类似于下面显示的注册表树:

    已分析移动宽带帐户的注册表项的屏幕截图。

    如果注册表项看起来类似于上图 (值名称将略有不同,具体取决于帐户是位于 GSM 网络还是 CDMA 网络) 上,并且如果未在网络列表中看到图标,则应查看事件日志。

    如果注册表项与下图类似,则表示在将服务元数据包复制到设备元数据存储之前插入移动宽带适配器、服务元数据包已损坏或硬件 ID 不正确。 若要纠正在将元数据包复制到元数据存储之前插入或打开设备的情况,请执行强制元数据刷新中的步骤。 否则,请按照检查 WWAN 日志中的步骤操作。

    未解析的移动宽带帐户的注册表项的屏幕截图。

检查 WWAN 日志

如果 HKLM\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts 下没有 AccountsNetworkInterfaceBindings 注册表项,或者存在未完全填充的条目,则必须查看 WWAN 日志。 以下步骤会将计算机重置为已知状态:

  1. 如果设备已嵌入,请拔出或关闭移动宽带设备 (,请在设备管理器) 中将其禁用。

  2. 删除以下注册表项:

    • HKLM\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\Accounts

    • HKLM\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\NetworkInterfaceBindings

    警告
    在任何情况下,都不要删除 HKLM\SOFTWARE\Microsoft\WwanSvc\MobileBroadbandAccounts\ 注册表项。 Windows 不会重新创建它,你将中断该功能。

日志中存在两种类型的条目:帐户管理 WWAN 服务条目日志条目和分析程序任务条目。 第一种类型可帮助调试由网络硬件问题引起的问题,第二种类型可帮助调试元数据分析问题。

成功处理的网络的帐户管理 WWAN 服务条目日志条目如下所示:

[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.567 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Account updater started for network interface {7a0a0dce-0a51-471a-8c16-6e767cd0b861. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.567 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Getting home provider ID from hardware device for network interface {7A0A0DCE-0A51-471A-8C16-6E767CD0B861}.  Provider ID is "234567". 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.567 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Getting home provider name from hardware device for network interface {7A0A0DCE-0A51-471A-8C16-6E767CD0B861}.  Provider name is "MS GSM". 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.586 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Network identity not recognized, assigning new network account ID. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.597 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Devnode create/update started. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.617 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Devnode create/update finished. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.617 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Data store create/update started. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.707 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Data store create/update finished. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:26.707 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Account updater finished for network interface {7a0a0dce-0a51-471a-8c16-6e767cd0b861}.

可以通过在日志中搜索 帐户管理来查找这些条目。 在这种情况下,最重要的条目是 数据存储创建/更新已启动数据存储创建/更新已完成。 如果这些条目存在并且没有错误消息,则表示硬件运行正常。 (此处引用的数据存储包含检查注册表中讨论的注册表项。)

相比之下,在删除 SIM 的设备上,条目通常如下所示:

[0]02CC.03E4::‎2012‎-‎01‎-‎04 09:29:50.309 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Account updater started for network interface {7a0a0dce-0a51-471a-8c16-6e767cd0b861}. 
[0]02CC.03E4::‎2012‎-‎01‎-‎04 09:29:50.309 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Detected removal of SIM from device bound to network interface {7A0A0DCE-0A51-471A-8C16-6E767CD0B861}. 
[0]02CC.03E4::‎2012‎-‎01‎-‎04 09:29:50.309 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Devnode create/update started. 
[0]02CC.03E4::‎2012‎-‎01‎-‎04 09:29:50.309 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Devnode create/update finished. 
[0]02CC.03E4::‎2012‎-‎01‎-‎04 09:29:50.309 [Microsoft-Windows-WWAN-SVC-EVENTS]Account Management: Account updater finished for network interface {7a0a0dce-0a51-471a-8c16-6e767cd0b861}. 

注意
在后一个示例中,数据存储 创建/更新已启动数据存储创建/更新已完成没有条目。 由于 SIM 中存储的信息对帐户管理过程至关重要,因此没有 SIM 卡的设备将没有必要的关联元数据。

如果已成功处理硬件,但徽标或名称未显示在网络列表中,则元数据包可能存在问题。 可以使用日志中的分析程序任务条目对此进行调查。 若要查找这些条目,请搜索 “Parser-Task”。 成功分析的日志条目通常如下所示:

[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.007 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Parser task started. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.030 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Parsing metadata for device container with id "{972238E7-36F4-11E1-BC81-00155DE96B01}" for culture "en-US". 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.297 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Starting parse of mobile broadband service information file. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.297 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Metadata package contains no data for culture "en-US". Using fallback data. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.356 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Finished parse of mobile broadband service information file. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.356 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Starting update of stored network account information. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.377 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]The mobile broadband account now contains service provider information. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.378 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Finished update of stored network account information. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.378 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Applying WWAN profiles for service provider Contoso GSM. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.378 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Starting creation and/or update of WWAN profiles. 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:32.512 [Microsoft-Windows-WWAN-SVC-EVENTS]WWAN Service event: Profile Update Notification received 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:32.519 [Microsoft-Windows-WWAN-SVC-EVENTS]WWAN Service event: Complete Scanning 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:32.519 [Microsoft-Windows-WWAN-SVC-EVENTS]WWAN Service event: WWAN Interface information 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:32.586 [Microsoft-Windows-WWAN-SVC-EVENTS]WWAN Service event: Profile Update Notification received 
[0]02CC.0CD0::‎2012‎-‎01‎-‎04 09:22:32.651 [Microsoft-Windows-WWAN-SVC-EVENTS]WWAN Service event: Profile Update Notification received 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.659 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Finished creation and/or update of WWAN profiles. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.659 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]WWAN profiles applied successfully for service provider Contoso GSM. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.659 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Adding trusted provisioning certificates for service provider Contoso GSM. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:32.659 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Starting setting of trusted certificates for network provisioning. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:33.016 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Finished setting of trusted certificates for network provisioning. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:33.016 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Trusted provisioning certificates added successfully for service provider Contoso GSM. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:33.017 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Parser task finished. 
[0]0DA8.0A2C::‎2012‎-‎01‎-‎04 09:22:33.017 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]MbaeParserTask completed successfully. 

这些日志显示已正确分析 MobileBroadbandInfo.xml 文件,分析程序任务应用了 WWAN 配置文件 (以及成功更新) 配置文件的 WWAN 服务日志记录,并且分析程序任务设置了 MobileBroadbandInfo.xml中提到的受信任预配证书。

如果进程的任何部分失败,则会记录该失败。 例如,如果数字签名检查在服务提供商图标文件上失败,则日志条目通常如下所示:

[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.271 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Parser task started. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.288 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Parsing metadata for device container with id "{97223B34-36F4-11E1-BC81-00155DE96B01}" for culture "en-US". 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.483 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Starting parse of mobile broadband service information file. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.483 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Metadata package contains no data for culture "en-US". Using fallback data. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.547 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Finished parse of mobile broadband service information file. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.547 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Starting update of stored network account information. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.688 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Digital signature verification failed for file "c:\programdata\microsoft\windows\devicemetadatacache\dmrccache\en-us\B68264FF-E4D1-49B1-AB5F-2B9C1C16EF5D\ServiceInformation\ContosoBroadband.ico". 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.690 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Finished update of stored network account information. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.692 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]Parser task finished. 
[0]0F24.0C70::‎2012‎-‎01‎-‎04 10:09:49.692 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task]MbaeParserTask did not complete successfully.  Error is 0x80070306: One or more errors occurred while processing the request. 

由于分析程序任务运行多次是正常的,你可能会看到多组 [Microsoft-Windows-Mobile-Broadband-Experience-Parser-Task] 日志条目。 在这种情况下,条目集通常是相同的 - 如果它们不相同,则可能指示间歇性问题。

其他资源

使用以下链接详细了解Windows 8.1和Windows 10中的移动宽带: