跳至內容

如何使用使用者資料為 Amazon EC2 執行個體新增具有 RDP 存取權的新使用者帳戶?

2 分的閱讀內容
0

我想新增另一個使用者,使其能透過遠端桌面通訊協定 (RDP) 連線到我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體。

簡短描述

若要建立一個具有 RDP 權限、可連接至您 EC2 執行個體的新本機使用者,請使用屬於使用者資料執行的 PowerShell 命令。如果您打算啟動新執行個體,則每次執行個體重新啟動或重新開機時,使用者資料都會自動執行。如果您使用已啟動的執行個體,則必須排程使用者資料的執行。

如需詳細資訊,請參閱使用者資料執行

解決方法

**重要:**在停止和啟動執行個體之前,請執行下列動作:

**注意:**當您停止和啟動執行個體時,該執行個體的公有 IP 位址也會變更。最佳做法是使用彈性 IP 位址而不是公用 IP 位址,將外部流量路由到執行個體。如果您使用 Amazon Route 53,則可能需要在公有 IP 位址變更時更新 Route 53 DNS 記錄

在啟動時將 PowerShell 指令碼新增至您的執行個體

請完成下列步驟:

  1. 使用啟動執行個體精靈來設定執行個體啟動,然後在 Configure storage (組態儲存空間) 下選擇 Advanced (進階)。

  2. Advanced details (進階詳細資訊) 下,選擇 User data (使用者資料)。

  3. 輸入下列 PowerShell 指令碼:

    <powershell>$user = New-LocalUser -AccountNeverExpires:$true -Password ( ConvertTo-SecureString -AsPlainText -Force 'ExampleP@ssword!') -Name "RDPUser" -FullName "Local RDPUser" -Description "Local Administrator"
    Add-LocalGroupMember -Group "Administrators" -Member $user
    Add-LocalGroupMember -Group "Remote Desktop Users" -Member $user
    </powershell>

    注意:上述範例指令碼會建立一個名為 RDPUser 的新本機使用者,密碼為 ExampleP@ssword!。AWS 帳戶設定為已啟用,不會過期,並包含簡短說明。該指令碼會將使用者帳戶新增至管理員群組和遠端桌面使用者群組。需要存取遠端桌面使用者群組,但如果需要,您可以刪除 Add-LocalGroupMember -Group "Administrators" -Member $user 區段。

  4. 選擇 Launch instance (啟動執行個體)。

啟動後將 PowerShell 指令碼新增至您的執行個體

如果您的 EC2 執行個體已啟動,請完成下列步驟:

  1. 設定您的設定,使 Amazon EC2 在下次啟動時反映更新的使用者資料

  2. 停止您的 EC2 執行個體

  3. 開啟 Amazon EC2 console (Amazon EC2 主控台)。

  4. 選擇 Instances (執行個體),然後選取您的執行個體。

  5. 選擇 Actions (動作),然後選取 Instance settings (執行個體設定)。

  6. 選擇 View/Change User data (檢視/變更使用者資料)。

  7. User data (使用者資料) 中,輸入下列 PowerShell 指令碼:

    <powershell>$user = New-LocalUser -AccountNeverExpires:$true -Password ( ConvertTo-SecureString -AsPlainText -Force 'ExampleP@ssword!') -Name "RDPUser" -FullName "Local RDPUser" -Description "Local Administrator"
    Add-LocalGroupMember -Group "Administrators" -Member $user
    Add-LocalGroupMember -Group "Remote Desktop Users" -Member $user
    </powershell>

    注意:上述範例指令碼會建立一個名為 RDPUser 的新本機使用者帳戶,密碼為 ExampleP@ssword!。該帳戶設定為已啟用,不會過期,並包含簡短說明。該指令碼會將使用者帳戶新增至管理員群組和遠端桌面使用者群組。需要存取遠端桌面使用者群組,但如果需要,您可以刪除 Add-LocalGroupMember -Group "Administrators" -Member $user 區段。

  8. 啟動您的執行個體

確認 Amazon EC2 是否建立了使用者帳戶

若要確認 Amazon EC2 是否建立了使用者帳戶,您可以使用 Session Manager, (AWS Systems Manager 的一項功能) 或 PSSession 遠端存取。

若要建立 $usernamelist 變數,請執行下列命令:

$usernamelist = Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'" |Select Name, Status, Disabled, AccountType, Lockout, PasswordRequired, PasswordChangeable, SID

注意:****$usernamelist 變數包含所有符合本機帳戶為 true 條件的使用者帳戶清單。

若要取得您建立之使用者帳戶的詳細檢視,請執行下列命令:

$usernamelist | select-string -AllMatches RDPUser

**注意:**將 RDPUser 替換為您的使用者帳戶名稱。

對問題進行疑難排解

如果您在新增使用者帳戶時遇到問題,請執行下列動作:

  • 如果 Amazon EC2 沒有建立使用者帳戶,請執行 route printinvoke-webrequest 命令來檢查執行個體中繼資料和使用者資料存取權。如果您收到的回應不是 200 回應,請檢查執行個體使用者資料。
  • 若要查看使用者資料日誌,請參閱如何對執行使用者資料指令碼來設定 EC2 Windows 執行個體時的問題進行疑難排解?
  • 在執行指令碼之前,先在本機電腦上測試該指令碼。
  • 確認執行個體使用正確版本的 PowerShell,並且指令碼可以在第二個執行個體上執行。
AWS 官方已更新 1 年前