企業客戶將金鑰管理服務 (KMS) 設定為其部署程式的一部分,因為它可讓他們使用簡單、直接的程式在其環境中啟用 Windows。 通常,設定 KMS 主機之後,KMS 用戶端會自動連線到主機,並自行啟動。 不過,有時候程式無法如預期般運作。 本文將逐步引導您針對可能遇到的任何問題進行疑難解答。
如需有關事件記錄檔項目及 slmgr.vbs
腳本的詳細資訊,請參閱 大量啟用技術參考。
如何開始疑難排解 KMS 相關問題
讓我們從 KMS 啟用運作方式的快速重新整理開始。 KMS 是用戶端伺服器模型,其與動態主機設定通訊協定 (DHCP) 有一些相似之處。 不過,KMS 並非在用戶端請求時提供 IP 地址,而是促進產品的啟用。 KMS 也是更新模型,用戶端會嘗試定期重新啟用。 有兩個角色: KMS 主機 和 KMS 用戶端。
- KMS 主機執行啟用服務並啟用環境中的系統。 若要設定 KMS 主機,您必須從大量授權服務中心 (VLSC) 安裝 KMS 金鑰,然後啟用服務。
- KMS 用戶端是您在環境中部署且需要啟動的 Windows作系統。 密鑰管理服務 (KMS) 用戶端可以執行任何使用批量啟用的 Windows 版本。 KMS 用戶端隨附預安裝金鑰,稱為 「一般大量授權金鑰」或KMS 用戶端設定金鑰。 GVLK 的存在是讓系統成為 KMS 用戶端的功能。 KMS 用戶端使用 DNS 域名系統的服務 (SRV) 記錄 (
_vlmcs._tcp
) 來識別 KMS 主機。 接下來,客戶端會自動嘗試探索並使用這項服務來完成自我啟動。 在 30 天的現用寬限期內,他們嘗試每隔兩小時啟用一次。 啟用 KMS 用戶端之後,他們會嘗試每隔七天更新其啟用。
從疑難解答的觀點來看,您可能必須同時查看主機和用戶端,以找出問題發生的原因。
KMS 主機上的疑難解答
當您在故障排除期間檢查 KMS 主機時,您應該查看兩個方面:
- 在命令行提示字元中使用
slmgr.vbs
命令檢查主機軟體授權服務的狀態。 - 檢查事件查看器中是否有與授權或啟用相關的事件。
使用 slmgr.vbs 命令檢查軟體授權服務
若要檢視軟體授權服務的詳細輸出,請開啟提升權限的命令提示字元視窗,然後輸入 slmgr.vbs /dlv
。 下列螢幕快照顯示Microsoft內其中一部 KMS 主機上執行此命令的結果。
以下是在進行故障排除時,您應該注意輸出中的一些變數:
版本資訊在輸出結果的
slmgr.vbs /dlv
頂端。 版本資訊有助於判斷服務是否 up-to-date。 確定所有專案都是最新的,因為 KMS 服務支援不同的 KMS 主機密鑰。 您可以使用此資料來評估您目前使用的版本是否支援您嘗試安裝的 KMS 主機金鑰。 如需更新的詳細資訊,請參閱 Windows Vista 和適用於 Windows Server 2008 的更新,以擴充 Windows 7 和 Windows Server 2008 R2 的 KMS 啟用支援。Name 指出 KMS 主機系統上執行的 Windows 版本。 您可以使用這項資訊來針對新增或變更 KMS 主機金鑰的問題進行疑難解答。 例如,您可以使用這項資訊來驗證 OS 版本是否支援您嘗試使用的金鑰。
[描述] 會顯示目前安裝的金鑰。 使用此欄位來確認第一次啟用服務的金鑰是否為您部署的 KMS 用戶端是正確的金鑰。
[ 授權狀態 ] 會顯示 KMS 主機系統的狀態。 此值應為 Licensed。 任何其他值表示您應該重新啟用主機。
[目前計數] 會顯示介於 0 到 50 之間的計數。 計數是在不同作業系統之間的累計,表示在 30 天內嘗試啟用的有效系統數量。
如果計數為 0,則服務最近已啟動,或沒有有效的用戶端連線到 KMS 主機。
不論環境中有多少有效系統,計數都不會增加超過 50。 計數設定為僅快取相當於 KMS 用戶端傳回之最大授權原則數量的兩倍。 Windows 用戶端 OS 所設定的原則上限需要 KMS 主機的 計數為 25 或更高,才能自行啟動。 因此,KMS 主機可以達到的最高計數是 2 x 25 或 50。 在只包含 Windows Server KMS 用戶端的環境中,KMS 主機上的最大計數是 10。 此限制是因為 Windows Server 版本的閾值是 5 (2 x 5 或 10)。
當環境具有啟用的 KMS 主機和足夠的用戶端,但計數不會超過一個時,就會發生與計數相關的常見問題。 發生此問題時,這表示部署的用戶端映像未正確設定,因此系統沒有唯一的用戶端計算機識別碼(CMID)。 若要深入了解,請參閱:
計數可能不會增加的另一個原因是環境中有太多 KMS 主機,而且計數會分散到所有主機上。
我們經常會詢問輸出的slmgr.vbs /dlv
區段。 一般而言,這項數據對疑難解答沒有幫助。 KMS 主機會持續記錄嘗試啟用或重新啟用的每個 KMS 用戶端的狀態。 失敗的要求表示 KMS 主機不支援特定 KMS 用戶端。 例如,如果 Windows 7 KMS 用戶端嘗試針對使用 Windows Vista KMS 金鑰啟用的 KMS 主機啟用,則啟用會失敗。
具有授權狀態的要求行描述所有可能的授權狀態,包括過去和目前。 從疑難解答的觀點來看,只有在計數未如預期增加時,此數據才會相關。 在此情況下,您應該會看到失敗的請求數量增加。 若要解決此問題,您應該檢查用來先啟動 KMS 主機系統的產品密鑰。 此外,請注意,只有在重新安裝 KMS 主機系統時,累積要求值才會重設。
有用的 KMS 主機事件
您應該熟悉下列各節所述的事件 ID,以更有效率的方式解決主機相關問題。
事件標識碼 12290
當 KMS 用戶端嘗試啟用時,會聯繫 KMS 主機,此時 KMS 主機會建立一個標示為 事件識別碼 12290 的記錄檔。 事件標識碼 12290 包含可用來找出用戶端連絡主機的類型,以及發生失敗的原因的資訊。 事件 ID 12290 條目的下列部分來自我們的 KMS 主機的金鑰管理服務事件日誌。
事件詳細資料包含下列資訊:
- 啟用所需的最小計數,報告 KMS 主機的計數必須是 5,才能激活用戶端。 這表示此 OS 是 Windows Server OS,雖然此變數本身不會指出用戶端所使用的版本。 如果您的用戶端未啟用,請確定主機的計數允許客戶端啟用。
- 用戶端電腦識別碼 (CMID),這是每個系統上的唯一值。 如果此值不是唯一的,這是因為映像未正確設定為使用 sysprep 進行散發。 若要深入瞭解將計算機一般化,請參閱 Sysprep (Generalize) Windows 安裝。 當您遇到此問題時,即使環境中有足夠的用戶端,KMS 主機計數也不會增加。
- 授權狀態和狀態到期時間,這是用戶端目前的授權狀態。 此變數可協助您判斷用戶端是否第一次嘗試啟用,或是否嘗試重新啟用。 如果沒有任何其他變更,時間輸入也可以告訴您客戶維持在該狀態的時間長度。
如果您要對用戶端進行疑難解答,而且在 KMS 主機上找不到對應的事件識別碼 12290,則用戶端不會連線到 KMS 主機。 遺漏事件標識碼 12290 條目的原因可能包括:
網路中斷。
主機未解析或未在 DNS 中註冊。
防火牆封鎖 TCP 1688。
您也可以在環境中的其他地方封鎖埠,包括 KMS 主機系統本身。 根據預設,KMS 主機具有 KMS 的防火牆例外狀況,但不會自動啟用此例外狀況。 若要新增此例外狀況,請在提升許可權的 PowerShell 視窗中執行下列命令:
New-NetFirewallRule -DisplayName "KMS Host Activation" -Direction Inbound -Protocol TCP -LocalPort 1688 -Action Allow New-NetFirewallRule -DisplayName "KMS Host RPC" -Direction Inbound -Protocol TCP -LocalPort 135 -Action Allow
事件記錄檔已滿。
KMS 用戶端會記錄兩個對應的事件:事件標識碼 12288 和事件標識碼 12289。 如需這些事件的相關信息,請參閱 KMS 用戶端 一節。
事件標識碼 12293
在 KMS 主機上尋找的另一個相關事件是 事件標識碼 12293。 此事件表示主機未在 DNS 中發佈必要的記錄。 此案例可能會造成失敗,您應該確定事件不存在於您設定主機和部署用戶端之前。 如需 DNS 問題的詳細資訊,請參閱 KMS 和 DNS 問題的常見疑難解答程式。
KMS 用戶端
您也可以使用 slmgr.vbs
命令與事件檢視器,針對 KMS 用戶端上的啟用進行疑難排解。
Slmgr.vbs 和軟體授權服務
若要查看軟體授權服務的詳細資訊輸出,請打開以管理員身份運行的命令提示字元視窗,然後在命令提示字元中輸入 slmgr.vbs /dlv
。 下列螢幕快照顯示此命令在 Microsoft 內的其中一部 KMS 主機上的結果。
以下是在進行故障排除時,您應該注意輸出中的一些變數:
- 名稱,告訴您 KMS 用戶端系統所使用的 Windows 版本。 您可以使用此變數來確認您嘗試啟用的 Windows 版本與 KMS 相容。
-
描述,其中顯示已安裝的密鑰。 例如,
VOLUME_KMSCLIENT
表示系統已安裝 KMS 用戶端安裝金鑰或 GVLK,這是大量授權媒體的預設組態。 具有 GVLK 的系統會自動嘗試使用 KMS 主機來啟用。 如果您在這裡看到不同的值,例如 MAK,您必須重新安裝 GVLK,將此系統設定為 KMS 用戶端。 您可以依照slmgr.vbs /ipk <GVLK>
中執行的指示手動安裝密鑰,或遵循大量啟用管理工具 (VAMT) 技術參考中的指示來改用 VAMT。 - 部分產品金鑰,可用來判斷 KMS 用戶端安裝金鑰是否符合 KMS 用戶端所使用的作系統。 根據預設,正確的金鑰會出現在大量授權服務中心 (VLSC) 入口網站使用媒體建置的系統上。 在某些情況下,客戶可能會使用「多重啟用金鑰」(MAK)啟用,直到環境中有足夠的系統支援 KMS 啟用為止。 您必須在這些系統上安裝 KMS 用戶端安裝金鑰,才能從 MAK 轉換至 KMS。 使用 VAMT 來安裝此金鑰,並確定您使用的是正確的金鑰。
- 授權狀態 會顯示 KMS 用戶端系統的狀態。 若為 KMS 所啟動的系統,此值應為 授權。 任何其他值都可能表示發生問題。 例如,如果 KMS 主機正常運作,且 KMS 用戶端仍然未啟動或停滯在 Grace 狀態,這表示某些專案會防止用戶端連線到主機系統。 此封鎖可能是防火牆問題、網路中斷等等。
- 用戶端電腦識別碼 (CMID),在每一個 KMS 用戶端中都應該是唯一的。 如 使用 slmgr.vbs 命令檢查軟體授權服務中所述,與計數相關的常見問題是,不論您在環境中啟用多少 KMS 主機或用戶端,計數都不會增加超過一個。 如需詳細資訊,請參閱 當您將新的 Windows Vista 或 Windows 7 型用戶端電腦新增至網路時,KMS 目前的計數不會增加。
- 來自 DNS 的 KMS 電腦名稱,這會顯示用戶端成功用於啟用的 KMS 主機 FQDN,以及用來通訊的 TCP 連接埠。
- KMS 主機快取,顯示快取功能是否已啟用。 默認會啟用快取。 當您啟用快取時,KMS 用戶端會快取用於啟用的相同 KMS 主機,並直接與此主機通訊,而不是在重新啟用時查詢 DNS。 如果客戶端無法連絡快取的 KMS 主機,它會查詢 DNS 以探索新的 KMS 主機。
KMS 用戶端事件
下列各節說明您應該熟悉的用戶端事件,以協助您更有效率地針對潛在問題進行疑難解答。
事件標識碼 12288 和事件標識碼 12289
當 KMS 用戶端成功啟動或重新啟用時,用戶端會記錄兩個事件:事件標識碼 12288 和事件標識碼 12289。 下列螢幕快照顯示事件識別碼 12288 條目的區段來自 KMS 用戶端的金鑰管理服務事件日誌。
如果您只觀察到事件 ID 12288而沒有相符的事件 ID 12289,這表示以下問題之一:KMS 客戶端無法連接到 KMS 主機、KMS 主機未能回應,或客戶端未收到主機的回應。
在這些情況下,您必須確認 KMS 主機是可被發現的,而且 KMS 用戶端可以聯絡它。
事件標識碼 12288 中最相關的資訊是 [資訊 ] 字段中的數據。 例如,Info 會顯示用戶端的目前狀態,以及用戶端嘗試啟動時所使用的 FQDN 和 TCP 連接埠。 您可以使用 FQDN 來針對 KMS 主機計數不會增加的案例進行疑難解答。 例如,如果用戶端可以使用太多 KMS 主機(合法或不支援的系統),則計數可能會分散到所有主機上。
不成功的啟用不一定表示用戶端具有事件標識碼 12288,而不是 12289。 啟用失敗或重新啟用可能也有這兩個事件。 在此情況下,您必須檢查第二個事件,以確認失敗的原因。
事件識別碼 12289 的 Info 區段提供下列資訊:
- 啟用旗標,指出啟用成功 (1) 或失敗 (0)。
- KMS 主機上目前的計數,這會顯示用戶端嘗試啟用時 KMS 主機上的計數值。 如果啟用失敗,可能是因為此用戶端OS的計數不足,或環境中沒有足夠的系統來建置計數。
支援要求什麼?
如果您的啟用在疑難解答之後未如預期般運作,您可以 連絡 Microsoft 支援服務 以取得技術支援。 支援工程師通常會要求下列資訊:
-
slmgr.vbs /dlv
來自 KMS 主機和 KMS 用戶端系統的輸出。 - 來自 KMS 主機的事件記錄檔(金鑰管理服務記錄檔)和 KMS 用戶端系統(應用程式記錄檔)。