本文介紹如何解決實例之間無法互相訪問AD域,或者無法同時加入AD域的問題。
問題描述
使用同一個Windows Server鏡像創建幾臺ECS實例后,實例之間無法互相訪問AD域,或者無法同時加入AD域。
問題原因
使用同一個Windows Server鏡像的幾臺實例中,其計算機安全標識符SID(Security Identifier)相同,因此無法相互訪問AD域。此時您需要修改實例的SID,再搭建域環境。
解決方案
批量創建不同SID的Windows實例
使用最新的公共鏡像創建實例即可,因為最新的公共鏡像已經修復此問題。
修改一臺Windows實例的SID
Windows系統內置的sysprep
命令可以將已安裝的Windows鏡像中刪除特定的系統信息,其中包括SID。本文使用PowerShell
的AutoSysprep.ps1
腳本文件,通過系統內置的sysprep
命令修改Windows實例的SID。需要注意的是,sysprep
命令會將User Profile恢復為默認值,執行sysprep
命令后會刪除桌面上創建的文件。如果您希望修復故障后自動刪除腳本,可以將文件放置在桌面上執行。
操作步驟
為實例的系統盤創建快照,避免數據丟失。
具體操作,請參見創建快照。
遠程連接ECS實例。
具體操作,請參見通過密碼或密鑰認證登錄Windows實例。
登錄系統終端,執行
powershell
命令進入PowerShell交互模式。說明必須以管理員用戶執行
powershell
命令。執行以下命令,切換至C盤根目錄。
cd\
執行以下命令,查看系統的SID。
whoami /user
系統顯示類似如下。
下載AutoSysprep腳本工具,并上傳至實例的C盤。
進入
AutoSysprep.ps1
腳本工具所在目錄,執行以下命令,查看腳本工具說明。.\AutoSysprep.ps1 -help
系統顯示類似如下,具體的參數說明請參見更多信息。
執行以下命令,運行腳本。
.\AutoSysprep.ps1 -SkipRearm -Password "<$Password>" -PostAction "reboot"
說明<$Password>
為需要設置的密碼。等待一段時間,再次登錄實例。
說明如果您的ECS實例使用的是經典網絡,需要使用管理終端連接Windows實例進行配置,在完成配置后,網絡才可以連通。
執行以下命令,確認系統的SID發生改變,然后可以使用ECS實例搭建AD域環境。
whoami /user
更多信息
參數說明
AutoSysprep.ps1
腳本工具參數介紹如下所示:
-SkipRearm:保留Windows操作系統到當前授權許可狀態。沒有添加該參數時,AutoSysprep會恢復Windows實例到原始授權許可狀態。
-Password:為實例重置密碼。密碼規則如下:
長度為8至30個字符,不能以斜線(/)為密碼首字符。
必須同時包含大寫英文字母、小寫英文字母、數字和特殊符號中的三種字符,可以包含的特殊符號有:
( ) ` ~ ! @ # $ % ^ & - _ + = | { } [ ] : ; ’ < > , . ? /
-Password
參數默認值由AutoSysprep隨機生成。
說明如果您忘記設置密碼,修改系統SID后可以在ECS管理控制臺重置密碼。
-Hostname:為實例重置主機名。主機名限制如下:
主機名字符長度為2到15,不支持點號(.),不能全是數字。
允許大小寫英文字母、數字和短橫線(-)。
點號(.)和短橫線(-)不能作為首尾字符,更不能連續使用。
-Hostname
參數默認值由AutoSysprep隨機生成。
-PostAction:運行腳本后的后續操作。選項介紹如下:
shutdown:默認選項,修改實例SID后停止實例。
reboot:修改實例SID后重啟實例。
quit:修改實例SID后停留在實例內部。
-help:查看腳本工具的介紹,自定義的使用AutoSysprep.ps1的參數。
Windows Server 2008系統查看腳本說明時報錯
問題現象
執行以下命令,查看腳本說明。
.\AutoSysprep.ps1 -help
系統顯示類似如下。
解決方法
執行以下命令,增加權限。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Windows Server 2008系統運行腳本時提示未進行數字簽名
問題現象
執行以下命令,運行腳本。
.\AutoSysprep.ps1 -skiprearm -postaction "reboot"
系統顯示類似如下。
解決方法
執行以下命令,運行腳本。
powershell -executionpolicy bypass -file c:\AutoSysprep.ps1 -skiprearm -postaction "reboot"
如果沒有特定要求,AutoSysprep會隨機生成密碼和主機名。