Forum Discussion
Using 'Get-GPInheritance' Command in Powershell 7
Using the 'Get-GPInheritance' command in Powershell 7 returns the GPOLink class rather than the GPO name for each GPO listed in the 'InheritedGpoLinks' property.
Get-GPInheritance -Target $ou | Select-ExpandProperty InheritedGpoLinks | FT
But the same command outputs the GPO names successfully in Windows PowerShell 5.1.
How can I get this to work in Powershell 7?
8 Replies
- farismalaebIron Contributor
mmm.
I am checking the issue and notice that there are a lot of different between running the command on Powershell 5.1 (Infrastructure version) vs Powershell 7
even the object type and the return is different,
Powershell 5.1, Notice that the name is GPOLink, which seems to be an object holding the value
PS C:\Users\Administrator> ((Get-GPInheritance -Target $ou ).InheritedGpoLinks)[0].gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False GpoLink System.ObjectPowershell 7.1, Notice that the Value type is String not GPOLink
PS C:\Program Files\PowerShell\7> ((Get-GPInheritance -Target $ou ).InheritedGpoLinks)[0].gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.ObjectEven when you run Get-GPInheritance -Target $ou
Powershell 5.1: will return the GPNmae
Powershell 7.1: will return Microsoft.GroupPolicy.GpoLink
I will do more checks on this, this is maybe because the GroupPolicy module was written and tested in PS5.1 but not 7
- bobstertechCopper Contributor
Interesting. Thanks for looking into this.
- Henrik_Andre_OlsenCopper Contributor
Any progress on this? It's been 2 years and this issue still persists in PowerShell 7.
Kind regards
Henrik André Olsen