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

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 文件收集以下属性:

    • 标识元素中,Name 属性将用于服务元数据向导中的包名称字段。
    • 标识元素中,Publisher 属性将用于服务元数据向导中的发布服务器字段。
    • 应用程序 元素中,应用程序子元素中的 Id 属性将用于服务元数据向导中的应用 ID 字段。
  4. 关闭 package.appxmanifest 文件。

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

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

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

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

  2. 右键单击文件,然后单击打开方式

  3. 清除对所有 .appxmanifest 文件使用此应用复选框,单击更多选项,然后单击记事本

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

    • 标识元素中,Name 属性将用于服务元数据向导中的包名称字段。
    • 标识元素中,Publisher 属性将用于服务元数据向导中的发布服务器字段。
    • 应用程序 元素中,应用程序子元素中的 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 解锁? – 如果要要求系统管理员权限才能对 SIM 卡执行 PIN 解锁,请单击选项。

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

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

    • 如果你是使用国际移动订阅者标识 (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 on,然后重新启动计算机。

启用测试签名后,将 *.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,然后按 Enter,停止 DSM 服务。

  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. 如果 AccountsNetworkInterfaceBindings 键不存在,并且你已经插入或打开了移动宽带适配器,请检查 WWAN 日志。

  5. 如果存在部分或全部这些键,则在视图中展开 Accounts 键。 其中应存在一个或多个名称与 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 卡的设备将不具有必要的关联元数据。

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

[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 中移动宽带的详细信息: