我想启动一个EC2 Windows实例,上传一个EXE可执行文件执行它(全部以自动化方式,这很重要)

到目前为止,我能够以编程方式启动EC2 Windows实例&获取其参数(密码/ IP),现在我想找到一种方法来上传这个可执行文件(从我的Windows机器或我的其他EC2 linux实例)运行。

我考虑推出一个RDP连接使用宏软件上传&执行该文件,但是根据以往的经验,这是一个糟糕/脆弱的方法。

我也想到把这个EXE上传到服务器上,然后在Windows上做这样的事情:

wget http://www.domain.com/my-file.exe

除了Windows没有wget!

所以我的问题是:有没有办法以编程方式上传&在EC2 Windows实例中执行EXEcutable?

命令ec2-run-instances有两个额外的参数,可以在运行该命令时使用。用户数据命令和用户数据文件,只要他们从不同的输入读取,执行相同的任务。当您使用此参数时,用户数据的内容将被上传到亚马逊托管的URI http://169.254.169.254/1.0/user-data仅适用于已启动的实例。

在Linux环境中执行此操作的正常方法是将shell脚本上传到实例以下载exe,您的用户数据文件可能看起来像这样…

#! /bin/bash
wget http://www.domain.com/my-file.exe

在Windows中,在启动实例时,没有安装默认服务来执行用户数据文件,但是有一个开源项目CloudInit.NET可以模拟相同的进程,但使用了powershell脚本。唯一的要求是.NET 4.0和CloudInit.NET。一旦安装,它将在启动实例时执行用户数据文件。下载一个文件并用powershell脚本执行它是非常容易的。

!# /powershell/
$wc = New-Object System.Net.WebClient
$wc.DownloadFile("http://www.domain.com/my-file.exe","C:\my-file.exe");
& 'C:\my-file.exe'

如何在EC2 Windows实例中以编程方式/远程执行程序的更多相关文章

  1. 使用Powershell将EBS卷附加到Windows EC2

    我不想使用diskpart.exe,因为解析其结果更困难.希望这有助于那里的人.AWS的东西很简单,但我花了一些时间来追踪Windows使用它的所有东西.为简洁起见,此答案已被删除,因此请确保:>您已经处理了AWSPowershellAPI例外>在尝试将它们附加到EC2之前,您的卷“可用”>一旦您附加了卷,就会显示“正在使用”2和3可以通过Get-EC2VolumeAPI完成.创建EBS卷:将卷附加到EC2:Windows端:找到刚刚附上的ebs音量初始化磁盘创建最大空间分区,分配驱动器号,使“活动”格式

  2. Windows-server-2008 – Windows EC2机器上的固定MAC地址

    在我们拥有的Windows机器上,可以将MAC地址更改为预先分配的值.但是可以将EC2Windows机器上的MAC地址设置为预先分配的值吗?这是问题:我们提供一个运行AmazonEC2的虚拟实验室/培训/评估环境.客户往往希望在云中运行许可软件(他们拥有!

  3. centos – 远程端口转发无法正常工作

    页.我可以毫无问题地访问它,因此EC2实例上的端口8080已打开并接收请求.只是端口转发不起作用.我试过了但这似乎也没有帮助.编辑2如果我在本地运行我的Web应用程序,运行ssh-N-Rport_num:localhost:port_num,然后从另一个终端ssh进入远程服务器,然后curlhttp://localhost:port_num/test,我从本地服务器获得响应.所以转发工作正常.只是来自外部浏览器的请求转到eth0不会被转发.不确定这是如何在旧服务器中完成的,任何想法我应该做什么才能使这项工

  4. Windows – Amazon EC2容量和工作流程问题

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. CentOS,Amazon EC2和EBS AMI

    您如何为亚马逊寻找最“接受”的图像,允许您将其存储为EBS图像.具体来说,我正在寻找一个CentOS图像.实际上,你最好的选择可能是亚马逊LinuxAMI:http://aws.amazon.com/amazon-linux-ami/它是CentOS/RHEL的底层,因此您可以使用所有CentOSRPM等,但您可以获得亚马逊的调整和改进,以便在EC2中运行得更好.

  6. centos – 在Amazon EC2上从EPEL安装

    我正在尝试在我们的AmazonEC2LinuxAMI上安装fail2ban.我知道fail2ban在EPEL中,所以我做了以下事情:但是,当我这样做时,我收到以下消息:这对我来说意味着EPEL已经可用,但如果我这样做:我明白了:我认为我误解了一些东西但是如何从EPEL安装?编辑:我刚刚完成以下操作,发现repo未启用:那么如何在EC2上启用回购?

  7. ubuntu – 如何处理突然无法访问的非日志EC2实例?

    我有一个运行Canonical的Ubuntu10.04LTS的EC2“微实例”.现在已经运行了6-9个月,不经常重启.我只是做了我认为是常规的aptitude更新,aptitude全升级.注意到似乎安装了一些新的-ec2linux映像,我重新启动了系统.虽然它似乎重新启动并在控制台上恢复“运行”状态,但它没有恢复其通常的ssh和http服务.我试过停止并启动它,重新关联它的弹性IP……

  8. ubuntu – 如何在EC2上挂载/ tmp / mnt?

    我想知道在EC2实例的临时存储/mnt中安装/tmp端点的最佳方法是什么,并为ubuntu用户提供默认的写权限.有人建议用这种方式编辑/etc/rc.local:mkdir-p/mnt/tmp&&mount–bind-onobootwait/mnt/tmp/tmp然而,这对我不起作用(文件不同).我尝试编辑默认的fstab条目:/dev/xvdb/mntautodefaults,nobootwai

  9. ubuntu – ec2中的PV和HVM虚拟化类型有什么区别?

    AWSEC2提供两种类型的UbuntuLinuxEC2机器虚拟化–PV和HVM.PV:HVM:这些类型有什么区别?亚马逊运行Xen,它提供半虚拟化或硬件辅助虚拟化.半虚拟化曾经是推荐的选择,因为它为您提供了更好的性能.硬件辅助虚拟化使用现代硬件提供的优势,并且不需要任何类型的自定义内核或补丁.Recentbenchmarks已经证明HVM在某些工作负载上实际上更快.

  10. 初始化 – 在EC2上使用Ubuntu的ec2-init脚本 – 自动设置主机名并使用Route53注册

    当我启动一个实例时,我真的希望能够使用ec2-init脚本做一些内务处理.理想情况下,我希望能够传递用户数据来设置主机名,并运行几个初始化脚本.我看到一个名为ec2-set-hostname的脚本,但我不知道是否可以使用它从用户数据中设置任意的主机名,或者用户数据的格式需要什么.任何人都使用这些脚本,知道如何设置主机名并同时运行一些脚本?

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部