Public/Remove-OpmAssignment.ps1
|
<#
.SYNOPSIS Remove an Intune assignment from a PacKit fragment by Entra group id. .DESCRIPTION Removes every assignment whose MsEntraGroupId matches from the fragment's IntuneAssignments collection. The fragment is modified in place. .EXAMPLE Remove-OpmAssignment -Fragment $app -MsEntraGroupId '{2C3D4E5F-6071-8293-A4B5-C6D7E8F90011}' #> function Remove-OpmAssignment { [CmdletBinding()] param( [Parameter(Mandatory, ValueFromPipeline)] [psobject] $Fragment, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $MsEntraGroupId, [Parameter()] [switch] $PassThru ) process { $target = ConvertTo-OpmCanonicalGuid -Value $MsEntraGroupId $before = @($Fragment.IntuneAssignments).Count $Fragment.IntuneAssignments = @($Fragment.IntuneAssignments | Where-Object { $_.MsEntraGroupId -ne $target }) $after = @($Fragment.IntuneAssignments).Count if ($after -eq $before) { Write-Verbose "No assignment with MsEntraGroupId '$MsEntraGroupId' was found; nothing removed." } if ($PassThru) { return $Fragment } } } |