大家好,今天接着来介绍SCOM中的PowerShell命令。首先是名词部分是Rule的命令。比起之前介绍的内容,这次和Rule有关的命令回到了原来的操作体验中。和Rule一起使用的动词有三个Get,Disable和Enable。看到这里,相信大家对接下来的操作已经心知肚明了,为了验证心中的想法,接下来就先利用图形界面来创建一条用于测试的名为TestRule的Rule。然后使用Get-Rule配合Where-Object来找到特定的Rule:

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_休闲

接下来的事情就比较简单了,我们只需要把得到的对象通过管道传递个Disable-Rule或者Enable-Rule来启用或者禁用Rule即可。

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_SCOM_02

然后再来看下名词部分包含PerformanceCounter的命令,Get-PerformanceCounter和Get-PerformanceCounterValue。Get-PerformanceCounter的作用很简单,就是返回所有MonitoringObject的PerformanceCounter对象。

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_休闲_03

如果需要具体查询某个PerformanceCounter的采样值的话,则可以将PerformanceCounter对象通过管道传递给Get-PerformanceCounterValue命令即可。示例如下:

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_PowerShell命令_04

在说完名词部分包含PerformanceCounter的命令之后,再来看下SCOM中另外一个很重要的名词Override。我们都知道微软在下载站点提供了很多现成的ManagementPack,而ManagementPack中为我们提供了很多默认的警报数值,但是在很多情况下这些数值并不一定适合我们自己的生产环境。而微软给我们提供的一个应对措施便是使用Override来进行覆盖。但是当Override数量很多的情况下,如何管理Override变成了一个难题。

在不使用任何第三方工具的情况下,也许大家认为可以使用SCOM中名词部分包含Override的命令来进行查询。那我们就先来看下Get-Override命令,示例如下:

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_职场_05

因为Override只能保存在我们自定义的ManagementPack中,因此在使用Get-Override命令时必须指定ManagementPack对象。

接下来我们会注意到剩下的名词部分包含Override的命令中同时又包含Resultant,那么我们可以猜测这些命令的作用可能和组策略结果集一样。那先来Get-ResultantCategoryOverride,下面的截图就是命令的运行结果,很可惜结果的Value部分对系统管理员来说又是令人费解的输出,这里我也不想再展开讨论了,因为有第三方工具可以帮助我们很方便的浏览Override的情况。

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_PowerShell命令_06

接下来是Get-ResultantUnitMonitorOverride,这里建议只查询某个UnitMonitor的状态,如果你尝试使用命令自带的示例的话,可能需要一段时间才能执行完成。但结果还是一如既往的令人失望,这里的对象操作技巧已经超出系统工程师的工作范畴了。而接下来的Get-ResultantRuleOverride的输出也是一样的,大家如果愿意的话可以试试下面的命令,只需要把筛选条件换成各位自己环境中的Rule的显示名即可。

Get-Rule | ?{$_.DisplayName -eq "TestRule"} | Get-ResultantRuleOverride

SCOM PowerShell 命令使用指南 - 10 (Rule,PerformanceCounter和Override)_休闲_07

已发表 2011年8月8日 21:40 作者 ghjconan