Public/Remove-CrmComponentFromSolution.ps1

Function Remove-CrmComponentFromSolution {
    <#
        .SYNOPSIS
            Removes SolutionComponent(s) from Dynamics crm solution.
    #>

    [cmdletbinding()]
    Param
    (
        [string]$SolutionName,
        [SolutionComponent[]]$Component,
        [Microsoft.Xrm.Tooling.Connector.CrmServiceClient]$conn
    )

    foreach ($component in $Component){
        $request = [Microsoft.Crm.Sdk.Messages.RemoveSolutionComponentRequest]::new()
        $request.ComponentId = $component.objectid
        $request.ComponentType = $component.componenttype
        $request.SolutionUniqueName = $SolutionName

        try {
            Write-Verbose ("Removing {0} from {1}" -f $request.ComponentId, $request.SolutionUniqueName) 
            $conn.Execute($request) | Out-Null
        }
        catch {
            $err = $_.Exception.Message
            Write-Verbose $err
        }
    }
}