Wednesday, June 24, 2015

Managing Windows Server 2012 R2 Using PowerShell : Part-8 : The magic of Windows PowerShell PSRemoting.


  1. Part 1 : Windows Server 2012 R2 Installation.
  2. Part 2 : Exploring PowerShell Default Settings.
  3. Part 3 : Getting and setting server name.
  4. Part 4 : Getting IP Address of the server.
  5. Part 5 : Setting IP Address of the server.
  6. Part 6 : Checking if Server is member of domain.
  7. Part 7 : Joining Server to the domain.

Part -8 : The magic of Windows PowerShell PSRemoting.

6-24-2015 12-42-00 PM

Welcome back,

In the pervious blog post, we added our Windows 2012 R2 server to the domain by using Windows PowerShell, I think, our most of work is done on the server, now to do everything else on server we are going to use Windows PowerShell PSRemoting to done our jobs.

What is "Windows PowerShell PSRemoting"?

In simple words, by using PowerShell PSRemoting, we can run command on our server remotely, or we can also connect to their PowerShell console locally (  kind of SSH thing Winking smile ).

Do I need to enable PSRemoting on Windows 2012 R2 server?

In the Part-2 of this series, we noticed that PSRemoting is enabled by default on Windows 2012 R2 servers.

How to use it?

It is very simple to use.

In the below screenshot, you can see, two of PowerShell consoles, one is opening on Server ( to show you it's computer name, ) and second one is opened on my laptop.Just to show you that we are going to use client PowerShell console, not the server's.

PowerShell tip :
You can use the $env:COMPUTERNAME to find the computer name.


Now on your client machine, create a $credential variable and store our admin account's username and password in to it by using Get-Credential cmdlet (if you remember, we done the same thing in our previous blog post) .

$credential = Get-Credential


Now, we need to create another variable to store the PowerShell PSRemoting session information.

In the below command, are are creating a $session variable, and then we are using New-PSSession cmdlet to initiate a session ,in -ComputerName , we have provided the name of our server , and in -Credential we are provided the name of  variable $credential in which we have stored our admin username and password credential information.

$session = New-PSSession -ComputerName 'DEL-2k12' -Credential  $credential


No errors! Great!

All heavy lifting is done. Now, we only need to type Enter-PSSession cmdlet , provide the name of session, which is $session  in my case and hit enter. That's all.

Enter-PSSession -Session $session


In the above screenshot, you can see,that we are successfully connected to our server and  we are on remote PowerShell console of our windows 2012 R2 Server, you can also see that prompt of PowerShell has also changed too and when I run the ,$env:COMPUTERNAME it give us the name of server.

If you want to exit from your remoting session, just type and run the Exit-PSSession cmdlet.


PowerShell Tip:
By default PowerShell use TCO Port, 5985,5986 for PSRemoting.

Basic troubleshooting.

Some tips for PSRemoting trouble shootings are :

  1. Make sure port 5985, 5986 is opened on the server or not blocked by something else.
  2. Make sure WinRm Service is running .
  3. Try to run Enable-PSRemoting -Force on server.

That's all for now and I am hoping that you have enjoyed this post.


Aman Dhally
If you like, you can follow me on Twitter and Facebook. You can also check my “You Tube channel for PowerShell video tutorials. You can download all of my scripts from “Microsoft TechNet Gallery”.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.