PowerShell管理SCOM_批量设置维护模式(上 )

#定义存储需要置为维护模式的计算机名称列表
$serverlist = "C:scommservers.txt"
#定义脚本执行结果的输出位置
$server_maintenance_result = "C:scommserver_result.txt"
#定义维护模式截止时间
$time_stop = "3/5/2013 12:00"
#定义RMS服务器名称
$rmsServerName=”scomw.testj.com”

#################################################################################
#向当前会话添加scom管理单元
add-pssnapin “Microsoft.EnterpriseManagement.OperationsManager.Client”
#将当前工作会话设置为SCOM
Set-Location “OperationsManagerMonitoring::#测试管理组连接是否正常,管理组可以更改
$mgConn = New-ManagementGroupConnection -connectionString:$rmsServerName
if($mgConn -eq $null)
{
[String]::Format(“Failed to connect to RMS on ‘{0}’”,$rmsServerName)
return;
}
#设置当前工作会话到scom管理控制台服务器
Set-Location $rmsServerName


##################对每台计算机设置维护模式#################
#定义需要设置维护模式的计算机名称
#$time_start = [DateTime]::Now
$time_start = Get-Date
$servernames = Get-Content $serverlist
"计算机名称" + " " + "维护模式结束时间" |Out-File $server_maintenance_result
Foreach ($servername_maintenance in $servernames)
{
#通过agent获取Monitoringobject
$agent = get-agent|where {$_.name -eq $servername_maintenance+".testj.com"}
$server = $agent.hostcomputer
#设置具体结束时间
New-MaintenanceWindow -Monitoringobject $server -Comment "maintenance test" -Starttime $time_start -Endtime $time_stop 
#设置维护模式时长
#New-MaintenanceWindow -Monitoringobject $server -Comment "maintenance test" -Starttime $time -Endtime $time.addminutes(30)
$servername_maintenance + " " + (get-maintenancewindow -monitoringobject $server).ScheduledEndTime |Out-File $server_maintenance_result -Append

}
原文地址:https://www.cnblogs.com/dreamer-fish/p/3063714.html