通过AWS EC2(windows)用户数据脚本运行Set-AdComputer命令时权限不足

问题描述 投票:0回答:1

我正在尝试通过 ec2 用户数据脚本更新 EC2 实例的 AD OU(计算机对象)属性。我看到

 "Message: The errors from user data script: Set-AdComputer : Insufficient access rights to perform the operation"
这对我来说没有意义,因为用户数据以根权限/管理员级别权限运行,对吗?有什么见解吗?下面是来自
Ec2UserDataExecution.log

的专家
2023/04/26 05:44:11Z: <powershell> tag was provided.. running powershell content
2023/04/26 05:44:14Z: Message: The errors from user data script: Set-AdComputer : Insufficient access rights to perform the operation
At 
C:\Windows\system32\config\systemprofile\AppData\Local\Temp\Amazon\EC2-Windows\Launch\InvokeUserData\UserScript.ps1:27 
char:2
+     Set-AdComputer -Identity $Hostname -Description "XXXXX ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (XXXXXX:ADComputer) [Set-ADComputer], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:8344,Microsoft.ActiveDirectory.Management.Commands.SetADComputer
 

2023/04/26 05:44:14Z: Message: The output from user data script: 
Success Restart Needed Exit Code      Feature Result                               
------- -------------- ---------      --------------                               
True    No             NoChangeNeeded {}   

通过 ec2 用户数据脚本更新 EC2 实例的 AD OU(计算机对象)属性 - windows

windows amazon-web-services active-directory ec2-userdata
1个回答
0
投票

对于需要域管理员权限的用户数据命令,我将相关域帐户的凭证存储在 AWS 密钥中,并在脚本中将其拉下来:

# Pull required username and password from AWS Secrets
$UsernameAndPasswordForPrivilegedAccount = ConvertFrom-Json -InputObject (Get-SECSecretValue -SecretId arn:aws:secretsmanager:us-east-1:<AWS Account Number>:secret:<AWS Secret Name>).SecretString
$CredentialsForPrivilegedAccount = (New-Object PSCredential($UsernameAndPasswordForPrivilegedAccount.UserName, (ConvertTo-SecureString $UsernameAndPasswordForPrivilegedAccount.Password -AsPlainText -Force)))

# Use credential with the command
Set-AdComputer -Credential $CredentialsForPrivilegedAccount -Identity $Hostname -Description "XXXXX ...

在 AWS Secrets 中,通过以下方式保存用户名和密码:(a) 选择“存储新密钥”,(b) 选择“其他类型的密钥”,以及 (c) 创建两个键/值对,其中包含“用户名”一词和“密码”作为键:

Key/value     Secret value
 username      <MYDOMAIN\myprivilegedusername>
 password      <mypassword>

对于提取凭证的命令,您需要在运行用户数据脚本的计算机上安装适用于 PowerShell 的 AWS 工具,并将 AWS 的 DNS 服务器作为其 DNS 服务器之一(如果您的计算机是默认的,则默认为该服务器) VPC 使用带有默认选项的 DHCP 选项集。)

© www.soinside.com 2019 - 2024. All rights reserved.