PowerShell for IT Professionals [#10] – Remote management with PowerShell

Reading Time: < 1 minute
Remoting with PowerShell

In this lesson we’re going to learn how to do one-to-one and one-to-many remote management with PowerShell. There’s no need for telnet, ssh or psexec as PowerShell has its own protocol that’s built in right into Windows. We will look at how to create interactive sessions and send commands to multiple servers at once.


  1. With Enter-PSSesion, Remote to remote server and  restart “Windows update” service
  2. With Invoke-Command find out the remote computers last boot up/startup time
  3. List all running processes on remote server without using Enter-PsSession or Invoke-Command
  4. If you have a Domain Controller available, use Invoke-Command to list all computers on that network (you can use * for filter), remember that you need to provide all necessary parameters with your command in the script block so command just runs and doesn’t prompt for any additional information.



Enter-PSSesion ps-svr1


# I can even run commands that are not available on my source machine


Exit or Exit-PSSession

# Caution about double hoping


Invoke-Command -computerName ps-svr1 -command  { get-service}

# Invoke command executes commands on the remote comptuers and brings back the results

# Can you tell a difference?

Invoke-Command -computerName ps-svr1 -command  { get-service | Where {$_.status -eq 'stopped' } }

Invoke-Command -computerName ps-svr1 -command  { get-service } | Where {$_.status -eq 'stopped' }

# -ComputerName in the commandlet

Get-Service -ComputerName ps-svr1

Invoke-Command -computerName ps-svr1 -command  { get-service  }

# they look the same, but are they?

Get-Service -ComputerName ps-svr1 | GM

Invoke-Command -computerName ps-svr1 -command  { get-service  } | GM

0 comments on “PowerShell for IT Professionals [#10] – Remote management with PowerShell

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.