2015-04-12 52 views
1

我需要將Windows映像部署到Windows 8.1附帶的幾臺計算機上。 我確實設法將驅動程序和更新以及一些必要的軟件注入到安裝映像中,但不知何故,安裝Windows似乎不會激活操作系統,我必須找到嵌入BIOS中的許可證密鑰並手動激活它們。用批量命令激活Windows 8.1和BIOS產品密鑰

我發現wmic path softwarelicenseingservice get oa3xoriginalproductkey可以用來提取從BIOS中的產品密鑰,我想了解撰寫使用與slmgr -ipkslmgr -ato聯合該命令的批處理文件,然後讓它運行爲firstlogon命令。

問題是我對批處理語法瞭解不多,而且我很難將產品密鑰指定爲變量並將其傳遞給slmgr命令。

看來,WMIC命令返回的結果:

OA3xOriginalProductKey 
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX  
<blank line> 

所以有它返回一個三線文本的產品密鑰,與夾在其它串之間的實際有用的信息。我怎樣才能從這個文本中得到中間(或第二)行,並將其分配爲一個變量?

回答

0

也許這會適合你。注意它確實涉及臨時文本文件。

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%

+0

謝謝爲了答案!我會嘗試這種方法。 –

0

下面是我會做

登錄腳本accept powershell腳本,有更多的功能和實力比老批處理文件。

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

用這個命令,你會得到你的產品ID爲$關鍵變量自由地做任何操作,你想用它

+0

非常感謝您的回答。儘管這次我可能會使用批處理(我現在不能嘗試新的東西......),但我發現powershell比批處理命令強大得多。下次我會嘗試瞭解更多關於這個東西並實施到我的工作流程中。 –

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 

它保存爲批處理文件,並嘗試