是否可以在SCCM 2012 R2中创build自定义警报。 我希望SCCM在某个组中的计算机的可用硬盘空间less于一定比例时提醒我。 我知道这是默认情况下的报告,但我无法弄清楚如何让SCCM提醒我这个问题。 任何帮助,将不胜感激。
SCOM(与SCCM)相比,这种任务更经常。 我不认为你可以在monitorign控制台上得到一个正式的SCCM警报,但是我可以想象用SCCM的两种方法。
首先将创build一个满足条件的设备的查询。 没有警报会被发送,你将不得不经常查看查询成员。 如果您有可用空间的报告,则可能已经完成了此操作,但是对于其他阅读器,还需要从Win32_LogicalDisk启用Freespace属性的“客户机设置/硬件清单”集合(请参阅屏幕)。 将查询设置为受限于所讨论的组/集合。 查询select将如下所示:
select SMS_R_System.Name, SMS_G_System_LOGICAL_DISK.DeviceID, SMS_G_System_LOGICAL_DISK.FreeSpace from SMS_R_System inner join SMS_G_System_LOGICAL_DISK on SMS_G_System_LOGICAL_DISK.ResourceID = SMS_R_System.ResourceId where SMS_G_System_LOGICAL_DISK.DeviceID = "C:" and SMS_G_System_LOGICAL_DISK.FreeSpace < 1024 order by SMS_R_System.Name

第二个方法可以通过一个Pacakge完成,在那里你创build一个Powershell sript的程序,并安排它每24小时运行一次。 这将发送一个实际的电子邮件。 将软件包部署到有问题的组/集合。
$diskC = gwmi win32_logicaldisk | where {$_.deviceid -match 'C'} | select systemname, @{n='gbFree'; e={[int]($_.freespace/1gb)}}, @{n='gbSize'; e={[int]($_.size/1gb)}}, @{n='percentFree'; e={"{0:N2}" -f ($_.freespace/$_.size)}} if ($diskC.percentfree -lt .10) { send-mailmessage -subj "Low Disk" -to "[email protected]" -from "[email protected]" -smtpserver "mail.where.com" -body ($diskC | converto-html | out-string) -bodyashtml }
有了这样大的磁盘,百分比总是有时候并不总是理想的触发器,你也可以用这样的绝对大小触发
如果($ diskC.gbFree -lt 1){
好吧,我想通了。 我捎带@ Craig620的职位,只是使用PowerShell脚本。 我更进了一步,而不是在所有使用SCCM提供的信息的计算机上运行相同的脚本。 这是我用来从数据库中获取信息并发送电子邮件的脚本。
$dataSource = “.\” $user = “someuser” $pwd = “somepass" $database = “yourdb" $connectionString = “Server=$dataSource;uid=$user; pwd=$pwd;Database=$database;Integrated Security=False;” $connection = New-Object System.Data.SqlClient.SqlConnection $connection.ConnectionString = $connectionString $connection.Open() $query = "SELECT SYS.Name0,LDISK.DeviceID0, LDISK.FreeSpace0*100/LDISK.Size0 as [Percentage Free] FROM v_R_System as SYS join v_GS_LOGICAL_DISK LDISK on SYS.ResourceID = LDISK.ResourceID WHERE LDISK.DriveType0 =3 AND LDISK.Size0 > 0 AND Primary_Group_ID0 = someservergroup AND LDISK.FreeSpace0*100/LDISK.Size0 < 20 ORDER BY SYS.Name0, LDISK.DeviceID0" $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = $query $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $SqlCmd.Connection = $connection $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $connection.Close() send-mailmessage -subj "Low Disk Report" -to "[email protected]" -from "[email protected]" -smtpserver "some.mail.server" -body ($DataSet.Tables[0] + "" + "Enter some line of text here." | out-string)