PowerShell管理SCOM_批量设置维护模式(上 )
#定义存储需要置为维护模式的计算机名称列表 $serverlist = "C:\scomm\servers.txt" #定义脚本执行结果的输出位置 $server_maintenance_result = "C:\scomm\server_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 }