gpt4 book ai didi

windows - 如何以编程方式/远程执行 EC2 Windows 实例中的程序

转载 作者:可可西里 更新时间:2023-11-01 12:18:48 24 4
gpt4 key购买 nike

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

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

我考虑过启动 RDP 连接并使用宏软件上传和执行文件,但根据以前的经验,这至少可以说是一种糟糕/脆弱的方法。

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

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

除了 Windows 没有 wget!

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

最佳答案

另一种方法是使用 Windows powershell 和 WinRM - 它允许远程执行,有点像 Linux 上的 ssh。

这是一个 powershell 脚本示例,您可以在客户端上运行以远程执行脚本(取自:https://github.com/CloudifySource/cloudify/blob/master/esc/src/main/resources/clouds/ec2-win/upload/bootstrap-client.ps1):

param ([string]$target, [string]$username, [string]$password, [string]$command)

$ErrorActionPreference="Stop"

# Set up the password
$securePassword = ConvertTo-SecureString -AsPlainText -Force $password
$cred = New-Object System.Management.Automation.PSCredential $username, $securePassword

Write-Host "Connecting to management service of $target"
Connect-WSMan -Credential $cred $target

set-item WSMan:\$target\Client\TrustedHosts -Value * -Force
set-item WSMan:\$target\Shell\MaxMemoryPerShellMB -Value 0 -Force

Write-Host Invoking command on Remote host $target
Invoke-Command -ComputerName $target -Credential $cred -ScriptBlock {
Invoke-Expression $args[0]
} -ArgumentList $command
Write-Host "Command finished"

您可以使用以下命令从您自己的脚本运行此命令:

powershell.exe -inputformat none -File PATH_TO_SCRIPT -target TARGET_IP -password PASSWORD -username USERNAME -command COMMAND_TO_EXECUTE

您可能应该引用您的字符串,尤其是密码和命令,因为它们通常包含 powershell 可以解释为其他内容的特殊字符。

WinRM 服务在 EC2 Amazon Windows AMI 上默认开启。您需要做的就是在您的安全组中打开端口 5985(WinRM 端口)。

最后,如果您以前从未在您的客户端计算机上使用过 powershell 远程处理,那么您应该执行几个命令来设置它(您只需要执行一次):

set-item WSMan:\localhost\Client\TrustedHosts -Value * -Force
set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB -Value 0 -Force
Enable-PSRemoting
Set-ExecutionPolicy unrestricted

确保以管理员身份运行它们。

关于windows - 如何以编程方式/远程执行 EC2 Windows 实例中的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com