我想运行一个脚本来清除Windows Server 2012上的文件夹(即: C:/ myfolder )。我想在启动脚本中添加一个项目列出编辑组策略,但这会在我的任何服务器重新启动时清除我的文件夹。我只希望在现有AMI的新实例启动时清除该文件夹。
实现这一目标的最佳途径是什么?
答案 0 :(得分:2)
实现此目标的最佳方法是EC2 User Data,它本质上是在实例启动期间执行的用户定义脚本。在Windows上,您可以将用户数据作为cmd或powershell运行。当您发出启动新实例的请求时,会提供用户数据。
现有的AMI需要配置为在启动时运行用户数据。这可以通过EC2配置服务进行管理,亚马逊提供预安装在Windows Server 2012的社区AMI上。默认情况下,EC2配置服务将在首次启动时执行用户数据,然后将自身设置为不执行用户数据再次,除非您手动更改它。
这是调用者通过powershell调用Rename-Computer
的{{3}}:
example from the AWS documentation
要清空文件夹而不删除文件夹本身,您的脚本可能如下所示:
<powershell>
Remove-Item "C:\myfolder\*" -Force -Recurse
</powershell>
运行用户数据时,务必了解正在执行的cmdlet的功能,特别是何时使用-Force
标志跳过交互式提示。某些cmdlet会在情境上要求客户端输入,并且当您执行将导致脚本挂起的用户数据时,系统用户在启动期间会执行此操作。