Skip to main content

Enable PowerShell V2 Remote Management via Group Policy

One of PowerShell V2’s strongest assets is its remote management capability.  When you enable remote management, a few actions are taken.

 

  • Enables the WinRM service
  • Starts the WinRM service.
  • Set’s the WinRM Service to start automaticlly.
  • A modification is made to the Windows Firewall to permit incoming WinRM connections.  (Outgoing connections are allowed by default.)
  • Windows PowerShell is registered as a WinRM endpoint.  Both the 32 and 64 bit versions are registered.  This allows the WinRM service to be able to send and received back commands and information to applications on your remote clients.
  • You will be prompted (if manually doing this) to confirm your decision.  This is because this action has an impact level of “high".

 

You can manually enable PowerShell Remoting by opening a PowerShell session with local administrative rights and entering the cmdlet Enable-PSRemoting.  You will be prompted to confirm your choice and the cmdlet will execute the necessary actions.  You can see a screen shot below.

image

 

 

This requires you to visit each client that you want to run PowerShell remoting on.  The easier and more effective way of doing this in the enterprise with Group Policy.

 

Open up Group Policy Management.

Expand your Forest / Domains / DomainName

Right Click Group Policy Object and click New.

Provide a name for this GPO. For this demonstration, I named mine PSRemoteSetup.

Right click your GPO and click Edit.

Expand Computer Configuration / Policies / Administrative Templates / Windows Components / Windows Remote Management (WinRM) / WinRM Service.

Open Allow automatic configuration of listeners
- Set this policy to Enable
- Enter * in IPv4 filter:
- Enter * in IPv6 filter:
- Click OK

Expand Computer Configuration / Policies / Windows Settings / Security Settings / Windows Firewall with Advanced Security / Windows Firewall with Advanced Security
- Right click Inbound Rules and select New Rule.
- Select Predefined.
- In the drop down box, select Windows Remote Management
- Click Next
- Check only Windows Remote Management (HTTP-In)
- Click Next.
- Select Allow the connection.
- Click Finish

If this policy is going to be applied to only Windows Server 2008 servers, exit Group Policy Management Editor.  If this policy is going to be applied to Windows Vista or Windows 7 clients, we need to enable one more Group Policy.

Expand Computer Configuration / Policies / Windows Settings / Security Settings / System Services

Double click Windows Remote Management (WS-Management)

Check Define this policy setting

Select Automatic

Click OK

Exit Group Policy Management Editor.

 

Now link this GPO to the OUs that contain the computer objects that you want to remotely manage with PowerShell.

Comments

Popular posts from this blog

Adding a Comment to a GPO with PowerShell

As I'm writing this article, I'm also writing a customization for a PowerShell course I'm teaching next week in Phoenix.  This customization deals with Group Policy and PowerShell.  For those of you who attend my classes may already know this, but I sit their and try to ask the questions to myself that others may ask as I present the material.  I finished up my customization a few hours ago and then I realized that I did not add in how to put a comment on a GPO.  This is a feature that many Group Policy Administrators may not be aware of. This past summer I attended a presentation at TechEd on Group Policy.  One organization in the crowd had over 5,000 Group Policies.  In an environment like that, the comment section can be priceless.  I always like to write in the comment section why I created the policy so I know its purpose next week after I've completed 50 other tasks and can't remember what I did 5 minutes ago. In the Group Policy module for PowerShell V3, th

Return duplicate values from a collection with PowerShell

If you have a collection of objects and you want to remove any duplicate items, it is fairly simple. # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   # Remove the duplicate values. $Set1 | Select-Object -Unique 1 2 3 4 5 6 7 What if you want only the duplicate values and nothing else? # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   #Create a second collection with duplicate values removed. $Set2 = $Set1 | Select-Object -Unique   # Return only the duplicate values. ( Compare-Object -ReferenceObject $Set2 -DifferenceObject $Set1 ) . InputObject | Select-Object – Unique 1 2 This works with objects as well as numbers.  The first command creates a collection with 2 duplicates of both 1 and 2.   The second command creates another collection with the duplicates filtered out.  The Compare-Object cmdlet will first find items that are diffe

How to list all the AD LDS instances on a server

AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory.  To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.