How to Create GPOs (Starter GPOs) for Quick Policy Baselines
Tags: activedirectory, grouppolicy
Published: 2021-01-14 19:40:45

> _This article was written by Bill Kindle. He is a frequent contributor to the Adam the Automator (ATA) blog. If you'd like to read more from this author, check out his [ATA author page](http://adamtheautomator.com/author/bill). Be sure to also check out [more how-to posts on cloud computing, system administration, IT, and DevOps on adamtheautomator.com](https://adamtheautomator.com)!_

<!-- wp:paragraph -->
<p>GPOs (Starter GPOs, actually) are a feature in Active Directory that allows you to build templates for common GPOs. In this blog, you're going to get a glimpse into how starter GPOs can help you speed up GPO-creation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you are lucky to build a complete Active Directory infrastructure from scratch, then you know how much planning and consideration goes into the whole process. And it doesn't just stop with delivering the environment. You have to also consider ongoing management of the environment. That's why you should consider using <em>starter group policy objects</em>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="what-are-starter-gpos">What are Starter GPOs?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A <em>starter group policy object</em> is a blank, or <em>clean slate</em> <em>group policy object</em>. The purpose of these objects is to allow an administrator to create and have a pre-configured group of settings that represent a baseline for any future policy that is to be created.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>These settings can then be copied into a more "formal" <em>group policy object</em> to then be applied to single or multiple <em>organizational units</em>. Copying these starter objects preserves your baseline strategy and allows you to dynamically add or remove settings that shouldn't be applied to future objects.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>These objects are great for settings that will not be changing, such as specific security related protocol configurations, <em>Windows Update</em> settings, particular software settings or registry entries to name a few. The choice is yours as a sysadmin and can reflect whatever strategy you are employing.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="using-starter-gpos-with-powershell-a-story">Using Starter GPOs with PowerShell: A Story</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>You walk into your work area and just as you start sipping that already cold cup of coffee because you've been stopped 15 times on your way to your area, you open your email to discover you are being asked by the boss to aid in deploying <em>group policy</em> in an environment. You are also given a list of baselines required for this new deployment from your security team or boss.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You <em>could</em> begin assigning these baselines to ordinary policy objects using the <em>Group Policy Management Console</em> or because you are a long-term thinker, you decide to step back and see if you can maybe automate some of this task and memorialize these baselines better.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You open up your trusty PowerShell console and start looking for cmdlets. You then search for the module <em>GroupPolicy</em> and import it. You would have this module installed if you have already downloaded and installed <a href="https://www.microsoft.com/en-us/download/details.aspx?id=45520">RSAT</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Looking at the available cmdlets, you find two that look like they are exactly what you need, <code>New-GPStarterGPO</code> and <code>Get-GPStarterGPO</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>After looking at the help you see that creating this one by one or even as a loop is pretty straightforward and there are only but a couple of necessary parameters called <code>Name</code> and <code>Comment</code>.</p>
<!-- /wp:paragraph -->

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/3fb1yuibj5ea2b3yrqwr.png)

<!-- wp:paragraph -->
<p>Armed with this new info, you create a small <em><a class="wpil_keyword_link" href="https://adamtheautomator.com/powershell-foreach/" title="foreach" data-wpil-keyword-link="linked">foreach</a></em> loop through an array of names &amp; comments and pass them off to the <code>New-GPStarterGPO</code> cmdlet, creating 5 new baseline policies to be edited later by your intern. Time for a beverage refill.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="summary">Summary</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>GPOs (Starter GPOs) are GPO templates that allow you to save time as a sysadmin. Using PowerShell cmdlets like <code>New-GPStarterGPO</code> and <code>Get-SPStarterGPO</code> allow you to save even more time by quickly creating these starter GPOs directly from the command line!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you'd like to learn more about GPOs, check out <a href="https://adamtheautomator.com/tag/group-policy-objects/">all of the other GPO posts we have available here on the blog</a>.</p>
<!-- /wp:paragraph -->