Skip to content

Get-IntuneWin32AppSupersedence fails to process single relationship in PowerShell 5.1 #223

@Marco-Valle

Description

@Marco-Valle

The Issue

There is a logic failure in Get-IntuneWin32AppSupersedence.ps1 that prevents the function from returning results in Windows PowerShell 5.1 when an app has exactly one supersedence relationship.

In PowerShell 5.1, a single [PSCustomObject] (scalar) does not have a .Count property (it returns $null). The current code checks if ($Win32AppRelationsResponse.Count -gt 0), which fails for single objects in 5.1, even though it works in PowerShell 7+.

Environment

  • OS: Windows 11
  • PowerShell Version: 5.1 (and 7.6 for comparison)
  • Module: IntuneWin32App

Steps to Reproduce

PowerShell 7.6 (Working)

In PS 7.6, the engine correctly identifies the scalar as having a count of 1.

PS C:\> Get-IntuneWin32AppSupersedence -ID "bcce6ee9-d839-46c3-b489-e6014345b7ef"
VERBOSE: Querying for Win32 app using ID: bcce6ee9-d839-46c3-b489-e6014345b7ef
VERBOSE: GET https://graph.microsoft.com/Beta/deviceAppManagement/mobileApps/bcce6ee9-d839-46c3-b489-e6014345b7ef
VERBOSE: GET https://graph.microsoft.com/Beta/deviceAppManagement/mobileApps/bcce6ee9-d839-46c3-b489-e6014345b7ef/relationships
VERBOSE: Found 1 supersedence relationship(s)

# [Object Data Returned Successfully]

PowerShell 5.1 (Broken)

In PS 5.1, the function silently exits after the Graph call because the .Count check fails.

PS C:\> Get-IntuneWin32AppSupersedence -ID "bcce6ee9-d839-46c3-b489-e6014345b7ef"
VERBOSE: Querying for Win32 app using ID: bcce6ee9-d839-46c3-b489-e6014345b7ef
VERBOSE: GET https://graph.microsoft.com/Beta/deviceAppManagement/mobileApps/bcce6ee9-d839-46c3-b489-e6014345b7ef
VERBOSE: GET https://graph.microsoft.com/Beta/deviceAppManagement/mobileApps/bcce6ee9-d839-46c3-b489-e6014345b7ef/relationships
PS C:\> # [No data returned, script stopped at the .Count check]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions