How to add comment for a GPO with PowerShell
You might have seen GP MVP Jeremy Moskowitz’s post on how to recycle GPO comments. While Jeremy points out you can do this without a script…. You can also do it with a script! Our tech writer, Judith, walks us through the process:
After I import the Group Policy module in PowerShell, I have access to the Get-GPO cmdlet. If I run that to create an object representing my test GPO:
PS C:\ > $testGPO = Get-GPO testGPO PS C:\ > $testGPO DisplayName : testGPO DomainName : corp.contoso.com Owner : CORP3\Domain Admins Id : 4364e8c5-23a0-4020-9624-4dbcaac9c8c2 GpoStatus : AllSettingsEnabled Description : CreationTime : 5/9/2011 10:07:09 AM ModificationTime : 6/27/2011 3:51:20 PM UserVersion : AD Version: 1, SysVol Version: 1 ComputerVersion : AD Version: 1, SysVol Version: 1 WmiFilter :
I was pretty sure that Description would show the comment for the GPO. And I ran the Get-Member cmdlet against the $testGPO object just to verify that I can use the Description property to set the comment using PowerShell.
PS C:\ > $testGPO | gm -Membertype property TypeName: Microsoft.GroupPolicy.Gpo Name MemberType Definition ---- ---------- ---------- Computer Property Microsoft.GroupPolicy.ComputerConfiguration Computer {get;} CreationTime Property System.DateTime CreationTime {get;} Description Property System.String Description {get;set;} DisplayName Property System.String DisplayName {get;set;} DomainName Property System.String DomainName {get;} GpoStatus Property Microsoft.GroupPolicy.GpoStatus GpoStatus {get;set;} Id Property System.Guid Id {get;} ModificationTime Property System.DateTime ModificationTime {get;} Owner Property System.String Owner {get;} Path Property System.String Path {get;} User Property Microsoft.GroupPolicy.UserConfiguration User {get;} WmiFilter Property Microsoft.GroupPolicy.WmiFilter WmiFilter {get;set;}
Then I changed the comment by setting $testGPO.Description to a string value, which just looks like a simple assignment:
PS C:\ > $testGPO.description="This is my test GPO. I'm using this to try out GP and PowerShell." PS C:\ > $testGPO DisplayName : testGPO DomainName : corp.contoso.com Owner : CORP3\Domain Admins Id : 4364e8c5-23a0-4020-9624-4dbcaac9c8c2 GpoStatus : AllSettingsEnabled Description : This is my test GPO. I'm using this to try out GP and PowerShell. CreationTime : 5/9/2011 10:07:09 AM ModificationTime : 6/27/2011 3:51:20 PM UserVersion : AD Version: 1, SysVol Version: 1 ComputerVersion : AD Version: 1, SysVol Version: 1 WmiFilter :
Here’s the GPMC snapshot before changing the comment:
And here’s the GPMC snapshot after I changed the comment: