使用带有批处理命令的BIOS产品密钥激活Windows 8.1

时间:2015-04-12 07:39:12

标签: windows batch-file command wmic

我需要将Windows映像部署到Windows 8.1附带的几台计算机上。 我确实设法为安装映像注入驱动程序和更新以及一些必要的软件,但不知何故,似乎只安装Windows不会激活操作系统,我必须找到嵌入BIOS中的许可证密钥并手动激活它们。

我发现可以使用wmic path softwarelicenseingservice get oa3xoriginalproductkey从BIOS中提取产品密钥,我正在考虑编写一个批处理文件,该文件与slmgr -ipk和{{1}一起使用此命令然后使其作为firstlogon命令运行。

问题是我对批处理语法知之甚少,而且我很难将产品密钥指定为变量并将其传递给slmgr命令。

似乎wmic命令将结果返回为:

slmgr -ato

因此,它以三行文本返回产品密钥,实际有用信息夹在其他字符串之间。如何从此文本中获取中间(或第二)行并将其指定为变量?

4 个答案:

答案 0 :(得分:1)

也许这对你有用。请注意,它确实涉及临时文本文件。

wmic path softwarelicenseingservice get oa3xoriginalproductkey > temp.txt
3<temp.txt (
set /p var= <&3
set /p var= <&3
)
del temp.txt
Echo %var%

始终从命令中提取第二行输出。 我已使用您提供的数据对其进行了测试,并输出了XXXXX-XXXXX-XXXXX-XXXXX-XXXXX。要访问此变量,请始终将其称为%var%

答案 1 :(得分:0)

这是我怎么做的

登录脚本accept powershell脚本,其功能和强度远远超过旧批处理文件。

$key = Get-WmiObject -Class SoftwareLicensingService | 
Select-Object OA3xOriginalProductKey | foreach { "{0}" -f $_.OA3xOriginalProductKey }

使用此命令,您可以将ProductID放入$ key变量中并随意进行任何操作

答案 2 :(得分:0)

cscript.exe C:\Windows\System32\slmgr.vbs /upk

cscript.exe C:\Windows\System32\slmgr.vbs /cpky

for /f "tokens=2 delims='='" %%K IN ('wmic path softwarelicensingservice get OA3xOriginalProductkey /value') do set pk=%%K

cscript.exe C:\Windows\System32\slmgr.vbs /ipk %pk%

cscript.exe C:\Windows\System32\slmgr.vbs /ato

cscript.exe C:\Windows\System32\slmgr.vbs /dli

将其另存为批处理文件并尝试

答案 3 :(得分:0)

这就是我所需要的。

效果很好。

for /f "tokens=2 delims='='" %%K IN ('wmic path softwarelicensingservice get OA3xOriginalProductkey /value') do set pk=%%K

slmgr.vbs /ipk "%pk%"

slmgr.vbs /ato