Run powershell script remotely on an Amazon EC2 instance from my local computer

I have an instance of Amazon EC2.

Using powershell on my local workstation, I want to be able to remotely delete my Amazon EC2 instance and execute some commands.

I found a lot of articles on the Internet, but no one works, or I misunderstood them (maybe the last one).

Some I tried are Managing Windows EC2 instances remotely using Powershell
Administering an EC2 Instance Using Windows Powershell
Inclusion-PSRemoting
How to run PowerShell commands on remote computers

I understand what I need:

Amazon EC2 Dashboard > Network & Security > Security Groups > Add port 5985 //Local & EC2 PowerShell(Administrator) enable-psremoting -force //Local PowerShell(Administrator) set-item wsman:\localhost\Client\TrustedHosts -value "*" -force $password = convertto-securestring -asplaintext -force -string myPassword $credential = new-object -typename system.management.automation.pscredential -argumentlist "myUsername", $password $session = new-pssession ec2-00-00-00-000.compute-1.amazonaws.com -credential $credential enter-pssession $session 

But I get this error

 new-pssession : [ec2-00-00-00-000.compute-1.amazonaws.com] Connecting to remote server ec2-00-00-00-000.compute-1.amazonaws.com failed with the following error message : WinRM cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By default, the WinRM firewall exception for public profiles limits access to remote computers within the same local subnet. For more information, see the about_Remote_Troubleshooting Help topic. At line:1 char:12 + $session = new-pssession ec2-00-00-00-000.compute-1.amazonaws.com -credential $c ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin gTransportException + FullyQualifiedErrorId : WinRMOperationTimeout,PSSessionOpenFailed 
+8
powershell amazon-web-services amazon-ec2
source share
3 answers

The solution is found here .

The invalid link was to (on an EC2 instance) open the Windows Firewall with Advanced Security and edit the inbound rule.

Complete steps:

EC2 Instance
1) Open PowerShell as administrator
2) Enter enable-psremoting -force
3) Open Windows Firewall with Advanced Security
4) Incoming rules → Find Windows Remote Control (Http-In) - there are 2, do it for both
5) Right-click → Properties → Advanced → Check Public

Local
6) Open PowerShell as administrator
7) Enter enable-psremoting -force
8) Enter the following:

 $password = convertto-securestring -asplaintext -force -string MY_PASSWORD $credential = new-object -typename system.management.automation.pscredential -argumentlist "MY_USERNAME", $password $session = new-pssession MY_EC2_PUBLIC_IP -credential $credential enter-pssession $session Write-Host "Hello, World (from $env:COMPUTERNAME)" 
+14
source share

I think that not exposing PowerShell through SSH was one of the biggest mistakes in MS design. Even after years, they are too proud / blind to cancel this bad decision.

I suggest you not fight with WinRM, but instead use the SSH server on your Windows machine. You will get a simple, standard, secure way to connect to your server from any device (I make remote PS sessions from my iPad).

There is open source cygwin and my favorite property (with a free offer) is PowershellServer

You will thank me when your Windows server plays well with the rest of the world.

+3
source share

UPDATE I returned to this old topic and would like to add another option - using the new (ish) ability to launch AWS Systems Manager . This allows you to not have any administrative port open to the outside world, so you don't have to bother with host / cloud firewalls. It also provides other benefits such as auditing, permissions, etc.

0
source share

All Articles