在 Google Cloud 上運行 Windows 服務器時,如果遠程桌面服務異常、網絡配置出錯或遠程端口無法連接,可以嘗試通過 SAC(特殊管理控制台)進入 Windows 命令行,檢查系統狀態。本文介紹如何提前配置並驗證這個備用入口。
SAC 不依賴 Windows 的遠程桌面服務,也不依賴 Windows 內部的網絡連接。不過,它仍依賴系統具備基本響應能力;如果系統嚴重卡死或資源完全耗盡,也不保證能夠使用。
一、準備條件
本文以 Google Cloud Compute Engine 中的 Windows Server 2025 為例。其他 Windows Server 版本可能存在界面或配置差異,第三方安裝的 Windows 鏡像也需要先檢查相關組件。
開始前,需要能夠正常登錄 Windows,並擁有管理員權限;同時需要有權限修改谷歌雲實例設置和連接串行控制台。配置涉及啟動設置,完成後需要安排一次 Windows 重啟。
本文是提前配置備用入口的教程。如果服務器當前已經完全無法登錄,就不能直接在系統內執行以下準備命令。
二、打開管理員 PowerShell
通過遠程桌面進入服務器,在服務器的開始菜單中搜索 Windows PowerShell,右鍵選擇“以管理員身份運行”。下面的準備命令都在服務器內部執行,不是在自己電腦的 PowerShell 中執行。
三、檢查現有配置
查看當前啟動配置:
bcdedit /enum all
重點查看當前 Windows 啟動項是否包含 ems Yes,以及 EMS 設置中的串口和波特率。僅出現 bootems Yes,不能單獨證明 Windows 的 SAC 已經正確啟用。虛擬機監控程序的調試串口屬於另一項設置,不要混淆。
檢查 SAC 輔助服務:
Get-CimInstance Win32_Service -Filter "Name='sacsvr'" | Select-Object Name, State, StartMode | Format-List
如果服務存在,啟動模式是 Manual、狀態是 Stopped,並不代表配置失敗,可以繼續後面的步驟。如果沒有輸出,或者啟動模式是 Disabled,應先排查組件缺失或禁用策略,不要假定後續配置一定有效。
四、備份啟動配置
修改前先備份 BCD 啟動配置:
bcdedit /export "C:\BCD-before-SAC-$(Get-Date -Format 'yyyyMMdd-HHmmss').bak"
正常情況下會提示“操作成功完成”,並在 C 盤生成帶時間戳的備份文件。請保留這個文件。它只備份啟動配置,不是整台服務器或系統盤的完整備份。
五、啟用 EMS 串口支持
將 EMS 配置為使用 COM2,波特率設為 115200:
bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
為當前 Windows 啟動項開啟 EMS:
bcdedit /ems "{current}" on
以上命令會修改啟動配置,但不會立即重啟或斷開遠程桌面。啟動項標識符 "{current}" 外面的英文雙引號請保留。
執行後,分別檢查配置:
bcdedit /enum "{current}"
當前 Windows 啟動項中應出現 ems Yes。
bcdedit /enum "{emssettings}"
EMS 設置中應出現 emsport 2 和 emsbaudrate 115200。
六、記錄 Windows 電腦名
稍後使用本地賬號登錄 SAC 時,需要填寫 Windows 電腦名。現在執行:
hostname
保存返回的電腦名。注意:它是 Windows 內部的電腦名稱,不一定等於谷歌雲實例名稱,也不是公網 IP 或網站域名。
七、開啟谷歌雲交互式串口訪問
打開 Google Cloud 控制台,依次進入 Compute Engine → 虛擬機實例 → 目標實例 → 修改或編輯。
在“遠程訪問”區域找到“允許連接到串行端口”,勾選並保存。不同語言或控制台版本的名稱可能略有不同。
此功能使用谷歌雲串行控制台入口,不需要為 SAC 向公網開放 Windows 的 TCP 端口。如果選項不可用,需要檢查雲賬號權限或組織策略。
八、重啟 Windows
保存正在進行的工作,安排好運行中的任務,然後在 Windows 內部選擇開始菜單 → 電源 → 重啟,讓 EMS 啟動配置生效。
重啟會中斷服務器上的任務及遠程連接。等待系統恢復後,先確認遠程桌面仍能正常登錄,再測試備用入口。
九、連接串行端口 2
回到谷歌雲實例詳情頁,找到“連接到串行控制台”,通過旁邊的下拉菜單選擇串行端口 2。不要使用普通的 SSH 登錄入口,也不要誤選串行端口 1。
打開的窗口可能顯示“SSH-in-browser”,這不代表 Windows 內部必須運行 SSH 服務。判斷是否進入 SAC,應看終端中是否出現 SAC>。
如果窗口只有黑屏和光標,點擊終端區域,按一次回車並稍等。正常情況下會出現 SAC> 提示符。
十、創建並進入命令行通道
在 SAC> 後輸入:
cmd
成功後會提示創建了一個新通道,例如 Cmd0001。使用實際返回的名稱切換通道:
ch -sn Cmd0001
Cmd0001 只是示例。如果新建通道是 Cmd0002,就要執行:
ch -sn Cmd0002
出現通道說明後,再按一次回車進入登錄提示。
十一、輸入 Windows 登錄信息
如果使用本地管理員賬號,按提示依次填寫:
用戶名:實際的本地管理員用戶名,例如 Administrator。
域:前面執行 hostname 得到的 Windows 電腦名。
密碼:該 Windows 賬號的密碼,不是谷歌賬號密碼。
每項填完按回車。密碼輸入時可能不顯示字符,這是正常現象。如果服務器加入了域,並使用域賬號登錄,應填寫實際的賬號域,而不是照搬本地賬號的填寫方式。
不要把密碼輸入到“域”這一欄,也不要在截圖、文章或求助信息中公開密碼。
登錄成功後,通常會看到 C:\Windows\System32>。這說明已經通過串口進入 Windows 命令提示符。
十二、驗證備用入口
執行下面這條只讀命令,檢查遠程桌面服務:
sc query TermService
如果返回 STATE : 4 RUNNING,說明遠程桌面服務正在運行,也驗證了串口登錄後能夠執行系統管理命令。服務顯示運行並不等於遠程桌面一定能連接,實際故障仍需要結合網絡、端口和日誌判斷。
當前窗口是 CMD,不是 PowerShell。如果後續診斷需要使用 PowerShell 命令,可以先輸入:
powershell
測試時不必故意停止遠程桌面服務。備用入口驗證可用,不代表需要修改當前正常運行的服務。
十三、使用完如何退出
在 CMD 中執行:
exit
這會結束當前命令行會話,不會關閉服務器,也不會關閉正常的遠程桌面會話。如果之前在 CMD 中啟動了 PowerShell,第一次 exit 會先退出 PowerShell,返回 CMD 後再執行一次 exit。
十四、常見問題
連接窗口一直黑屏怎麼辦?
先點擊終端並按回車。如果仍沒有 SAC 提示符,核對是否選擇了串行端口 2、Windows 是否已在修改 EMS 後重啟,以及谷歌雲是否允許交互式串口連接。單憑黑屏不能認定系統損壞。
提示“找不到該名稱的頻道”怎麼辦?
通常是舊通道已經關閉,或者新通道名稱發生了變化。在 SAC 提示符下可以輸入下面的命令查看通道列表:
ch
根據實際通道名稱使用 ch -sn 切換。如果沒有可用的命令行通道,重新執行 cmd 創建,並使用這次返回的新名稱。
登錄失敗怎麼辦?
檢查用戶名、Windows 電腦名和密碼是否正確。登錄失敗後,通道可能關閉,需要返回 SAC 新建通道。不要把密碼發給他人,也不要反覆使用已經關閉的通道名稱。
有了 SAC,就不需要重啟服務器了嗎?
不是。SAC 提供額外的排查和恢復機會,但它不是獨立於 Windows 的完整操作系統。嚴重死機或資源耗盡時,命令行仍可能無法創建或執行,最終仍可能需要通過雲控制台重啟。
SAC 能防止公網密碼猜測嗎?
不能。它是備用管理入口,不會自動改變遠程桌面的公網防火牆規則,也不會修復資源泄漏。遠程訪問防護和系統故障修復需要另外處理。
十五、以後連接時的小抄
初次配置完成並驗證後,以後不必重複執行 BCD 配置或再次重啟。日常使用只需記住:
谷歌雲實例 → 串行端口 2 → 回車看到 SAC → cmd 創建通道 → ch -sn 實際通道名稱 → 回車 → 輸入 Windows 賬號信息。
進入命令行後,先查看狀態和收集信息,再決定修復操作。不要在正常運行時隨意終止 svchost.exe 或停止關鍵服務。
參考資料
Google Cloud:連接 Windows SAC
Google Cloud:Windows 虛擬機故障排查
發布者:彬彬筆記,轉載請註明出處:https://www.binbinbiji.com/zh-hant/jianzhanjiaoliu/3805.html