Forum Discussion

bobstertech's avatar
bobstertech
Copper Contributor
Jan 14, 2021

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

  • farismalaeb's avatar
    farismalaeb
    Iron Contributor

    bobstertech 

    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.Object

     

     Powershell 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.Object

     

     

    Even 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

     

Resources