3Done_Public/Get-ApplicationAssignment.ps1

<#
 
.COPYRIGHT
Copyright (c) Office Center Hønefoss AS. All rights reserved. Licensed under the MIT license.
See https://github.com/officecenter/OCH-Public/blob/master/LICENSE for license information.
 
#>


Function Get-ApplicationAssignment
{
  <#
      .SYNOPSIS
      This function is used to get an application assignment from the Graph API REST interface
      .DESCRIPTION
      The function connects to the Graph API Interface and gets an application assignment
      .EXAMPLE
      Get-ApplicationAssignment -ApplicationId $Application.id
      Returns an Application Assignment configured in Intune for the application Id specified
      .NOTES
      NAME: Get-ApplicationAssignment
  #>


  [cmdletbinding()]

  param
  (
    [Parameter(ParameterSetName = 'By_ID', Mandatory = $true)]
    [Guid]
    $ApplicationId,
    [Parameter(ParameterSetName = 'By_Name', Mandatory = $true)]
    [String]
    $ApplicationName,

    [ValidateSet('*','androidStoreApp','iosStoreApp','windowsMobileMSI','windowsStoreForBusinessApp','officeSuiteApp','webApp')]
    [String]
    $Platform = '*'
  )

  If ($PSCmdlet.ParameterSetName -eq 'By_Name')
  {
    $Application = @()
    $Application = Get-IntuneApplication -Name $ApplicationName -Platform $Platform
    If ($Application.Count -gt 1)
    {
      $Application | Select-Object DisplayName, '@odata.type'
      Write-Error "Ambiguous Application name. Name returned more than 1 application."
      Return
    }
    ElseIf ($Application)
    {
      [Guid]$ApplicationId = $Application.Id
    }
    Else
    {
      Write-Error ("No Intune application by the name '{0} was found." -F $ApplicationName)
      Return
    }
  }

  $Resource = "deviceAppManagement/mobileApps/$($ApplicationId.Guid)/groupAssignments"

  Invoke-GraphAPI -Resource $Resource
}