1

帮助!!!

我正在尝试创建一个 Windows ami,它在启动时(需要在短时间内启动多个 [20] 实时服务器)自动登录并运行 .exe 应用程序(不幸的是,我无法让应用程序作为服务运行)。机器名称也必须是唯一的。

问题在 sysprep 之前工作正常,但是当我从 ami 启动实例时,它无法登录,因为机器名称显然已从原始机器映像更改。

我管理它的唯一方法是不进行 sysprep,使用 ami,然后在启动时登录新机器并手动更改机器名称,并设置自动登录 sysinternal 工具。这并不理想,因为最终用户不是技术人员,而且时间限制不允许有效地执行此操作。

我已经黔驴技穷了!非常感激你的帮助。

4

2 回答 2

10

我知道这是一个非常古老的问题。尽管如此,当我遇到类似问题时,谷歌还是让我想到了这个问题。我做了以下事情来解决我的问题。

  • 根据您的喜好自定义实例。将使用此实例创建 AMI。

    • 创建具有管理员权限的新用户帐户。这是必需的,因为 Sysprep\Ec2ConfigService 将重置管理员密码。将此用户添加到组Remote Desktop Users中,以便您可以使用此用户帐户进行 RDP。
  • 编辑 EC2 的 Sysprep 应答文件以启用自动登录。

    • 将以下内容附加到文件中component命名的节点Microsoft-Windows-Shell-SetupC:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml

.

<AutoLogon>
  <Password>
    <Value>NewUser'sPassword</Value>
    <PlainText>true</PlainText>
  </Password>
  <Username>NewUser'sName</Username>
  <Enabled>true</Enabled>
  <LogonCount>999</LogonCount>
</AutoLogon>

生成的文件应该类似于下面的代码片段。我已经删除了这个答案不需要的部分。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
  <settings pass="oobeSystem">
    <!-- snip -->
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <!-- snip -->    
        <AutoLogon>
          <Password>
            <Value>NewUser'sPassword</Value>
            <PlainText>true</PlainText>
          </Password>
          <Username>NewUser'sName</Username>
          <Enabled>true</Enabled>
          <LogonCount>999</LogonCount>
        </AutoLogon>
    </component>
  </settings>
  <!-- snip -->
</unattend>
  • 接下来我们编辑 EC2ConfigService 设置。

    • 在文件"C:\Program Files\Amazon\Ec2ConfigService\Settings\BundleConfig.xml"中,确保值为SetPasswordAfterSysprepis Yes
    • 在文件中"C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml",确保state节点具有Enabledplugin的值Ec2SetPassword
    • 在文件中,确保的"C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml"值为。RemoveCredentialsfromSysprepOnStartupfalse
  • 您已经在登录时启动了一个 exe。AutoLogonCount使用相同的机制,还启动一个将从注册表中删除设置的脚本。这一步很重要,否则在 999 次(根据上面提到的示例)登录后,自动登录将停止。

.

powershell.exe  -command { Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\winlogon"  -Name AutoLogonCount -Force -ErrorAction 0 }
  • 现在我们可以启动 Sysprep。使用 UI 或以下命令。

.

%ProgramFiles%\Amazon\Ec2ConfigService\ec2config.exe -sysprep

使用从上述实例创建的 AMI 启动的任何实例都会无限期地保留自动登录行为。

于 2013-10-31T14:50:58.527 回答
0

不知道这个软件能不能帮上忙,看LogonExpert及其卫星文章:

1)部署 2)命令行/vbscript 控制 3) 调度

于 2012-05-10T14:03:53.913 回答