PowerShell SCCM отображает запросы сообщений о состоянии

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

Я хотел бы иметь похожее представление как SCCM -> Мониторинг -> Запросы сообщений о состоянии -> Все сообщения о состоянии из определенной системы.

Пока у меня есть этот запрос WQL:

select SMS_StatusMessage.*, SMS_StatMsgInsStrings.*, SMS_StatMsgAttributes.* 
from  SMS_StatusMessage left join SMS_StatMsgInsStrings on SMS_StatMsgInsStrings.RecordID = SMS_StatusMessage.RecordID
left join SMS_StatMsgAttributes on SMS_StatMsgAttributes.RecordID = SMS_StatusMessage.RecordID 
where SMS_StatusMessage.MachineName = "MyMachineName"

но это не дает описания, как я вижу во «Всех сообщениях о состоянии из определенной системы». (см. скриншот).

Кто-нибудь знает, как я могу получить описание сообщения о состоянии?

С уважением, фейбук


person faebuk    schedule 01.10.2014    source источник


Ответы (2)


Просто вырезал это из чего-то, с чем я тестировал ... возможно, вы укажете правильное направление ...

SELECT b.Component, b.MachineName, b.MessageType, b.MessageID, 
       c.insstrvalue,
       d.attributevalue, d.attributeTime 
FROM SMS_StatusMessage b 
    JOIN SMS_StatMsgInsStrings c ON b.RecordID = c.RecordID
    JOIN SMS_StatMsgAttributes d ON c.RecordID = d.RecordID
WHERE b.Component = "Task Sequence Manager"
    AND   d.AttributeID = 401 
    AND   b.MachineName = "MyMachineName"
    AND   b.MessageID = 11171                      
    AND   d.AttributeValue = "DeploymentID"

В конечном счете, это из SDK.

person David Wallis    schedule 14.10.2014
comment
Строка формата (переведенная), связанная с конкретным идентификатором сообщения, отсутствует в SMS_StatusMessage, SMS_StatMsgInsStrings или SMS_StatMsgAttributes. Они просто содержат полезные данные (например, AdvertisementID и т. д.) для сообщения. Строка формата получается другим способом, отличным от запроса WQL. См. SMS-сообщения о статусе — ASP, чтобы показать все идентификаторы MessageID и их значения для некоторых подсказок о получении строк формата. - person mojo; 07.11.2014
comment
FWIW, переведенные сообщения находятся в DLL в каталоге установки консоли SCCM. Для 2012/американского английского языка это <installdir>\AdminUI\bin\i386\00000409\srvmsgs.dll. Я думаю, что консоль 2007 года сохраняет их в похожем месте, AdminConsole\bin\...\srvmsgs.dll. - person mojo; 07.11.2014

просто посмотрел на свой профиль SO и увидел эту тему, на которую я ранее отвечал. Недавно мне нужно было сделать то же самое, и я написал об этом в блоге!

SELECT
 CASE [Severity] 
  WHEN '1073741824' THEN 'Informational' 
  WHEN '-1073741824' THEN 'Error' 
  WHEN '-2147483648' THEN 'Warning' 
 END AS Severity
  ,[SiteCode]
  ,[Time]
  ,[MachineName]
  ,[Component]
  ,[MessageID],
 CASE [MessageID] 
  WHEN '11124' THEN ('The task sequence execution engine started the group (' + [InsStrValue3] + ').')
  WHEN '11127' THEN ('The task sequence execution engine successfully completed the group (' + [InsStrValue3] + ').') 
  WHEN '11128' THEN ('The task sequence execution engine skipped the disabled action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').') 
  WHEN '11130' THEN ('The task sequence execution engine skipped the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')
  WHEN '11134' THEN ('The task sequence execution engine successfully completed the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ') with exit code ' + [InsStrValue4] + ' Action output: ' + (COALESCE([InsStrValue5], '') + '' + COALESCE([InsStrValue6], '') + '' + COALESCE([InsStrValue7],'')+ COALESCE([InsStrValue8],'')+ COALESCE([InsStrValue9],'')+ COALESCE([InsStrValue10],''))) 
  WHEN '11135' THEN ('The task sequence execution engine failed execuiting the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ') with exit code ' + [InsStrValue4] + ' Action output: ' + (COALESCE([InsStrValue5], '') + '' + COALESCE([InsStrValue6], '') + '' + COALESCE([InsStrValue7],'')+ COALESCE([InsStrValue8],'')+ COALESCE([InsStrValue9],'')+ COALESCE([InsStrValue10],'')))  
  WHEN '11138' THEN ('The task sequence execution engine ignored execution failure of the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')  
  WHEN '11140' THEN ('The task sequence execution engine started execution of a task sequence.')  
  WHEN '11142' THEN ('The task sequence execution engine performed a system reboot initiated by the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')  
  WHEN '11144' THEN ('The task sequence execution engine from a non-client started execution of a task sequence.')
 END AS Description 
FROM [CM_SiteCode].[dbo].[vStatusMessagesWithStrings] (NOLOCK) 
WHERE MachineName = 'MyServerNameHere'
 AND Component in ('Task Sequence Engine','Task Sequence Manager','Task Sequence Action')
 AND Time BETWEEN '2015-04-02 08:30' AND GETDATE() 
ORDER BY Time DESC

см. здесь http://blog.wallis2000.co.uk/2015/04/status-messages-from-sccm-task.html

person David Wallis    schedule 15.04.2015