Get-GphEmptyGPOReport.ps1

#requires -Version 2.0 -Modules GroupPolicy
function Get-GphEmptyGPOReport 
{
  <#
      .SYNOPSIS
      Analyses Group Policys for empty Computer- and/or User-Configuration. This Cmdlet ist only for
      Compatibility Purposes. It´s functionality has been integrated into Get-GpgEmptyGPO.
 
      .DESCRIPTION
      This Ceckup Policy checks a GPO for empty Computer- or User-Settings. You can Pipe GPOs for Analysis.
      This Cmdlet ist only for Compatibility Purposes. It´s functionality has been integrated into Get-GpgEmptyGPO.
 
      .EXAMPLE
      Get-EmptyGPOReport -name "Default Domain Policy"
      Returns two columns, one for UserPolicy and one for ComputerPolicy
 
      Displayname UserPolicy ComputerPolicy
      ----------- ---------- --------------
      Default Domain Policy Set Set
 
      .EXAMPLE
      Get-GPO -All | Get-EmptyGPOReport
  #>



  param 
  (
    # the name of the gpo to test
    [ValidateNotNullOrEmpty()]
    [Parameter(Mandatory = $true,HelpMessage='Display Name of the GPO',
    ValueFromPipelineByPropertyName = $true)]
    [Alias('displayname')]
    [string]$name
  )

  Begin
  {
    Import-Module -Name GroupPolicy
  }

  Process
  {
    $Computer = 'Empty'
    $User = 'Empty'
    [xml]$gpoReport = Get-GPOReport -ReportType Xml -Name $name

    If ( $gpoReport.GPO.Computer.ExtensionData ) 
    {
      $Computer = 'Set' 
    }

    If ( $gpoReport.GPO.User.ExtensionData ) 
    {
      $User = 'Set' 
    }    

    $GPOSettings = New-Object -TypeName PSObject -Property @{
      Displayname    = $gpoReport.gpo.Name
      ComputerPolicy = $Computer
      UserPolicy     = $User
    }    
    $GPOSettings | Select-Object -Property DisplayName,ComputerPolicy,UserPolicy
  }
}