我想在 AWS 上使用特定 AMI 启动 Windows 现货实例,然后启动该实例并运行 PowerShell 命令。我面临的问题是,当启动实例时,它在 EC2 仪表板上显示“正在运行”,但 Windows 尚未登录,因为我已经在用户数据中提供了本地用户的用户名和密码。当我登录服务器时,脚本开始运行。但我希望现货实例在初始化后在桌面上运行 Powershell 脚本。PS:我也尝试了 ChatGPT 建议的多种方法。谢谢。:)
答案1
您可以创建一个计划任务并以该用户身份运行它,并使用系统启动触发器。触发器还可以指定延迟,或者延迟可以在脚本中。
编辑:如果需要访问桌面,请使用 Sysinternals Autologon:
https://learn.microsoft.com/en-us/sysinternals/downloads/autologon
答案2
对于每次重新启动后的桌面,您必须为该计算机设置自动登录。这可以在注册表:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="1"
"DefaultUserName"="USERNAME"
"DefaultPassword"="PASSWORD"
"DefaultDomainName"="DOMAIN(IF ANY)"
明显的安全问题是纯文本密码,但在本地会话中没有办法解决这个问题。如果您没有其他本地用户,只需确保“远程注册表”服务已禁用。
然后创建一个计划任务,正如@greg-askew 所写的那样。
我建议不要使用自动登录,而是使用以下方式将脚本设置为服务:国家安全监测中心以及所选的用户名(不是 SYSTEM)。这显然在以下情况下不起作用:真实的需要用户会话桌面。但这种情况比我被要求自动登录桌面的情况少得多 - 所以也许你应该试一试。