Found a nice article about how to script a URL (or web application) into maintenance mode. This was a little bit of a challenge to find so I’m reposting it to hopefully get some more attention. I’ve also posted the modified version of the script that allows for multiple watcher hosts.
param($rootMS,$urlName,$minutes,$comment,$reason) Add-PSSnapin "Microsoft.EnterpriseManagement.OperationsManager.Client" -ErrorVariable errSnapin; Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin; new-managementGroupConnection -ConnectionString:$rootMS -ErrorVariable errSnapin; set-location $rootMS -ErrorVariable errSnapin; $URLWatcher = (Get-MonitoringClass -name Microsoft.SystemCenter.WebApplication.Perspective) | Get-MonitoringObject | where {$_.DisplayName -eq $urlName} $startTime = [System.DateTime]::Now $endTime = $startTime.AddMinutes($minutes) "Putting URL into maintenance mode" foreach ($name in $URLWatcher) { New-MaintenanceWindow -startTime:$startTime -endTime:$endTime -monitoringObject:$name -comment:$comment -Reason:$reason }
Usage:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe URLMaintenanceModeV4.ps1 -rootMS: `SCOMRMS1′ -urlName: ‘MSN Website Checker’ -minutes:45 -comment: ‘My Comment’ -reason: ‘PlannedOther’
http://www.scom2k7.com/schedule-a-into-url-maintenance-mode/