金鑰管理服務 (KMS) 疑難排解的指導方針
企業客戶會將金鑰管理服務 (KMS) 設定為其部署程序的一部分,因為其可讓這些客戶使用簡單、直接的程序,在其環境中啟用 Windows。 通常,一旦您設定了 KMS 主機,KMS 用戶端就會自動連線至主機,並自行啟用。 不過,有時候程序不會如預期般運作。 本文會逐步引導您針對可能遇到的任何問題進行疑難排解。
如需事件記錄檔項目和 slmgr.vbs
指令碼的詳細資訊,請參閱大量啟用技術參考。
從何處開始針對 KMS 進行疑難排解
讓我們先快速複習一下 KMS 啟用的運作方式。 KMS 是用戶端伺服器模型,其與動態主機設定通訊協定 (DHCP) 有一些相似處。 然而,KMS 不是根據用戶端的要求將 IP 位址交給該用戶端,而是啟用產品啟用。 KMS 也是一種更新模型,用戶端會依據此模型定期嘗試重新啟用。 KMS 有兩個角色:KMS 主機和 KMS 用戶端。
- KMS 主機會執行啟用服務,並啟用環境中的啟用。 若要設定 KMS 主機,您必須從大量授權服務中心 (VLSC) 安裝 KMS 金鑰,然後啟用服務。
- KMS 用戶端是您部署在環境中且必須啟用的 Windows 作業系統。 KMS 用戶端可以執行任何使用大量啟用的 Windows 版本。 KMS 用戶端隨附一個預先安裝的金鑰,稱為「一般大量授權金鑰 (GVLK)」或「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
輸出頂端。 版本資訊有助於判斷服務是否為最新的。 確定一切都是最新的很重要,因為 KMS 服務支援不同的 KMS 主機金鑰。 您可以使用此資料,評估您目前使用的版本是否支援您嘗試安裝的 KMS 主機金鑰。 如需更新的詳細資訊,請參閱 Windows Vista 和 Windows Server 2008 已有可用的更新,來擴充 Windows 7 和 Windows Server 2008 R2 的 KMS 啟用支援。「名稱」指出正在 KMS 主機系統上執行的 Windows 版本。 您可以使用這項資訊,針對涉及新增或變更 KMS 主機金鑰的問題進行疑難排解。 例如,您可以使用這項資訊,驗證作業系統版本是否支援您嘗試使用的金鑰。
「描述」為您顯示目前安裝的金鑰。 使用此欄位來驗證第一次啟用服務的金鑰是否為您所部署 KMS 用戶端的正確金鑰。
「授權狀態」顯示 KMS 主機系統的狀態。 其值應為已授權。 任何其他值表示您應該重新啟用主機。
「目前計數」顯示介於 0 與 50 之間的計數。 此計數是在作業系統之間累計的,並指出在 30 天的期間內已嘗試啟用的有效系統數目。
如果計數為 0,表示服務最近已啟用,或沒有有效的用戶端連線至 KMS 主機。
無論環境中存在多少個有效系統,計數都不會增加超過 50。 計數設定為只快取 KMS 用戶端所傳回的授權原則上限兩倍。 由 Windows 用戶端作業系統設定的原則上限,需要來自 KMS 主機的計數達到 25 或更高時,才會自行啟用。 因此,KMS 主機可以具有的最高計數是 2 x 25 或 50。 在僅包含 Windows Server KMS 用戶端的環境中,KMS 主機的計數上限是 10。 此限制是因為 Windows Server 版本的閾值為 5 (2 x 5 或 10)。
環境具有已啟用的 KMS 主機和足夠的用戶端,但計數並未增加至 1 以上時,與計數相關的常見問題便會發生。 發生此問題時,其表示部署的用戶端映像未正確設定,因此系統沒有唯一的用戶端電腦識別碼 (CMID)。 如需詳細資訊,請參閱 KMS 用戶端和當您將新的 Windows Vista 或 Windows 7 用戶端電腦新增至網路時,KMS 的目前計數並未增加。 我們一名支援升級工程師也針對此問題發表了部落格文章:KMS 主機用戶端計數因 CMID 重複而未增加。
計數未增加的另一個原因,是環境中有太多 KMS 主機,而計數分配給所有的主機。
接聽連接埠。 與 KMS 的通訊會使用匿名 RPC。 根據預設,用戶端會使用 1688 TCP 連接埠連線至 KMS 主機。 請確定您的 KMS 用戶端與 KMS 主機之間已開啟此連接埠。 您可以變更或設定 KMS 主機上的連接埠。 在通訊期間,KMS 主機會將連接埠指定傳送給 KMS 用戶端。 如果您變更 KMS 用戶端上的連接埠,當該用戶端連線到主機時,就會覆寫該連接埠指定。
常有人會問到 slmgr.vbs /dlv
輸出的 [累計要求] 區段。 一般而言,這項資料對於疑難排解並沒有幫助。 KMS 主機會對每個嘗試啟用或重新啟用的 KMS 用戶端持續記錄其狀態。 失敗的要求表示 KMS 主機不支援特定 KMS 用戶端。 例如,如果 Windows 7 KMS 用戶端嘗試對使用 Windows Vista KMS 金鑰啟用的 KMS 主機進行啟用,該啟用將會失敗。
「具有授權狀態的要求」行會描述所有可能的授權狀態,包括過去和現在的狀態。 從疑難排解的觀點來看,只有在計數未如預期增加時,此資料才有相關性。 在這種情況下,您應該會發現失敗的要求數目逐漸增加。 若要解決此問題,您應該檢查用來第一次啟用 KMS 主機系統的產品金鑰。 同時請注意,只有在您重新安裝 KMS 主機系統時,累計要求值才會重設。
有用的 KMS 主機事件
下列各節所述的事件識別碼是您應該熟悉的事件識別碼,其可讓您針對主機相關問題進行疑難排解更有效率。
事件識別碼 12290
當 KMS 用戶端嘗試啟用時,若聯繫主機,KMS 主機會建立一筆標記為「事件識別碼 12290」的記錄。 您可以使用事件識別碼 12290 包含的資訊,找出哪種用戶端連繫了主機,以及發生失敗的原因。 事件識別碼 12290 項目的下列區段來自於 KMS 主機的「金鑰管理服務」事件記錄檔。
事件詳細資料包含下列資訊:
- 「啟用所需的最小計數」,其報告來自 KMS 主機的計數必須是 5,用戶端才能啟用。 這表示此作業系統是 Windows Server 作業系統,儘管此變數本身並未指出用戶端所使用的版本。 如果您的用戶端未啟用,請確定主機的計數允許用戶端啟用。
- 「用戶端電腦識別碼 (CMID)」,這是每個系統上的唯一值。 如果此值不是唯一的,這是因為未正確設定映像,以使用 sysprep 進行散發。 若要深入了解如何將電腦一般化,請參閱 Sysprep (一般化) Windows 安裝。 當您遇到此問題時,即使環境中有足夠的用戶端,KMS 主機計數也不會增加。 如需詳細資訊,請參閱當您將新的 Windows Vista 或 Windows 7 用戶端電腦新增至網路時,KMS 的目前計數並未增加。
- 「授權狀態和狀態到期時間」,這是用戶端目前的授權狀態。 此變數可協助您判斷用戶端是第一次嘗試啟用,還是嘗試重新啟用。 如果沒有任何其他變更,則時間項目也可以告訴您,用戶端維持在該狀態多久時間。
如果您要針對用戶端進行疑難排解,但在 KMS 主機上找不到對應的事件識別碼 12290,表示該用戶端並未連線至 KMS 主機。 為何遺漏事件識別碼 12290 項目的原因可能包括:
- 發生了網路中斷。
- 主機未解析或未在 DNS 中註冊。
- 防火牆封鎖 TCP 1688。
- 連接埠也有可能在環境中的其他位置遭到封鎖,包括 KMS 主機系統本身。 根據預設,KMS 主機具有 KMS 的防火牆例外狀況,但不會自動啟用此例外狀況。 您必須手動啟用例外狀況。
- 事件記錄檔已滿。
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 用戶端。 您可以遵循在KMS 用戶端安裝金鑰中執行slmgr.vbs /ipk <GVLK>
的指示來手動安裝金鑰,或遵循大量啟用管理工具 (VAMT) 技術參考中的指示來改用 VAMT。 - 「部分產品金鑰」,您可以用來判斷 KMS 用戶端安裝金鑰是否符合 KMS 用戶端正在使用的作業系統。 根據預設,使用大量授權服務中心 (VLSC) 入口網站所提供媒體建置的系統上存在正確的金鑰。 在某些情況下,客戶可能會先使用多重啟用金鑰 (MAK) 啟用,直到環境中有足夠的系統可支援 KMS 啟用。 您必須在這些系統上安裝 KMS 用戶端安裝金鑰,才能將其從 MAK 轉換至 KMS。 使用 VAMT 來安裝此金鑰,並確定您使用的是正確金鑰。
- 「授權狀態」會顯示 KMS 用戶端系統的狀態。 對於 KMS 所啟用的系統,此值應為 [已授權]。 任何其他值可能表示有問題。 例如,如果 KMS 主機正常運作,但 KMS 用戶端仍未啟用或停滯在 [寬限] 狀態,這表示某些項目阻止用戶端連線至主機系統。 此封鎖可以是防火牆問題、網路中斷等等。
- 「用戶端電腦識別碼 (CMID)」,其在每一個 KMS 用戶端中都應該是唯一的。 如使用 slmgr.vbs 命令檢查軟體授權服務中所提及,與計數相關的常見問題是,不論您在環境中啟用多少 KMS 主機或用戶端,計數都不會增加超過 1。 如需詳細資訊,請參閱當您將新的 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 用戶端的金鑰管理服務事件記錄檔。
如果您只看到事件識別碼 12288,而沒有看到對應的事件識別碼 12289,表示 KMS 用戶端無法連線至 KMS 主機、KMS 主機未回應,或用戶端未收到主機的回應。 在這些情況下,您必金須驗證 KMS 主機是否可探索,以及 KMS 用戶端是否可與其聯繫。
事件識別碼 12288 中最具相關性的資訊是 [資訊] 欄位中的資料。 例如,[資訊] 會顯示用戶端的目前狀態,以及用戶端嘗試啟用時所使用的 FQDN 和 TCP 連接埠。 您可以使用 FQDN,針對 KMS 主機上計數不會增加的案例進行疑難排解。 例如,若有太多 KMS 主機可供用戶端使用 (包括合法或不受支援的系統),則計數可能會分佈在所有主機上。
不成功的啟用不一定表示用戶端具有事件識別碼 12288,而沒有 12289。 失敗的啟用或重新啟用也可能同時有這兩個事件。 在此情況下,您必須檢查第二個事件,以確認失敗的原因。
事件識別碼 12289 的 [資訊] 區段提供下列資訊:
- 「啟用旗標」,其會指出啟用是成功 (1) 還是失敗 (0)。
- 「KMS 主機上目前的計數」,其會顯示用戶端嘗試啟用時 KMS 主機上的計數值。 如果啟用失敗,可能是因為此用戶端作業系統的計數不足,或環境中沒有足夠的系統可產生計數。
支援有何要求?
如果您的啟用在疑難排解之後未如預期般運作,您可以連絡 Microsoft 支援服務以取得技術協助。 支援工程師通常會要求下列資訊:
- KMS 主機和 KMS 用戶端系統的
slmgr.vbs /dlv
輸出。 - KMS 主機的事件記錄檔 (金鑰管理服務記錄) 和 KMS 用戶端系統的事件記錄檔 (應用程式記錄)。