Public/Unpublish-ADFSTkAggregate.ps1

function Unpublish-ADFSTkAggregate

{
    [CmdletBinding(
        SupportsShouldProcess = $true,
        ConfirmImpact = 'High')]

    param (
            [string]$FilterString = "ADFStk:"
    )

    ### ToDo: User Get-ADFSTkAnswer to veiw which SPs that will be deleted.

    if ($PSCmdlet.ShouldProcess($FilterString)) {

        Write-ADFSTkLog (Get-ADFSTkLanguageText unpubSearchingRPsWithFilter -f $FilterString)

        $CurrentSPs = Get-ADFSRelyingPartyTrust | ? {$_.Name -like "$FilterString*"} | select -ExpandProperty Identifier

        $numSPs=$CurrentSPs.count

        Write-ADFSTkLog (Get-ADFSTkLanguageText unpubRPsFound -f $numSPs)
            
        foreach ($rp in $CurrentSPs)
        {
            Write-ADFSTkVerboseLog (Get-ADFSTkLanguageText cRemoving -f $rp)
            try 
            {
                Remove-ADFSRelyingPartyTrust -TargetIdentifier $rp -Confirm:$false -ErrorAction Stop
                Write-ADFSTkLog (Get-ADFSTkLanguageText unpubRPDeleted -f $rp)
            }
            catch
            {
                Write-ADFSTkLog (Get-ADFSTkLanguageText cCouldNotRemove -f $rp, $_) -EntryType Error
            }

        }
        Write-ADFSTkLog (Get-ADFSTkLanguageText unpubJobCompleated)
    }

}