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.

Exercises

Notes

Enable-Psremoting

Enter-PSSesion ps-svr1

Hostname
Get-Service
GIP

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

Get-ADDomainController
Get-ADUser

Exit or Exit-PSSession

# Caution about double hoping

Invoke-Command

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