Powershell 到 EC2 实例-在 EC2 实例上安装可执行文件

Powershell 到 EC2 实例-在 EC2 实例上安装可执行文件

我是 Amazon 服务器的新手。我最近创建了一个 EC2 Windows2008 R2 实例,并尝试使用 powershell ALONE 从我的系统连接到该实例

我不想使用 Amazon API 来连接、将文件从本地传输到 EC2,或在 EC2 实例中安装文件。

我希望仅使用 POWERSHELL 就能完成所有这些。

我能够连接并将文件从本地传输到 EC2,有人可以建议/帮助在此 EC2 实例上安装可执行文件吗?

非常感谢您对此事的任何帮助!提前谢谢

答案1

如果您可以从命令行安装可执行文件(“静默安装”),那么 powershell 远程处理是最佳选择。它在 Amazon Windows 映像上默认启用,因此您无需执行任何操作,只需启动机器并获取密码即可。

这里有关于设置远程处理的说明:https://stackoverflow.com/a/13284313/1335661

最重要的是,您可以使用以下脚本来执行远程命令(取自: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

答案2

除非你精通PowerShell 远程处理,我建议只打开 RDP(TCP 3389)和远程桌面(选中用于连接本地驱动器的客户端框)并以此方式上传文件。然后,您可以在服务器上尝试使用 PowerShell 命令 Enable-PSRemoting,打开 5986(SSL)的防火墙并尝试远程访问。

不确定你是否可以通过 PowerShell 远程 shell 本地“隧道”文件传输,尽管似乎有第三方模块

答案3

我假设您正在谈论无需登录即可在服务器上安装软件。

一个选项是安装https://github.com/bwight/CloudInit.NET在您的服务器上并保存 AMI。然后,您可以编写一个 powershell 脚本,该脚本将在本地服务器上运行,并安装/下载您需要的任何内容到服务器。

当您使用此 AMI 创建新服务器时,只需将文件内容作为用户数据或用户数据文件即可。当服务器启动时,CloudInit.NET 服务将下载并执行您的脚本,而无需您登录服务器。

相关内容