Slmgr.vbs 是 Windows 中包含的 Visual Basic 脚本,用作管理作系统许可和激活的命令行工具。 它允许用户安装和更改产品密钥、激活 Windows 并检查其当前的激活或许可状态。 它还支持延长激活宽限期 (重新设置) 和排查与激活相关的问题等任务。
本文中的 Slmgr.vbs 脚本和表的语法描述了每个命令行选项。
slmgr.vbs [<ComputerName> [<User> <Password>]] [<Options>]
注释
在本文中,方括号 “[ ]” 括住可选参数,尖括号 “<>” 括起占位符。 键入这些语句时,请省略括号并使用相应的值替换占位符。
有关使用批量激活的其他软件产品的信息,请参阅为这些应用程序编写的文档。
在远程计算机上使用 Slmgr
要管理远程客户端,请使用批量激活管理工具 (VAMT) 版本 1.2 或更高版本,或创建了解平台之间差异的自定义 WMI 脚本。 有关批量激活的 WMI 属性和方法的详细信息,请参阅 批量激活的 WMI 属性和方法。
重要
由于 Windows 7 和 Windows Server 2008 R2 中的 WMI 更改,Slmgr.vbs 脚本并不适合跨平台工作。 不支持使用 Slmgr.vbs 从 Windows Vista®作系统管理 Windows 7 或 Windows Server 2008 R2 系统。 尝试从 Windows 7 或 Windows Server 2008 R2 管理较旧的系统会生成特定版本不匹配错误。 例如,运行 cscript slmgr.vbs <vista_machine_name> /dlv 将生成以下输出:
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
The remote machine does not support this version of SLMgr.vbs
常规 Slmgr.vbs 选项
选项 | DESCRIPTION |
---|---|
[<计算机名称>] | 远程计算机的名称(默认为 local computer)。 |
[<用户>] | 在远程计算机上具有所需权限的帐户。 |
[<密码>] | 在远程计算机上具有所需权限的帐户的密码。 |
全局选项
选项 | DESCRIPTION |
---|---|
/ipk <产品密钥> | 尝试安装 5×5 产品密钥。 该参数提供的产品密钥被确认有效并适用于已安装的作系统。 否则,将返回错误。 如果密钥有效且适用,则安装密钥。 如果已安装密钥,则会以静默方式替换该密钥。 为防止许可证服务不稳定,应重新启动系统或重新启动软件保护服务。 此作必须从提升的命令提示符窗口运行,或者必须将 Standard User Operations 注册表值设置为允许非特权用户对软件保护服务的额外访问权限。 |
/ato [<激活 ID>] | 对于安装了 KMS 主机密钥或多次激活密钥 (MAK) 的零售版和卷系统, /ato 会提示 Windows 尝试联机激活。 对于安装了通用批量许可证密钥 (GVLK) 的系统,这会提示尝试 KMS 激活。 设置为暂停自动 KMS 激活尝试 (/stao) 的系统在运行 /ato 时仍会尝试 KMS 激活。 注意: 从 Windows 8(和 Windows Server 2012)开始, /stao 选项已弃用。 请改用 /act-type 选项。 参数 <Activation ID> 扩展了 /ato 支持,以标识计算机上安装的 Windows 版本。 指定 <Activation ID> 参数会将选项的效果与与该激活 ID 关联的版本隔离开来。 运行 slmgr.vbs /dlv all 以获取已安装 Windows 版本的激活 ID。 如果您必须支持其他应用程序,请参阅该应用程序提供的指南以获取进一步的说明。 KMS 激活不需要提升的权限。 但是,联机激活确实需要提升,或者必须将 Standard User Operations 注册表值设置为允许非特权用户对软件保护服务的额外访问权限。 |
/dli [<激活 ID> |全部] | 显示许可证信息。 默认情况下, /dli 显示已安装的活动 Windows 版本的许可证信息。 指定 <Activation ID> 参数将显示与该激活 ID 关联的指定版本的许可证信息。 将 All 指定为参数将显示所有适用的已安装产品的许可证信息。 此作不需要提升的权限。 |
/dlv [<激活 ID> |全部] | 显示详细的许可证信息。 默认情况下, /dlv 显示已安装作系统的许可证信息。 指定 <Activation ID> 参数将显示与该激活 ID 关联的指定版本的许可证信息。 指定 All 参数将显示所有适用的已安装产品的许可证信息。 此作不需要提升的权限。 |
/xpr [<激活 ID>] | 显示产品的激活到期日期。 默认情况下,这是指当前的 Windows 版本,主要对 KMS 客户端有用,因为 MAK 和零售激活是永久的。 指定 <Activation ID (激活 ID> ) 参数将显示与该激活 ID 关联的指定版本的激活到期日期。 |
高级选项
选项 | DESCRIPTION |
---|---|
/cpky | 某些维护作要求在全新体验 (OOBE)作期间在注册表中提供产品密钥。
/cpky 选项从注册表中删除产品密钥,以防止此密钥被恶意代码窃取。 对于部署密钥的零售安装,最佳实践建议运行此选项。 MAK 和 KMS 主机密钥不需要此选项,因为这是这些密钥的默认行为。 只有其默认行为不是从注册表中清除注册表项的其他类型的键才需要此选项。 此作必须在提升的命令提示符窗口中运行。 |
/ilc <license_file> | 此选项将安装由 required 参数指定的许可证文件。 这些许可证可以作为故障排除措施安装,以支持基于令牌的激活,或者作为已载入应用程序的手动安装的一部分。 在此过程中不验证许可证:许可证验证超出 Slmgr.vbs 的范围。 相反,验证由软件保护服务在运行时处理。 此作必须从提升的命令提示符窗口运行,或者必须将 Standard User Operations 注册表值设置为允许非特权用户对软件保护服务的额外访问权限。 |
/rilc | 此选项将重新安装存储在 %SystemRoot%\system32\oem 和 %SystemRoot%\System32\spp\tokens 中的所有许可证。 这些是在安装过程中存储的“已知良好”副本。 受信任存储区中的任何匹配许可证都将被替换。 任何其他许可证(例如,可信颁发机构 (TA) 颁发许可证 (IL)、应用程序许可证)都不会受到影响。 此作必须在提升的命令提示符窗口中运行,或者必须将 Standard User Operations 注册表值设置为允许非特权用户对软件保护服务的额外访问权限。 |
/rearm 命令 | 此选项将重置激活计时器。
/rearm 进程也由 sysprep /generalize 调用。 如果 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\SkipRearm 注册表项设置为 1,则此作不执行任何作。 有关此注册表项的详细信息,请参阅 批量激活的注册表设置 。 此作必须在提升的命令提示符窗口中运行,或者必须将 Standard User Operations 注册表值设置为允许非特权用户对软件保护服务的额外访问权限。 |
/rearm-app <应用程序 ID> | 重置指定应用程序的许可状态。 |
/rearm-sku <应用程序 ID> | 重置指定 SKU 的许可状态。 |
/upk [<应用程序 ID>] | 此选项将卸载当前 Windows 版本的产品密钥。 重启后,除非安装了新的产品密钥,否则系统将处于 Unlicensed 状态。 (可选)您可以使用 <Activation ID> 参数指定其他已安装的产品。 此作必须从提升的命令提示符窗口运行。 |
/dti [<激活 ID>] | 显示脱机激活的安装 ID。 |
/atp <确认 ID> | 使用用户提供的确认 ID 激活产品。 |
KMS 客户端选项
选项 | DESCRIPTION |
---|---|
/skms <名称 [:P ort] | : 端口> [<激活 ID>] | 此选项指定要联系的 KMS 主计算机的名称和端口(可选)。 设置此值将禁用 KMS 主机的自动检测。 如果 KMS 主机仅使用 Internet 协议版本 6 (IPv6),则必须以 hostname>:<port> 格式<指定地址。 IPv6 地址包含冒号 (:),Slmgr.vbs 脚本无法正确解析。 此作必须在提升的命令提示符窗口中运行。 |
/skms-domain <FQDN> [<激活 ID>] | 设置可在其中找到所有 KMS SRV 记录的特定 DNS 域。 如果使用 /skms 选项设置特定的单个 KMS 主机,则此设置无效。 使用此选项(尤其是在不相交的命名空间环境中)可强制 KMS 忽略 DNS 后缀搜索列表,并改为在指定的 DNS 域中查找 KMS 主机记录。 |
/ckms [<激活 ID>] | 此选项将从注册表中删除指定的 KMS 主机名、地址和端口信息,并恢复 KMS 自动发现行为。 此作必须在提升的命令提示符窗口中运行。 |
/skhc | 此选项启用 KMS 主机缓存 (默认)。 在客户端发现正常工作的 KMS 主机后,此设置可防止域名系统 (DNS) 优先级和权重影响与主机的进一步通信。 如果系统无法再联系正在运行的 KMS 主机,则客户端将尝试发现新主机。 此作必须在提升的命令提示符窗口中运行。 |
/CKHC | 此选项将禁用 KMS 主机缓存。 此设置指示客户端在每次尝试 KMS 激活时使用 DNS 自动发现(建议使用优先级和权重时)。 此作必须在提升的命令提示符窗口中运行。 |
KMS 主机配置选项
选项 | DESCRIPTION |
---|---|
/sai <间隔> | 此选项设置未激活的客户端尝试连接到 KMS 的间隔(以分钟为单位)。 激活间隔必须介于 15 分钟到 30 天之间,但建议使用默认值 (2 小时)。 KMS 客户端最初从注册表中选取此间隔,但在收到第一个 KMS 响应后切换到 KMS 设置。 此作必须在提升的命令提示符窗口中运行。 |
/sri <间隔> | 此选项设置已激活的客户端尝试连接到 KMS 的续订间隔(以分钟为单位)。 续订间隔必须介于 15 分钟到 30 天之间。 此选项最初在 KMS 服务器和客户端上设置。 默认值为 10080 分钟 (7 天)。 KMS 客户端最初从注册表中获取此间隔,但在收到第一个 KMS 响应后切换到 KMS 设置。 此作必须在提升的命令提示符窗口中运行。 |
/sprt <端口> | 此选项设置 KMS 主机侦听客户端激活请求的端口。 默认 TCP 端口为 1688。 此作必须从提升的命令提示符窗口运行。 |
/sdns | 启用 KMS 主机的 DNS 发布(默认)。 此作必须在提升的命令提示符窗口中运行。 |
/cdns | 禁用 KMS 主机的 DNS 发布。 此作必须在提升的命令提示符窗口中运行。 |
/spri | 将 KMS 优先级设置为 normal(正常)(默认)。 此作必须在提升的命令提示符窗口中运行。 |
/cpri | 将 KMS priority (KMS 优先级) 设置为 low (低)。 使用此选项可最大程度地减少来自共同托管环境中 KMS 的争用,这可能会导致 KMS 匮乏,具体取决于处于活动状态的其他应用程序或服务器角色。 请小心使用。 此作必须在提升的命令提示符窗口中运行。 |
/act-type [<激活类型>] [<激活 ID>] | 此选项在注册表中设置一个值,该值将批量激活限制为单个类型。 激活类型 1 将激活限制为仅 Active Directory; 2 将其限制为 KMS 激活; 3 转换为基于令牌的激活。 0 选项允许任何激活类型,并且是默认值。 |
基于令牌的激活配置选项
选项 | DESCRIPTION |
---|---|
/莉莉 | 列出已安装的基于令牌的激活颁发许可证。 |
/ril <ILID><ILvID> | 删除已安装的基于令牌的激活颁发许可证。 此作必须从提升的命令提示符窗口运行。 |
/stao | 设置 Token-based Activation Only (仅基于令牌的激活 ) 标志,禁用自动 KMS 激活。 此作必须在提升的命令提示符窗口中运行。 此选项在 Windows Server 2012 R2 和 Windows 8.1 中删除。 请改用 /act–type 选项。 |
/CTAO | 清除 Token-based Activation Only 标志(默认),启用自动 KMS 激活。 此作必须在提升的命令提示符窗口中运行。 此选项在 Windows Server 2012 R2 和 Windows 8.1 中删除。 请改用 /act–type 选项。 |
/LTC | 列出可以激活已安装软件的有效基于令牌的激活证书。 |
/fta <证书指纹> [<PIN]> | 使用已识别的证书强制基于令牌的激活。 如果您使用受硬件保护的证书(例如,智能卡),则提供可选的个人标识号 (PIN) 以解锁私钥,而无需 PIN 提示。 |
基于 Active Directory 的激活配置选项
选项 | DESCRIPTION |
---|---|
/ad-activation-online <产品密钥> [<激活对象名称>] | 收集 Active Directory 数据并使用命令提示符正在运行的凭据启动 Active Directory 林激活。 不需要本地管理员访问权限。 但是,需要对林的根域中的激活对象容器具有读/写访问权限。 |
/ad-activation-get-IID <产品密钥> | 此选项在电话模式下启动 Active Directory 林激活。 输出是安装 ID (IID),如果 Internet 连接不可用,则可用于通过电话激活林。 在激活电话呼叫中提供 IID 后,将返回用于完成激活的 CID。 |
/ad-activation-apply-cid <产品密钥><确认 ID> [<激活对象名称>] | 使用此选项时,请输入激活电话呼叫中提供的 CID 以完成激活 |
[/姓名: <AO_Name>] | (可选)您可以将 /name 选项附加到这些命令中的任何一个,以指定存储在 Active Directory 中的激活对象的名称。 名称不得超过 40 个 Unicode 字符。 使用双引号显式定义名称字符串。 在 Windows Server 2012 R2 和 Windows 8.1 中,您可以直接在 /ad-activation-online <产品密钥>和 /ad-activation-apply-cid 之后附加名称,而无需使用 /name 选项。 |
/ao-list | 显示本地计算机可用的所有激活对象。 |
/del-ao <AO_DN> /del-ao <AO_RDN> |
从林中删除指定的激活对象。 |