全部產品
Search
文件中心

Elastic Compute Service:執行個體之間無法互相訪問AD域或同時加入AD域怎麼辦?

更新時間:Jul 04, 2024

本文介紹如何解決執行個體之間無法互相訪問AD域,或者無法同時加入AD域的問題。

問題描述

使用同一個Windows Server鏡像建立幾台ECS執行個體後,執行個體之間無法互相訪問AD域,或者無法同時加入AD域。

問題原因

使用同一個Windows Server鏡像的幾台執行個體中,其電腦安全性識別碼SID(Security Identifier)相同,因此無法相互訪問AD域。此時您需要修改執行個體的SID,再搭建域環境。

解決方案

大量建立不同SID的Windows執行個體

使用最新的公用鏡像建立執行個體即可,因為最新的公用鏡像已經修複此問題。

修改一台Windows執行個體的SID

Windows系統內建的sysprep命令可以將已安裝的Windows鏡像中刪除特定的系統資訊,其中包括SID。本文使用PowerShellAutoSysprep.ps1指令檔,通過系統內建的sysprep命令修改Windows執行個體的SID。需要注意的是,sysprep命令會將User Profile恢複為預設值,執行sysprep命令後會刪除案頭上建立的檔案。如果您希望修複故障後自動刪除指令碼,可以將檔案放置在案頭上執行。

操作步驟

  1. 為執行個體的系統硬碟建立快照,避免資料丟失。

    具體操作,請參見建立快照

  2. 遠端連線ECS執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Windows執行個體

  3. 登入系統終端,執行powershell命令進入PowerShell互動模式。

    說明

    必須以管理使用者執行powershell命令。

  4. 執行以下命令,切換至C盤根目錄。

    cd\
  5. 執行以下命令,查看系統的SID。

    whoami /user

    系統顯示類似如下。

  6. 下載AutoSysprep指令碼工具,並上傳至執行個體的C盤。

  7. 進入AutoSysprep.ps1指令碼工具所在目錄,執行以下命令,查看指令碼工具說明。

    .\AutoSysprep.ps1 -help

    系統顯示類似如下,具體的參數說明請參見更多資訊

  8. 執行以下命令,運行指令碼。

     .\AutoSysprep.ps1 -SkipRearm -Password "<$Password>" -PostAction "reboot"
    說明

    <$Password>為需要設定的密碼。

  9. 等待一段時間,再次登入執行個體。

    說明

    如果您的ECS執行個體使用的是傳統網路,需要使用管理終端串連Windows執行個體進行配置,在完成配置後,網路才可以連通。

  10. 執行以下命令,確認系統的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"

系統顯示類似如下。

Symptom

解決方案

執行以下命令,運行指令碼。

powershell -executionpolicy bypass -file c:\AutoSysprep.ps1 -skiprearm -postaction "reboot"
說明

如果沒有特定要求,AutoSysprep會隨機產生密碼和主機名稱。