<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>devtrends.com &#187; GPO</title>
	<atom:link href="http://www.devtrends.com/index.php/tag/gpo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devtrends.com</link>
	<description>developing trends in information technology</description>
	<lastBuildDate>Tue, 06 Sep 2011 19:27:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Startup Notification</title>
		<link>http://www.devtrends.com/index.php/startup-notification/</link>
		<comments>http://www.devtrends.com/index.php/startup-notification/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 21:16:01 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Workstation Management]]></category>
		<category><![CDATA[GPO]]></category>
		<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://www.devtrends.com/?p=500</guid>
		<description><![CDATA[How do you know when an approved and domain-joined workstation is turned on prior to someone even signing into the workstation? Or maybe, you are asking, why would I even...]]></description>
			<content:encoded><![CDATA[<p>How do you know when an approved and domain-joined workstation is turned on prior to someone even signing into the workstation? Or maybe, you are asking, why would I even want to know this? For those that work with network vulnerabilities scanning, such as the product by McAfee’s Foundstone division, this may be of importance. Imagine this scenario. Holiday season arises, everyone loves to take time off and you have an employee that took 2-3 weeks off. When that employee returns, there is a good chance that their computer will be out-dated. From a security standpoint, this is minimal, as it would likely begin receiving updates immediately following a successful sign-on. However, from a political standpoint, if Foundstone is used as a means of judging overall “security”, this workstation could significantly lower that score.</p>
<p>I already know what you are thinking…however, that does not eliminate the fact that dashboard reports are favored by CIOs, IT Directors and the like. Better have that score up to 100%!</p>
<p><strong>StartupNotification</strong></p>
<p>I wrote an application, StartupNotification, that helps with maintaining good scores. Keep in mind that this application only provides a means for notifying the appropriate personnel when a workstation is brought on the network that could potentially “damage”. Second, for this application to be effective in notifying, it must be added as a domain GPO or local policy startup script.</p>
<p><span style="text-decoration: underline;">How It Works</span></p>
<p>Ran from a Windows computer startup script, StartupNotification checks a SQL database for previous records associated with the name of the workstation running StartupNotification. If no records exist, it reports an “Untracked” workstation; if record(s) exist and the latest record is (x) days old, it reports a “Tracked” workstation. After checking the status of the workstation, StartupNotification will create a new record with the workstation name and date of transaction, which will be used at the next StartupNotification check in.</p>
<p><span style="text-decoration: underline;">The Application</span></p>
<p>Download <a href="http://www.devtrends.com/wp-content/uploads/2010/01/StartupNotification.zip">source code</a> (written in Visual Studio 2008).</p>
<p>If you are interested in this application working in your environment, then there are a few things your must do…</p>
<ol>
<li>Create a SQL table with the necessary fields.</li>
<li>Update the application code with your connection string for the database.</li>
<li>Update the email notification messages.</li>
<li>Update the SMTP “from” email address.</li>
</ol>
<p>This is simple, I’ll help you along the way if you follow the steps below carefully:</p>
<p><em>SQL Database and Table</em></p>
<p>I use Microsoft SQL Server 2005; however, this could be easily ported to MySQL, another SQL database, or even a Microsoft Access database. I created a separate database named STARTUPNOTIFICATION for the purpose of holding the table. The table layout is simple, as shown below:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="213" valign="top">field name</td>
<td width="213" valign="top">data type</td>
<td width="213" valign="top">specifics</td>
</tr>
<tr>
<td width="213" valign="top"><strong>ID</strong></td>
<td width="213" valign="top"><strong>int</strong></td>
<td width="213" valign="top"><strong>primary key, no NULL</strong></td>
</tr>
<tr>
<td width="213" valign="top"><strong>Workstation</strong></td>
<td width="213" valign="top"><strong>nvarchar(50)</strong></td>
<td width="213" valign="top"><strong>NULL</strong></td>
</tr>
<tr>
<td width="213" valign="top"><strong>Date</strong></td>
<td width="213" valign="top"><strong>datetime</strong></td>
<td width="213" valign="top"><strong>no NULL</strong></td>
</tr>
<tr>
<td width="213" valign="top"><strong>IPaddress</strong></td>
<td width="213" valign="top"><strong>nvarchar(50)</strong></td>
<td width="213" valign="top"><strong>NULL</strong></td>
</tr>
</tbody>
</table>
<p><a href="http://www.devtrends.com/wp-content/uploads/2010/01/createtable.zip">createscript.sql</a></p>
<p>You must have a SQL user account that can SELECT and INSERT to this table. It is recommended that this account be a separate account and not the “sa” account or some other powerful, generic account.</p>
<p><em>Update Connection String</em></p>
<p>Locate the “mySQL.ConnectionString” property in the code, as shown the screen shot below, and update the string to match your server and database.</p>
<p><a href="http://www.devtrends.com/wp-content/uploads/2010/01/connectionstring.jpg"><img class="alignnone size-medium wp-image-501" title="connectionstring" src="http://www.devtrends.com/wp-content/uploads/2010/01/connectionstring-300x70.jpg" alt="connectionstring" width="300" height="70" /></a></p>
<p><em>Update Email Notification Messages</em></p>
<p>Locate the “sendEmail” function calls, as shown in the screen shot below, and update the strings to display the text you want to be included in the email. As an example, I have another application I wrote that grabs information on the workstation and user at sign-in; I place a link to display who has signed in to that workstation in the email for quick identification of the workstation location.</p>
<p><a href="http://www.devtrends.com/wp-content/uploads/2010/01/emailnotifications.jpg"><img class="alignnone size-medium wp-image-502" title="emailnotifications" src="http://www.devtrends.com/wp-content/uploads/2010/01/emailnotifications-300x132.jpg" alt="emailnotifications" width="300" height="132" /></a></p>
<p><em>Update SMTP “From” Address</em></p>
<p>The final line that needs your attention is the email address that is used as the sender for this application. In most cases you should use a “do not reply” type email address. Locate the sendEmail function near the bottom of the code and modify the msg.From property line, as shown the screen shot below.</p>
<p><a href="http://www.devtrends.com/wp-content/uploads/2010/01/smtpfromaddress.jpg"><img class="alignnone size-medium wp-image-503" title="smtpfromaddress" src="http://www.devtrends.com/wp-content/uploads/2010/01/smtpfromaddress-300x119.jpg" alt="smtpfromaddress" width="300" height="119" /></a></p>
<p>That is all, compile and set to run as in a startup script. For GPO startup scripts, the application could reside in the NETLOGON path as permissions have not been granted by a signed in user.</p>
<p>Aaron Gilbert</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devtrends.com/index.php/startup-notification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Group Policy Management Console</title>
		<link>http://www.devtrends.com/index.php/group-policy-management-console/</link>
		<comments>http://www.devtrends.com/index.php/group-policy-management-console/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 05:22:12 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Group Policy]]></category>
		<category><![CDATA[GPO]]></category>

		<guid isPermaLink="false">http://www.devtrends.com/?p=92</guid>
		<description><![CDATA[The Group Policy Management Console was released somewhere around the year 2003. I am not entirely sure it is as well known as it should be. This tool is very...]]></description>
			<content:encoded><![CDATA[<p>The Group Policy Management Console was released somewhere around the year 2003. I am not entirely sure it is as well known as it should be. This tool is very beneficial and most I.T. administrators should be using it. Especially corporate I.T. administrators that need to report on Group Policy object settings, specifically security related settings like password polices.</p>
<p>This tool allows you to manage your network enterprise easier from one location. In addition to its powerful management features it also gives the ability to backup/restore and import/export of GPOs, generate reports on Resultant Set of Policy (RSoP) or GPO settings, and Group Policy Modeling. An additional feature that the GPMC provides is scripting support. You can create scripts in VBScript or Jscript to perform quite a few different tasks, even creating and deleting GPOs.</p>
<h2>Requirements</h2>
<p>Although the snap-in allows management of Group Policies in a Windows Server 2000 or 2003 Active Directory environment, the computer that runs the GPMC snap-in must be either Windows Server 2003 or Windows XP Professional with Service Pack 1 (plus an additional post-SP1 hotfix), and most have Microsoft .NET Framework installed.</p>
<h2>Installing the GPMC snap-in</h2>
<p>Click <a href="http://www.microsoft.com/windowsserver2003/gpmc/default.mspx">http://www.microsoft.com/windowsserver2003/gpmc/default.mspx</a> and follow the links to download and install the GPMC snap-in.</p>
<p>The install package creates a shortcut for the Group Policy Management Console in the Administrative Tools folder. You can also run MMC and add the snap-in manually. For those not familiar with the Microsoft Management Console (MMC) and adding snap-ins, view this page.</p>
<h2>Using the GPMC snap-in</h2>
<p>The screen is split into 2 panes, assuming you are authenticated to your domain you should see in the left pane a hierarchal list of your Active Directory structure. If you have any Organizational Units (OU) they should be listed along with some collections that are not OUs. “Group Policy Objects” for example which contains all of the Group Policy Objects (GPO) created in your domain. This can be a nice feature for cleaning up unnecessary GPOs or verifying which OUs a GPO is linked to.</p>
<p>In the right pane you will see specifics for whatever object you have selected on the left pane. For example, if you click on an OU in the left pane then the right pane will contain multiple tabs that contain information pertaining to that OU. The first tab is “Linked Group Policy Objects” which shows a list of what GPOs are assigned directly to this OU, the second tab is “Group Policy Inheritance” which shows a list of GPOs that have been inherited from OUs, domains, or sites below, and the third tab “Delegation” shows which users or groups have what permissions for this OU.</p>
<p>Let’s go over the important features of the GPMC.</p>
<h3>GPO Settings Reporting</h3>
<p>The GPMC allows you to quickly generate a report that details all of the configured settings in a GPO. No more browsing through a GPO with the Group Policy Editor trying to figure out which settings your configured.</p>
<p>Creating the report is very easy; all you need to do is click on a GPO object in the hierarchal list in the left pane of the GPMC tool, then click on the Settings tab on the right pane. You will now see a small link that states “show all”, click this link. Now you will see a screen similar to the one below that lists just the configured items.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image12.jpg"><img class="alignnone size-full wp-image-93" title="image12" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image12.jpg" alt="" width="500" height="450" /></a></p>
<p>This screen gives you the ability to either save to a file or print for future reference. Very handy.</p>
<h3>Backing Up and Restoring GPOs</h3>
<p>You can back up and restore GPOs easily with the GPMC snap-in. This is beneficial if you want to quickly restore previous GPOs. By backing up GPOs before you modify them you can create a manual versioning of GPOs.</p>
<p>In the left pane right click on the “Group Policy Objects” collection and select “Back Up All”.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image21.jpg"><img class="alignnone size-medium wp-image-94" title="image21" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image21.jpg" alt="" width="216" height="216" /></a></p>
<p>It will display a backup status screen and begin backing up right away. If your Primary Domain Controller (PDC) server is not local and depending on how many GPOs you have this process may take a few minutes.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image32.jpg"><img class="alignnone size-full wp-image-95" title="image32" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image32.jpg" alt="" width="500" height="409" /></a></p>
<p>Restoring GPOs is just as easy as backing them up. You can restore backed up GPOs from the Manage Backups window. The Manage Backups window is access from within the GPMC by right clicking on the “Group Policy Objects” container and then clicking on “Manage Backups…”. If you have backed up all of your GPOs into the same location this should show in the list. In addition the Manage Backups list has versioning built in and gives you the option to only show the latest version of a GPO. The Time Stamp field shows the date the GPO was backed up.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image42.jpg"><img class="alignnone size-full wp-image-96" title="image42" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image42.jpg" alt="" width="499" height="444" /></a></p>
<p>Click on Restore to restore a GPO. The View Settings button will allow you to see which settings are within a specific GPO.</p>
<h3>Group Policy Modeling</h3>
<p>Now we move on to the best feature that the Group Policy Management Console snap-in has to offer, Group Policy Modeling. Basically you pick an OU container that holds users and an OU container that holds computers and then the wizard essentially runs a figurative resultant set of policy of which policies would be applied.</p>
<p>To create a new model you will need to right click on the “Group Policy Modeling” collection from the hierarchal list in the left pane, and then click on Group Policy Modeling Wizard. Once you have created a model it will be saved automatically as an item in the “Group Policy Modeling” collection for future use.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image51.jpg"><img class="alignnone size-full wp-image-97" title="image51" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image51.jpg" alt="" width="500" height="426" /></a></p>
<p>Once you have created a model with the wizard you will have a nice report similar to the one shown below. If you click on the “show all” link it will expand all options quickly.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image61.jpg"><img class="alignnone size-full wp-image-98" title="image61" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image61.jpg" alt="" width="499" height="416" /></a></p>
<p>Even more beneficial is the “Settings” tab which will display all settings from the GPOs associated. This would most likely be a good report to provide auditors who need verification or documentation on which settings are taking effect.</p>
<p><a href="http://www.developingtrends.net/wp-content/uploads/2008/08/image7.jpg"><img class="alignnone size-full wp-image-99" title="image7" src="http://www.developingtrends.net/wp-content/uploads/2008/08/image7.jpg" alt="" width="499" height="416" /></a></p>
<h2>Corporate Application</h2>
<p>For those I.T. administrators that work for a publicly traded or otherwise restricted company this tool provides enough reporting capabilities to document how your network is configured. I am referring to companies that must abide to some form of compliance auditors, like those per Sarbanes-Oxley (SOX).</p>
<p>Obviously what is required of you will be determined by your auditors, I would still have to say the information reported from this tool should be good enough.</p>
<h2>Conclusion</h2>
<p>This tool is a must have for I.T. administrators in a Windows Server 2000 or 2003 Active Directory environment. Download it and begin using today. If you are still creating Group Policy Objects from within the Active Directory Users and Computers snap-in you might want to consider checking Group Policy Management Console out, you may be quite surprised.</p>
<h2>References</h2>
<p>Group Policy Management Console :: <a href="http://www.microsoft.com/windowsserver2003/gpmc/default.mspx">http://www.microsoft.com/windowsserver2003/gpmc/default.mspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devtrends.com/index.php/group-policy-management-console/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

