Version 4

    Here's my take on a recurring, scheduled maintenance window for applications. We've got a hot/cold environment for one of our big in-house applications that rotates every two weeks.

     

    Unmanage:

    #Add-Pssnapin swissnapin
    Import-Module SwisPowerShell
    $start = (Get-Date).ToUniversalTime() 
    $end = $start.AddDays(14)
    $swis = Connect-Swis -Hostname ORIONSERVER -Username username -Password password
    
    
    $applist = Get-SwisData -SwisConnection $swis -Query @"
    SELECT ID
    FROM Orion.APM.Application 
    WHERE Name LIKE '%KEYWORD%'
    "@
    
    
    Foreach( $a in $applist ) {
        $appid = @( $a | ForEach-Object { [string]( $_  ) } )
        Invoke-SwisVerb -SwisConnection $swis -EntityName Orion.APM.Application -Verb Unmanage -Arguments @( "AA:$appid", $start, $end, "false" )
    }

     

    Suppress alerts:

    #Add-Pssnapin swissnapin
    Import-Module SwisPowerShell
    $start = (Get-Date).ToUniversalTime()
    $end = $start.AddDays(14) #two week release cycle
    $swis = Connect-Swis -Hostname ORIONSERVER -Username username -Password password
    
    
    $apps = Get-SwisData -SwisConnection $swis -Query @"
    SELECT Uri
    FROM Orion.APM.Application 
    WHERE Name LIKE '%KEYWORD%'
    "@
    
    Foreach( $a in $apps ) {
        $uri = @( $apps | ForEach-Object { [string]( $_  ) } )
        Invoke-SwisVerb -SwisConnection $swis -EntityName Orion.AlertSuppression -Verb SuppressAlerts -Arguments @( $uri, $start, $end )    
    }

     

    Just set these Powershell scripts to run on a Scheduled Task and you're all set!

     

    Special thanks to zackm KMSigma and aLTeReGo for lots of patience while I learn this API thing.