2015-12-17 56 views
1

我想在AWS EC2用户数据中设置Windows Server 2012 R2管理员密码,但是我正在做的事情无法正常工作。在EC2用户数据中设置Windows服务器密码

我与对用户数据的以下值启动实例:

<powershell> 
$user = [adsi]"WinNT://localhost/Administrator,user" 
$user.SetPassword("[email protected]") 
$user.SetInfo() 
</powershell> 

我会为督促使用不同的密码,但希望确保我符合Windows密码需求现在。根据亚马逊提供的Windows Server 2012 R2 AMI,我开始使用一个微不足道的Packer构建。 Packer现在构建的所有内容都是添加一个目录,然后输出它创建的AMI ID。然后我从该AMI启动一个新实例。

但是当我将RDP插入实例时,我继续收到错误The user name or password is incorrect. Try again.

下面是EC2的日志“获取系统日志”:

2015/12/17 02:26:26Z: EC2ConfigMonitorState: 0 
2015/12/17 02:26:27Z: Windows sysprep configuration complete. 
2015/12/17 02:26:30Z: AMI Origin Version: 2015.10.26 
2015/12/17 02:26:30Z: AMI Origin Name: Windows_Server-2012-R2_RTM-English-64Bit-Base 
2015/12/17 02:26:30Z: OS: Microsoft Windows NT 6.3.9600 
2015/12/17 02:26:30Z: OsVersion: 6.3 
2015/12/17 02:26:30Z: OsProductName: Windows Server 2012 R2 Standard 
2015/12/17 02:26:30Z: OsBuildLabEx: 9600.18066.amd64fre.winblue_ltsb.150928-1002 
2015/12/17 02:26:30Z: Language: en-US 
2015/12/17 02:26:30Z: EC2 Agent: Ec2Config service v3.10.442 
2015/12/17 02:26:32Z: Message: Waiting for meta-data accessibility... 
2015/12/17 02:26:32Z: Message: Meta-data is now available. 
2015/12/17 02:26:35Z: AMI-ID: ami-0cd7c86d 
2015/12/17 02:26:35Z: Instance-ID: i-9da97047 
2015/12/17 02:26:40Z: Driver: AWS PV Network Device v7.3.2.0 
2015/12/17 02:26:40Z: Driver: AWS PV Storage Host Adapter v7.3.2.0 
2015/12/17 02:26:40Z: Ec2SetPassword: Disabled 
2015/12/17 02:26:41Z: RDPCERTIFICATE-SUBJECTNAME: WIN-B5RLUMJ651G 
2015/12/17 02:26:41Z: RDPCERTIFICATE-THUMBPRINT: A03F21FCE336140DA63828E3D61FB1274C6CF26E 
2015/12/17 02:26:44Z: Message: Windows is Ready to use 
2015/12/17 02:26:52Z: Info EC2Config configuration: status:3; region:us-west-2; iam:0; authz:0 
2015/12/17 02:26:52Z: SSM Config: status:Inactive; iam:No; ErrorMessage:[[Unable to find credentials]]; RequestId:; ErrorCode:; ErrorType:Sender; StatusCode:0 
Close 

会从任何Windows专家喜欢一些指导那里!

更新#1:我采取了一种新方法。看起来AWS有一项名为EC2ConfigService的服务,可用于启用自定义AMI的密码生成。使用Packer,我将文件C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml替换为其中Ec2SetPassword的设置为Enabled的设置,但它似乎仍然没有什么区别。我会寻找在线的例子来改变这个,看看我能否找到任何。

回答

3

好的,我的同事弄明白了。我们的Packer配置器现在看起来像这样:

"provisioners": [ 
     { 
      "type": "powershell", 
      "inline": [ 
       "# Enable the system password to be retrieved from the AWS Console after this AMI is built and used to launch code", 
       "$ec2config = [xml] (get-content 'C:\\Program Files\\Amazon\\Ec2ConfigService\\Settings\\config.xml')", 
       "($ec2config.ec2configurationsettings.plugins.plugin | where {$_.name -eq \"Ec2SetPassword\"}).state = \"Enabled\"", 
       "$ec2config.save(\"C:\\Program Files\\Amazon\\Ec2ConfigService\\Settings\\config.xml\")" 
      ] 
     } 
    ] 

我验证了这可以按预期工作。 Packer构建AMI,配置它想要的内容,并且一旦从该AMI启动EC2实例,密码将被重置,并且一旦您通过EC2密钥对就可以获取密码。

相关问题