重置 Microsoft 365 企业应用版的激活状态
本文由高级支持呈报工程师 Eric Splichal、Microsoft 365 Apps 管理员 Matt Philipenko 和客户工程师 Tim Johnson 撰写和维护。
你可能需要为组织执行以下任务:
- 租户到租户迁移
- 将设备重新用于不同的用户
- 更改设备上 Microsoft 365 的许可证模式
要完成这些任务,需要清除之前激活的 Microsoft 365 企业应用版,以删除其相关许可证和缓存的 Office 帐户信息。 此删除会将应用程序重置为干净状态。 然后,可以使用不同的 Office 帐户激活它们或更改为其他许可证模式。 要重置激活状态,请关闭所有 Office 应用程序并使用以下方法。
注意
- 以下步骤也适用于 Microsoft Project 和 Microsoft Visio。
- 本文中的步骤和脚本适用于 Office 应用的 Windows 安装。 对于 Office for Mac 安装,请参阅如何在 Mac 上删除 Office 许可证文件。
方法:使用 Microsoft 支持和恢复助手
助手完全自动完成重置 Office 激活所需的所有步骤,并提供两个版本。 使用适合你要求的版本。
-
企业(命令行)版助手
企业版助手是一个可以编写脚本的命令行版本,建议使用该版本在多个设备和无法立即访问的设备上重置 Office 激活。 -
UI 版本
如果需要在单个设备上或在少数个人设备上重置 Office 激活,建议使用 UI 版本的助手。
方法:使用脚本自动执行清理过程
运行以下脚本来自动执行流程的每个部分。 我们建议运行下面列出的 OLicenseCleanup.vbs 和 signoutofwamaccounts.ps1 脚本,而仅当设备是工作区加入时才需要 WPJCleanUp.cmd。 有关每个脚本自动执行的特定步骤的详细信息,请选择相关的“详细信息”链接。 使用“选择是否使用自动化脚本”链接导航回此方法。
- 要删除以前的许可证和缓存的帐户信息:下载 OLicenseCleanup.zip 文件,解压缩 OLicenseCleanup.vbs 脚本,然后使用提升的权限运行它。 详细信息
- 要清除设备上与 Office 关联的 WAM 帐户:下载 signoutofwamaccounts.zip 文件,解压缩并以提升的权限运行 signoutofwamaccounts.ps1 脚本。 如果将 signoutofwamaccounts.ps1 保存在与 OLicenseCleanup.vbs 相同的位置,那么它将在运行 OLicenseCleanup.vbs 时自动执行。 详细信息
- 要删除工作区加入的帐户,请下载 WPJCleanUp.zip,解压缩“WPJCleanUp”文件夹,然后运行“WPJCleanUp.cmd”。 详细信息
方法:手动清除之前的激活信息
如果更喜欢手动执行清理过程的步骤,请使用此方法中的信息。 此过程包括以下部分。
A 部分:删除 Office 许可证和缓存帐户
本节分为三个部分。 某些部分需要编辑注册表项。
重要
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。
第 1 部分:删除以前的 Office 激活
检查并删除设备上的现有许可证。 确保检查所有注明的位置以获取潜在的许可证类型,包括 vNext、共享计算机激活和旧版许可证。
如果在以下位置找到所有许可证令牌文件和文件夹,请删除:
- 对于 vNext 许可证类型:
-
%localappdata%\Microsoft\Office\Licenses
(Microsoft 365 应用企业版 1909 或更高版本)
- 对于共享计算机激活许可证类型:
%localappdata%\Microsoft\Office\16.0\Licensing
使用 ospp.vbs 脚本检查并删除旧版许可。
重要提示请确保:
- 如果要在远程计算机上运行脚本,Windows 防火墙允许远程计算机上的 Windows Management Instrumentation (WMI) 通信。
- 你使用的用户帐户是运行脚本的计算机上管理员组的成员。
在运行 ospp.vbs 脚本之前,必须设置正确的目录。 根据你的 Office 安装,在提升的命令提示符下运行以下命令:
- 对于 64 位操作系统上的 64 位 Office 安装:
cd "C:\Program Files\Microsoft Office\Office16"
- 对于 64 位操作系统上的 32 位 Office 安装:
cd "C:\Program Files (x86)\Microsoft Office\Office16"
运行以下命令以获取当前使用的许可证列表:
cscript ospp.vbs /dstatus
输出采用以下格式:
注意 输出可能包括多个应用程序的许可证。 如果显示“未检测到已安装的产品密钥”,则跳过步骤 4 和 5 并转到下面的步骤 6,“删除以下注册表项”。
如果为要删除其许可的应用程序返回部分产品密钥,请注意已安装产品密钥的最后 5 个字符显示的值,以便在下面的步骤 4 中使用。
运行以下命令以使用关联的部分产品密钥删除应用程序的许可证:
cscript ospp.vbs /unpkey:<last 5 characters of product key>
- 例如:
cscript ospp.vbs /unpkey:2WC00
删除许可证后,应该会看到消息“产品密钥卸载成功”。
根据需要重复 cscript ospp.vbs /unpkey
命令以删除步骤 3 的输出中列出的应用程序的许可证。
删除以下注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Licensing
第 2 部分:删除 HKCU 注册表中缓存的 Office 帐户标识
删除以下注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Identity
如果启用了共享计算机激活,请从HKEY_USERS\<The user SID>\Software\Microsoft\Office\16.0\Common
注册表项中删除标识注册表项位置。 要获取当前登录用户的 SID,请在非提升的命令提示符下运行命令 whoami /user
。
第 3 部分:删除存储在 Windows 凭据管理器中的 Office 凭据
打开“控制面板”>“凭据管理器”。
选择“Windows 凭据”。
选择每个凭据旁边的下拉箭头删除为 Office 列出的所有凭据,然后选择“删除”。
检查并删除以下注册表项下存在的任何值:HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System
B 部分:清除托管设备的缓存 Office 凭据
对于托管设备,需要从其他位置删除缓存的 Office 凭据。 如果设备是 Microsoft Entra 联接 (AADJ)、Microsoft Entra 混合联接 (HAADJ) 或工作区联接 (WPJ),则被视为托管设备。 这些配置使用 Web 帐户管理 (WAM),将凭据存储在不同的位置。
对于 AADJ 和 HAADJ 设备,无法手动运行任何步骤来清除设备上与 Office 关联的 WAM 帐户。
下载 signoutofwamaccounts.zip 文件,解压缩并以管理员身份运行 signoutofwamaccounts.ps1 脚本。
signoutofwamaccounts.ps1 脚本将删除与 Office 关联的令牌和帐户,并且可以安全运行。 在 AADJ 和 HAADJ 设备上,它不会影响应用程序的单点登录 (SSO) 状态和设备状态。
该脚本只能在 Windows 10 版本 1803 及更高版本上运行。 如果操作系统不兼容,会出现通知“不支持的 Windows 10 版本!”。
要检查设备是否被托管,请在提升的命令提示符下运行 dsregcmd /status
命令。
在显示的输出中,检查“设备状态”部分中 AzureAdJoined、EnterpriseJoined 和 DomainJoined 参数的值。 然后使用下表来确定设备是 AADJ 还是 HAADJ:
AzureAdJoined
EnterpriseJoined
DomainJoined
设备状态
是
否
否
Microsoft Entra 联接 (AADJ)
否
否
是
已加入域 (DJ)
是
否
是
已加入混合 Azure AD (HAADJ)
有关详细信息,请参阅使用 dsregcmd 命令对设备进行故障排除。
C 部分:清除工作区加入帐户
在设备上清除 WPJ 帐户时,当前 Windows 会话的单点登录 (SSO) 行为也将被删除。 当前 Windows 会话中的所有应用程序都将失去 SSO 状态,设备将从管理工具中取消注册,并从云中注销。 下次尝试打开应用程序时,系统会要求你登录。
如果不确定,请检查设备是否已加入工作区。 如上面 B 部分所述,在提升的命令提示符下运行 dsregcmd /status
命令。
工作区联接 (WPJ)(Microsoft Entra 注册)设备的状态显示在输出的“用户状态”部分。 如果 WorkplaceJoined 参数显示的值为“是”,则表明设备已加入工作区。
要清除 WPJ 帐户:
- 在设备上选择“开始”按钮,然后选择“设置”。
- 选择“帐户”>“访问工作或学校帐户”。
- 选择想要删除的工作或学校帐户,然后选择“断开连接”。
References
本节分为三个部分。 某些部分需要编辑注册表项。
重要
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。
第 1 部分:删除以前的 Office 激活
检查并删除设备上的现有许可证。 确保检查所有注明的位置以获取潜在的许可证类型,包括 vNext、共享计算机激活和旧版许可证。
如果在以下位置找到所有许可证令牌文件和文件夹,请删除:
- 对于 vNext 许可证类型:
-
%localappdata%\Microsoft\Office\Licenses
(Microsoft 365 应用企业版 1909 或更高版本)
- 对于共享计算机激活许可证类型:
%localappdata%\Microsoft\Office\16.0\Licensing
使用 ospp.vbs 脚本检查并删除旧版许可。
重要提示请确保:
- 如果要在远程计算机上运行脚本,Windows 防火墙允许远程计算机上的 Windows Management Instrumentation (WMI) 通信。
- 你使用的用户帐户是运行脚本的计算机上管理员组的成员。
在运行 ospp.vbs 脚本之前,必须设置正确的目录。 根据你的 Office 安装,在提升的命令提示符下运行以下命令:
- 对于 64 位操作系统上的 64 位 Office 安装:
cd "C:\Program Files\Microsoft Office\Office16"
- 对于 64 位操作系统上的 32 位 Office 安装:
cd "C:\Program Files (x86)\Microsoft Office\Office16"
运行以下命令以获取当前使用的许可证列表:
cscript ospp.vbs /dstatus
输出采用以下格式:
注意 输出可能包括多个应用程序的许可证。 如果显示“未检测到已安装的产品密钥”,则跳过步骤 4 和 5 并转到下面的步骤 6,“删除以下注册表项”。
如果为要删除其许可的应用程序返回部分产品密钥,请注意已安装产品密钥的最后 5 个字符显示的值,以便在下面的步骤 4 中使用。
运行以下命令以使用关联的部分产品密钥删除应用程序的许可证:
cscript ospp.vbs /unpkey:<last 5 characters of product key>
- 例如:
cscript ospp.vbs /unpkey:2WC00
删除许可证后,应该会看到消息“产品密钥卸载成功”。
根据需要重复 cscript ospp.vbs /unpkey
命令以删除步骤 3 的输出中列出的应用程序的许可证。
删除以下注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Licensing
第 2 部分:删除 HKCU 注册表中缓存的 Office 帐户标识
删除以下注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Identity
如果启用了共享计算机激活,请从HKEY_USERS\<The user SID>\Software\Microsoft\Office\16.0\Common
注册表项中删除标识注册表项位置。 要获取当前登录用户的 SID,请在非提升的命令提示符下运行命令 whoami /user
。
第 3 部分:删除存储在 Windows 凭据管理器中的 Office 凭据
打开“控制面板”>“凭据管理器”。
选择“Windows 凭据”。
选择每个凭据旁边的下拉箭头删除为 Office 列出的所有凭据,然后选择“删除”。
检查并删除以下注册表项下存在的任何值:HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System
检查并删除设备上的现有许可证。 确保检查所有注明的位置以获取潜在的许可证类型,包括 vNext、共享计算机激活和旧版许可证。
如果在以下位置找到所有许可证令牌文件和文件夹,请删除:
- 对于 vNext 许可证类型:
-
%localappdata%\Microsoft\Office\Licenses
(Microsoft 365 应用企业版 1909 或更高版本)
-
- 对于共享计算机激活许可证类型:
%localappdata%\Microsoft\Office\16.0\Licensing
- 对于 vNext 许可证类型:
使用 ospp.vbs 脚本检查并删除旧版许可。
重要提示请确保:
- 如果要在远程计算机上运行脚本,Windows 防火墙允许远程计算机上的 Windows Management Instrumentation (WMI) 通信。
- 你使用的用户帐户是运行脚本的计算机上管理员组的成员。
在运行 ospp.vbs 脚本之前,必须设置正确的目录。 根据你的 Office 安装,在提升的命令提示符下运行以下命令:
- 对于 64 位操作系统上的 64 位 Office 安装:
cd "C:\Program Files\Microsoft Office\Office16"
- 对于 64 位操作系统上的 32 位 Office 安装:
cd "C:\Program Files (x86)\Microsoft Office\Office16"
- 对于 64 位操作系统上的 64 位 Office 安装:
运行以下命令以获取当前使用的许可证列表:
cscript ospp.vbs /dstatus
输出采用以下格式:
注意 输出可能包括多个应用程序的许可证。 如果显示“未检测到已安装的产品密钥”,则跳过步骤 4 和 5 并转到下面的步骤 6,“删除以下注册表项”。
如果为要删除其许可的应用程序返回部分产品密钥,请注意已安装产品密钥的最后 5 个字符显示的值,以便在下面的步骤 4 中使用。
运行以下命令以使用关联的部分产品密钥删除应用程序的许可证:
cscript ospp.vbs /unpkey:<last 5 characters of product key>
- 例如:
cscript ospp.vbs /unpkey:2WC00
- 例如:
删除许可证后,应该会看到消息“产品密钥卸载成功”。
根据需要重复
cscript ospp.vbs /unpkey
命令以删除步骤 3 的输出中列出的应用程序的许可证。删除以下注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Licensing
第 2 部分:删除 HKCU 注册表中缓存的 Office 帐户标识
删除以下注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Identity
如果启用了共享计算机激活,请从HKEY_USERS\<The user SID>\Software\Microsoft\Office\16.0\Common
注册表项中删除标识注册表项位置。 要获取当前登录用户的 SID,请在非提升的命令提示符下运行命令 whoami /user
。
第 3 部分:删除存储在 Windows 凭据管理器中的 Office 凭据
打开“控制面板”>“凭据管理器”。
选择“Windows 凭据”。
选择每个凭据旁边的下拉箭头删除为 Office 列出的所有凭据,然后选择“删除”。
检查并删除以下注册表项下存在的任何值:
HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System
B 部分:清除托管设备的缓存 Office 凭据
对于托管设备,需要从其他位置删除缓存的 Office 凭据。 如果设备是 Microsoft Entra 联接 (AADJ)、Microsoft Entra 混合联接 (HAADJ) 或工作区联接 (WPJ),则被视为托管设备。 这些配置使用 Web 帐户管理 (WAM),将凭据存储在不同的位置。
对于 AADJ 和 HAADJ 设备,无法手动运行任何步骤来清除设备上与 Office 关联的 WAM 帐户。
下载 signoutofwamaccounts.zip 文件,解压缩并以管理员身份运行 signoutofwamaccounts.ps1 脚本。
signoutofwamaccounts.ps1 脚本将删除与 Office 关联的令牌和帐户,并且可以安全运行。 在 AADJ 和 HAADJ 设备上,它不会影响应用程序的单点登录 (SSO) 状态和设备状态。
该脚本只能在 Windows 10 版本 1803 及更高版本上运行。 如果操作系统不兼容,会出现通知“不支持的 Windows 10 版本!”。
要检查设备是否被托管,请在提升的命令提示符下运行 dsregcmd /status
命令。
在显示的输出中,检查“设备状态”部分中 AzureAdJoined、EnterpriseJoined 和 DomainJoined 参数的值。 然后使用下表来确定设备是 AADJ 还是 HAADJ:
AzureAdJoined | EnterpriseJoined | DomainJoined | 设备状态 |
---|---|---|---|
是 | 否 | 否 | Microsoft Entra 联接 (AADJ) |
否 | 否 | 是 | 已加入域 (DJ) |
是 | 否 | 是 | 已加入混合 Azure AD (HAADJ) |
有关详细信息,请参阅使用 dsregcmd 命令对设备进行故障排除。
C 部分:清除工作区加入帐户
在设备上清除 WPJ 帐户时,当前 Windows 会话的单点登录 (SSO) 行为也将被删除。 当前 Windows 会话中的所有应用程序都将失去 SSO 状态,设备将从管理工具中取消注册,并从云中注销。 下次尝试打开应用程序时,系统会要求你登录。
如果不确定,请检查设备是否已加入工作区。 如上面 B 部分所述,在提升的命令提示符下运行 dsregcmd /status
命令。
工作区联接 (WPJ)(Microsoft Entra 注册)设备的状态显示在输出的“用户状态”部分。 如果 WorkplaceJoined 参数显示的值为“是”,则表明设备已加入工作区。
要清除 WPJ 帐户:
- 在设备上选择“开始”按钮,然后选择“设置”。
- 选择“帐户”>“访问工作或学校帐户”。
- 选择想要删除的工作或学校帐户,然后选择“断开连接”。