Пользовательское предупреждение в SCCM 2012 R2

Действительно ли возможно создать пользовательское предупреждение в SCCM 2012 R2. Я хочу, чтобы SCCM предупредил меня, когда компьютеры в определенной группе имеют меньше, чем определенный процент от доступного пространства на жестком диске. Я знаю, что существует отчет для этого по умолчанию, но я не могу выяснить, как заставить SCCM предупредить меня проблемы. Любая справка ценилась бы.

0
задан 14 July 2014 в 18:59
2 ответа

Хорошо, ребята, я все понял. Я поспорил с постом @Craig620 о том, что я просто использую сценарий Powerhell. Я продвинулся на шаг дальше и вместо того, чтобы просто запустить тот же самый сценарий на всех компьютерах, я использовал информацию, которую 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 "some@domain.here" -from "another@domain.here" -smtpserver "some.mail.server" -body ($DataSet.Tables[0] + "" + "Enter some line of text here." |  out-string) 
0
ответ дан 4 December 2019 в 17:25

Такая задача чаще решалась бы с помощью SCOM (по сравнению с SCCM). Я не думаю, что вы можете получить официальное предупреждение SCCM в консоли монитора, но я могу придумать два способа сделать это с помощью SCCM.

Первым будет создание Запроса для устройств, которые соответствуют критериям. Оповещения не будут отправляться, вам придется просматривать членов запроса так часто. Если у вас есть отчеты для свободного места, вы, вероятно, уже сделали это, но для других читателей, вам также нужно включить коллекцию Client Settings/Hardware Inventory свойства Freespace из Win32_LogicalDisk (см. экран). Установите запрос, ограниченный рассматриваемой группой/коллекцией. Выбор запроса будет следующим:

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

client settings

Второй ментод может быть выполнен через Pacakge, где вы создаете программу, которая является скриптом Powershell, и запланируете ее запуск один раз в 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 "who@where.com" -from "who@where.com" -smtpserver "mail.where.com" -body ($diskC | converto-html | out-string) -bodyashtml
}   

С такими большими дисками процент иногда не всегда является идеальным триггером, вы также можете запускать программу с абсолютным размером, как этот

if ($diskC.gbFree -lt 1) {

.
1
ответ дан 4 December 2019 в 17:25

Теги

Похожие вопросы