Public/Get-CiresonPortalServiceCatalog.ps1
function Get-CiresonPortalServiceCatalog { <# .SYNOPSIS Function to retrieve the Service Catalog for a User .DESCRIPTION Function to retrieve the Service Catalog for a User .EXAMPLE Get-CiresonPortalServiceCatalog -UserID $User.ID .EXAMPLE Get-CiresonPortalServiceCatalog -ServiceOfferingID '14b7829f-e8d3-2f95-9d20-b54d3aa93556' .NOTES Francois-Xavier Cat www.lazywinadmin.com @lazywinadm github.com/lazywinadmin #> [Cmdletbinding(DefaultParameterSetName="UserID")] PARAM( [parameter(Mandatory,ParameterSetName="UserID")] [guid]$UserID, [parameter(ParameterSetName="UserID")] [Switch]$isScoped=$false, [parameter(ParameterSetName="UserID")] [Switch]$IncludeImage, [parameter(ParameterSetName="ServiceOfferingID")] [GUID]$ServiceOfferingID ) IF ($PSCmdlet.ParameterSetName -eq 'UserID') { Write-Verbose -Message "ParameterSetName = UserID" $URI = $CiresonPortalURL,"api/V3/ServiceCatalog/GetServiceCatalog?userId=$userId&isScoped=$($isScoped.tostring().tolower())" -join '/' $ServiceCatalog = (Invoke-RestMethod $URI -Credential $CiresonPortalCred) -as [pscustomobject] IF ($PSBoundParameters['IncludeImage']) { Write-Verbose -Message "Include Images" Write-Output $ServiceCatalog } ELSE{ Write-Verbose -Message "Without Images" $ServiceCatalog | Select-Object -Property categoryid,category,ServiceOfferingID,Service,RequestOfferingID,RequestOfferingTitle,RequestOfferingDescription,RequestOfferingTargetTemplateType,IsFavorite,FavoriteImage # -ExcludeProperty does not seem to work #| Select-Object -ExcludeProperty SyncRoot,RequestOfferingImage64,RequestOfferingImage,ServiceImage, ServiceImage64 } } IF ($PSCmdlet.ParameterSetName -eq 'ServiceOfferingID') { Write-Verbose -Message "ParameterSetName = ServiceOfferingID" $URI = $CiresonPortalURL,"api/V3/ServiceCatalog/GetByServiceOfferingId?serviceOfferingId=$ServiceOfferingID" -join '/' (Invoke-RestMethod $URI -Credential $CiresonPortalCred) -as [pscustomobject] } } |