Unregister-DSCTrigger.ps1

function Unregister-DSCTrigger
{
    <#
    .Synopsis
        Unregisters a trigger to run a Powershell configuration
    .Description
        Unregisters a WMI event trigger that would start a PowerShell configuration
    .Link
        Register-DSCTrigger
    .Link
        Get-DSCTrigger
    .Example
        Unregister-DSCTrigger "MyTrigger"
    #>

    [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact='High')]
    [OutputType([Nullable])]
    param(
    # The name of the DSC trigger
    [Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)]
    [string]
    $Name
    )

    process {
        #region Locate the consumer and delete associated objects
        $matchingConsumer = Get-WmiObject -Namespace root\subscription -Filter "Name = '${Name}_DSCConsumer'" -Class CommandLineEventConsumer

        if ($matchingConsumer) {
            if ($PSCmdlet.ShouldProcess("Remove DSC Trigger $Name")) {
                $related = $matchingConsumer.GetRelated()     
                $relationships = $matchingConsumer.GetRelationships()
                foreach ($_ in $related) { $_.Delete() } 
                foreach ($_ in $relationships) { $_.Delete() }
                $matchingConsumer.Delete()
            }
        }
        #endregion Locate the consumer and delete associated objects
    }
}