Putting a Group of Computers into Maintenance Mode via Powershell
Have you ever found yourself in need of putting a group of systems into Maintenance Mode in System Center Operations Manager 2007 R2? If so you can use the script below. Note that in SCOM 2007 R2 there is no need to put the health service and health service watcher into Maintenance Mode separately, we just need to put the computer itself into Maintenance Mode and it will take care of other components automatically.
*************Script*********
param($rootMS,$group,$numberOfHoursInMaintenanceMode,$comment)
Add-PSSnapin "Microsoft.EnterpriseManagement.OperationsManager.Client" -ErrorVariable errSnapin;
Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin;
new-managementGroupConnection -ConnectionString:$rootMS -ErrorVariable errSnapin;
set-location $rootMS -ErrorVariable errSnapin;
$groupObject = get-monitoringobject | where {$_.DisplayName -eq $group};
$groupagents = $groupObject.getrelatedmonitoringobjects()
foreach ($agent in $groupAgents)
{
$computerPrincipalName = $agent.displayname
$computerPrincipalName
$computerClass = get-monitoringclass -name:Microsoft.Windows.Computer
$healthServiceClass = get-monitoringclass -name:Microsoft.SystemCenter.HealthService
$healthServiceWatcherClass = get-monitoringclass -name:Microsoft.SystemCenter.HealthServiceWatcher
$computerCriteria = "PrincipalName='" + $computerPrincipalName + "'"
$computer = get-monitoringobject -monitoringclass:$computerClass | Where{$_.Displayname -like $computerPrincipalName}
$startTime = [System.DateTime]::Now
$endTime = $startTime.AddHours($numberOfHoursInMaintenanceMode)
"Putting " + $computerPrincipalName + " into maintenance mode"
New-MaintenanceWindow -startTime:$startTime -endTime:$endTime -monitoringObject:$computer -comment:$comment
}
*************************
Save the above script with a ps1 extension.
Schedule the script using the Task Scheduler and command line below:
Powershell c:\MMode.ps1 -rootMS: <RMS server name> -group: <Group name> - Numberofhoursinmaintenancemode: 1 -Comment: 'This is a test'
Hope this helps,
Ritesh Grover | System Center Technical Lead
Comments
Anonymous
January 01, 2003
Has anyone tried this on OM 2012? I need a PS script to put servers into Maintenance mode on 2012. Thanks!Anonymous
January 01, 2003
I would really like to do something similar, where the script would point to a text file with a list of servers. It would place all servers in that file, into Maintenance Mode. Is this possible? We are currently doing this with MOM2005.Anonymous
February 20, 2011
The comment has been removedAnonymous
May 10, 2012
Your thought processing is wonderful. The way you tell the thing is awesome. You are really a master. Great Blog!! That was amazing <a href="www.pickmeindia.com/" title= “Mobile Repair” ><b>Mobile RepairAnonymous
June 04, 2014
The comment has been removedAnonymous
June 04, 2014
The comment has been removedAnonymous
December 03, 2015
The comment has been removed