Windows

Microsoft 許可證如何與 MDT 和 WDS 部署一起使用?

  • May 6, 2022

問題如下:

我的公司購買了幾台筆記型電腦(Acer、Lenovo),這些筆記型電腦已經安裝了 Windows 10 專業版,所以當您第一次啟動 PC 時,您最終會進入經典的 OOBE 環境(選擇國家/地區、鍵盤、cortana … )

更多筆記型電腦(與我之前描述的相同)即將推出。因此,我想擁有一個自定義 Windows,以避免重複和浪費時間來配置每台 PC。

為此,我已經準備好使用 WDS + MDT 伺服器。我的想法是創建一個主映像並部署它。問題是:我的主映像沒有許可證密鑰,但是,因為我知道我的筆記型電腦已經使用 OEM 許可證啟動了 Windows,所以我認為在安裝主映像之後,OEM 許可證密鑰(儲存在 BIOS ) 將自行重新啟動。

但經過一番研究,這似乎不是“微軟方式”的做法,實際上我打算做的事情很可能是非法的。

所以我想得到一個答案:您是否需要特殊許可證才能使用 WDS 部署自定義 Windows 映像?

感謝您的閱讀和最終答案。

歸結為這一點。Windows Professional 已獲得在筆記型電腦上使用的許可。您如何將作業系統放在筆記型電腦上並不重要。它將始終被許可在該硬體上使用。您嘗試做的事情並沒有違法,事實上,這是一種極其常見的情況。

我們執行完全零接觸體驗來部署我們所有的新系統。

我們將通用 Windows 10 Pro 產品密鑰嵌入到 shell-setup 部分 ( VK7JG-NPHTM-C97JM-9MPGT-3V66T) 下的specialize pass 中的 unattend.xml 中,這足以在部署期間繞過產品密鑰問題。

我們在“狀態還原”部分的部署任務中創建了一個附加步驟,該步驟執行以下 powershell 腳本以使用嵌入式產品密鑰啟動系統:

#This script performs automatic activation during windows deployments.
#It will check if Windows is activated, if not it will try to activate with the BIOS key.

#Activation function, installs the specified product key and returns true or false if activated successfully.
function Activate
{
   #If $key doesn't exist we can't activate
   if (-not $key) { return }
   
   try
   {
   $instance = (Get-WmiObject -query 'select * from SoftwareLicensingService')
   $instance.InstallProductKey($key)
   $instance.RefreshLicenseStatus()
   } catch { return }
}

#First check and see if windows is already activated.
if (Get-WmiObject SoftwareLicensingProduct | where {$_.PartialProductKey -and $_.Name -like "*Windows*" -and ($_.LicenseStatus -eq 1 -or $_.LicenseStatus -eq 2)})
{
   #Host is already activated.
   exit
}

#Check for a BIOS key - if it exists, this is what we are going to use first.
$key = (Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey

if ($key) 
{
   #BIOS Key exists - use it
   if (Activate $key) { exit }
}

您可以在此腳本中看到檢查 BIOS 密鑰是否存在以及啟動是否成功的證據:

if ($key) 
{
   #BIOS Key exists - use it
   if (Activate $key) { exit }
}

有一次,我們也有 Windows 7 筆記型電腦,我們正在重新部署 Windows 10。所以,我們還有一個 Windows 10 的批量許可證密鑰,並且修改了程式碼,以便如果不存在 BIOS 密鑰,我們將Activate使用卷呼叫該函式註冊碼:

if ($key) 
{
   #BIOS Key exists - use it
   if (Activate $key) { exit }
}
else
{
   #BIOS Key does not exist - Use VLK
   if (Activate 'xxxxx-xxxxx-xxxxx-xxxxx-xxxxx') { exit }
}

如果啟動失敗,您可以添加額外的邏輯,如 if 語句所示:

if (Activate 'xxxxx-xxxxx-xxxxx-xxxxx-xxxxx') { exit }

而且,您可以更進一步,使部署任務中的這一步需要某個退出程式碼,如果失敗,部署任務可以在流程結束時發出警告或失敗,提醒您注意啟動問題。

使用通用產品密鑰後的 BIOS 啟動一直有點不穩定。這個腳本可能不再需要了,Windows 之後會自動啟動。我認為這不太可能,因為 Windows 已經接受了(無效的)通用密鑰並且不會嘗試替換它,因此需要腳本這樣做。

引用自:https://serverfault.com/questions/1100314