You can get a list of all Group Policy Objects (GPOs) with loopback very easily:
Get-GPO -All | Where { $($_ | Get-GPRegistryValue -Key "HKLM\Software\Policies\Microsoft\Windows\System" -Value UserPolicyMode -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select -ExpandProperty Value) -eq 1}
This will query all GPOs and then conditionally return them if they have the value for UserPolicyMode set.
You could replace the “Get-GPO -all” with a filtered version if you were only interested in certain GPOs
A little longer version if you want to abstract it or modify it earlier:
Function GetLoopBack { param($gpo) $gpo | Get-GPRegistryValue -Key "HKLM\Software\Policies\Microsoft\Windows\System" -Value UserPolicyMode ` -WarningAction SilentlyContinue | Select -ExpandProperty Value } $GPOs = $GPOs | SELECT -Property *, @{Name='LoopBack';Expression={GetLoopBack2 $_}}
Pingback: Find GPOs with LoopBack Enabled | Yogesh