> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 玩家数据重置工具 (XblPlayerDataReset.exe)

> 命令行工具 XblPlayerDataReset.exe，用于在 XBOX 服务沙盒中重置一位或一组玩家的成就、排行榜、统计信息以及游戏历史记录。

<Note>
  2026 年 8 月,我们修复了一个问题:即使帐户已在合作伙伴中心被授予正确的权限,通过 XUID 重置玩家数据时仍会出现权限错误 (HTTP 401)。此修复是在 XBOX 服务后端完成的,因此会自动生效。你无需安装新版本的 GDK、XBOX 服务工具包或该工具本身。如果你以前遇到过此错误并采取了变通方法,或曾被告知你的合作伙伴中心权限配置有误,可以按照下面的步骤重试该工具。[通过 XUID 重置](#reset-by-xuid) 中所述的 "Tools Access" 权限仍然是必需的。
</Note>

玩家数据重置工具可用于在测试沙盒中重置一位玩家或一组玩家的数据。你可以重置成就、排行榜、统计信息和游戏历史记录等数据。可以通过电子邮件地址或 XUID 重置单个帐户。若要通过 XUID 重置,你必须先运行 XblDevAccount.exe 工具来登录拥有待重置帐户的合作伙伴中心帐户。若要通过测试帐户的电子邮件地址重置,你需要知道该测试帐户的密码。

该工具不会重置玩家的关联存储(游戏存档)。若要管理关联存储,请参阅 [关联存储工具 (XblConnectedStorage.exe)](/tools/tools-services/live-connected-storage-tool)。

此命令行工具是 GDK 的一部分,也单独是 XBOX 服务工具包的一部分。若要了解如何获取 XblPlayerDataReset.exe 工具,请参阅 [XBOX 服务开发工具](/tools/tools-services/live-tools)。

`--xuid`、`--user` 和 `--file` 选项互斥。请只指定其中一个,并同时指定 `--scid` 和 `--sandbox`。

## 通过 XUID 重置

若要使用玩家数据重置工具通过 XUID 重置用户,用于登录的开发者帐户(通过 XblDevAccount.exe)必须对特定产品拥有适当的权限。请注意,"Tools Access" 不是帐户级权限,而是产品级权限。因此,你必须为要重置玩家数据的每个产品单独授予 "Tools Access" 权限。

1. 使用具有管理员权限的开发者帐户登录合作伙伴中心。
2. 导航到帐户设置 => [用户页面](https://partner.microsoft.com/dashboard/account/usermanagement)。
3. 单击需要 "Tools Access" 权限的用户或组。
4. 如果用户或组当前被分配到标准角色(例如 Developer),你需要切换到 "Customize permissions"(自定义权限)。
5. 在下一页,移到 "Product-level"(产品级)权限表,展开 "XBOX Live" 表头,并找到 "Tools access" 列。
6. 明确勾选你要为其授予 "Tools Access" 权限的产品或产品组的该复选框。

在设置好权限后,可以按如下方式重置测试帐户数据:

```cmd theme={null}
XblPlayerDataReset.exe --scid <SCID> --sandbox <SNDBOX.0> --xuid <XUID1,XUID2,XUID3,...>
```

## 通过电子邮件地址重置

若要通过测试帐户电子邮件地址重置,你需要知道每个测试帐户的密码。使用以下命令,它将弹出一个窗口,供你以测试用户身份登录:

```cmd theme={null}
XblPlayerDataReset.exe --scid <SCID> --sandbox <SNDBOX.0> --user <XXXXXX-aaa@xboxtest.com,XXXXXX-bbb@xboxtest.com,...>
```

## 通过文件重置

若要通过文件重置,你可以传递 XUID 分隔文件、电子邮件分隔文件或 [合作伙伴中心帐户导出](/services/xbox-services/develop/test-accounts/live-exporting-test-accounts) 的文件位置。

```cmd theme={null}
XblPlayerDataReset.exe --scid <SCID> --sandbox <SNDBOX.0> --file </path/to/file>
```

对于分隔文件,工具会检查第一行来决定如何读取该文件。如果该行包含 `@` 字符,则整个文件被视为电子邮件地址列表;否则被视为 XUID 列表。请勿在分隔文件中包含标题行,因为它会被解析为一个帐户。

合作伙伴中心帐户导出会被自动检测,但仅当原始标题行存在且未被修改时:

```text theme={null}
Xuid,Email,Gamertag,IsDeleted,AccountId,Etag,Subscriptions,Keywords
```

如果你在电子表格应用程序中打开导出文件,并在重新排序或重命名列后保存,标题行将不再被识别,该文件将被作为普通分隔文件读取。

<Warning>
  在从合作伙伴中心帐户导出重置之前,请先使用 XblDevAccount.exe 登录。当已登录合作伙伴中心帐户时,工具会读取 `Xuid` 列并直接重置这些帐户,无需进一步提示。当没有帐户登录时,工具会回退到 `Email` 列,并提示你输入文件中每个帐户的密码。
</Warning>

## 分隔符选项

你可以选择为 `--xuid` 和 `--user` 选项以及传递给 `--file` 的分隔文件设置自定义分隔符。默认分隔符是逗号 (,)。

```cmd theme={null}
XblPlayerDataReset.exe --scid <SCID> --sandbox <SNDBOX.0> --xuid <XUID1*XUID2*XUID3*...> --delimiter *
XblPlayerDataReset.exe --scid <SCID> --sandbox <SNDBOX.0> --user <XXXXXX-aaa@xboxtest.com$XXXXXX-bbb@xboxtest.com$...> --delimiter $
XblPlayerDataReset.exe --scid <SCID> --sandbox <SNDBOX.0> --file </path/to/file> --delimiter %
```

只会使用该值的第一个字符。如果你传递的值超过一个字符,其余字符会被忽略,而不会被视为多字符分隔符。

当传递给 `--file` 的文件是合作伙伴中心帐户导出时,分隔符会被忽略,因为该格式始终以逗号分隔。

## 帐户的处理方式

帐户的处理方式取决于你使用的选项。

当你通过 XUID 重置,或从解析为 XUID 的文件重置时,帐户会以每批最多 10 个的方式处理。同一批中的帐户会并行重置,各批依次运行。

当你通过电子邮件地址重置时,帐户会逐个处理,因为每个帐户都必须单独登录。如果任何测试帐户登录失败,工具会立即停止,列表中剩余的帐户将不再尝试。

每个帐户在被报告为失败之前会自动重试最多五次,并且工具会等待服务完成每次重置后再继续。因此,单个帐户可能最多需要大约一分钟才能报告最终结果。请让工具自行完成而不要取消它,尤其是在重置大型列表时。

## 输出

如果命令成功或失败,你将看到类似以下的输出。

***成功***

```cmd theme={null}
Resetting player data for SCID <SCID> in sandbox <SNDBOX.0>
Using Dev account contoso@contoso.com from WindowsDevCenter
Processing batch of 2 account(s).
Resetting player 2814000000000001 result: Succeeded
Resetting player 2814000000000002 result: Succeeded
Player data has been reset successfully.
```

***错误***

```cmd theme={null}
Resetting player data for SCID <SCID> in sandbox <SNDBOX.0>
Using Dev account contoso@contoso.com from WindowsDevCenter
Processing batch of 1 account(s).
Resetting player 2814000000000001 result: CompletedError. Will retry.
Retrying 1 accounts. 4 more attempt(s).
Failed to reset 1 account(s): 2814000000000001
An error occurred while resetting player data:
```

重置也可能超时。超时表示工具停止等待结果,而不表示重置一定失败。作业可能仍会在服务中完成。

```cmd theme={null}
Player data reset has timed out:
```

## 退出代码

工具成功时返回 0,失败时返回 -1。当你从脚本或自动化测试环节调用该工具时,请检查退出代码,而不要依赖控制台文本。

<Warning>
  在两种未重置任何内容的情况下,工具也会返回 0:一是未指定 `--xuid`、`--user` 或 `--file` 中的任何一个,二是传递给 `--file` 的文件无法读取。如果你的自动化流程只检查退出代码,这些情况看起来可能像是成功运行。请确认输出中包含你预期要重置的每个帐户的结果行。
</Warning>

## 疑难解答

### Unable to authorize the account with XBOX Live

```cmd theme={null}
Unable to authorize the account with XBOX Live and scid : <SCID> and sandbox : <SNDBOX.0>, please contact your administrator.
```

此消息伴随 HTTP 401 错误出现。在 2026 年 8 月之前,一个服务端问题会导致所有通过 XUID 重置的开发者遇到此错误,包括合作伙伴中心权限配置正确的开发者。该问题已修复,并且此修复不需要更新工具或 GDK。

如果你仍然看到此错误,请确认已登录的帐户对该产品拥有 "Tools Access" 权限(如 [通过 XUID 重置](#reset-by-xuid) 中所述),并确认 SCID 和沙盒与你所针对的产品匹配。如果你最近在合作伙伴中心更改了权限,请使用 XblDevAccount.exe 注销并重新登录,以便颁发新令牌。

### Your account doesn't have access to perform the operation

```cmd theme={null}
Your account doesn't have access to perform the operation, please contact your administrator.
```

此消息伴随 HTTP 403 错误出现。请为该产品授予 "Tools Access" 权限,如 [通过 XUID 重置](#reset-by-xuid) 中所述。

### Resetting by XUID requires a signed in Partner Center account

```cmd theme={null}
Resetting by XUID requires a signed in Partner Center account. Please use "XblDevAccount.exe signin" to log in.
```

在通过 XUID 重置之前,或在从合作伙伴中心帐户导出重置之前,请先运行 `XblDevAccount.exe signin`。

### Failed to log in to test account

```cmd theme={null}
Failed to log in to test account <XXXXXX-aaa@xboxtest.com>.
```

工具无法登录该测试帐户。请验证电子邮件地址和密码,并确认该帐户属于你传递给 `--sandbox` 的沙盒。发生此错误时工具会停止,因此列表中剩余的帐户不会被重置。


## Related topics

- [XBOX 服务开发工具](/zh-CN/tools/tools-services/live-tools.md)
- [XBOX 服务工具](/zh-CN/tools/tools-services/live-tools-nav.md)
- [Stats 与成就](/zh-CN/build/steam-porting-guide/features/stats-and-achievements.md)
- [玩家数据](/zh-CN/services/playfab/player-progression/player-data/index.md)
- [面向 XBOX 与 PlayFab 的在线服务工具](/zh-CN/tools/tools-services/index.md)
